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

scm-commit@wald.intevation.org scm-commit at wald.intevation.org
Mon Apr 17 11:12:59 CEST 2006


Author: twoaday
Date: 2006-04-17 11:12:50 +0200 (Mon, 17 Apr 2006)
New Revision: 200

Modified:
   trunk/Include/wptGPG.h
   trunk/Include/wptHTTP.h
   trunk/Include/wptKeyEdit.h
   trunk/Include/wptKeyManager.h
   trunk/NEWS
   trunk/Po/de.po
   trunk/Po/fr.po
   trunk/Po/jp.po
   trunk/Src/ChangeLog
   trunk/Src/WinPT-en.rc
   trunk/Src/resource.h
   trunk/Src/wptCardEdit.cpp
   trunk/Src/wptCardEditCB.cpp
   trunk/Src/wptGPG.cpp
   trunk/Src/wptGPGMEData.cpp
   trunk/Src/wptGPGUtil.cpp
   trunk/Src/wptHTTP.cpp
   trunk/Src/wptImportList.cpp
   trunk/Src/wptKeyEdit.cpp
   trunk/Src/wptKeyEditCB.cpp
   trunk/Src/wptKeyEditDlgs.cpp
   trunk/Src/wptKeyManager.cpp
   trunk/Src/wptKeyManagerDlg.cpp
   trunk/Src/wptKeyRevokeDlg.cpp
   trunk/Src/wptKeyserver.cpp
   trunk/Src/wptKeyserverDlg.cpp
   trunk/Src/wptListView.cpp
   trunk/Src/wptMainProc.cpp
   trunk/configure.ac
Log:
2006-04-16  Timo Schulz  <ts at g10code.de>
 
        * wptHTTP.cpp (getErrorCode): New.
        (connect): Store winsock error code.
        * wptGPGMEData.cpp (is_armor_header): New.
        * wptGPG.cpp (check_gnupg_engine): Free context.
        (gnupg_backup_keyrings): Do not use global vars.
        * wptGPGUtil.cpp (gpg_export_seckey): Export in ascii format.
         
2006-04-15  Timo Schulz  <ts at g10code.de>
 
        * wptKeyManager.cpp (km_get_key): New.
        (km_key_show_revoc_info): New.
        * wptKeyRevokeDlg.cpp (key_revoke_dlg): Cleanups.
        (on_init_dialog): New.
        * wptKeyManagerDlg.cpp (key_manager_dlg_proc): Factour
        out some common code and use km_get_key() instead.
        * wptKeyEditDlgs.cpp (do_init_keylist): Change second
        param type. Change all callers.
        * wptKeyEdit.cpp (addNotation): New.
        * wptKeyEditCB.cpp (editkey_command_handler): Remove 'step'
        param everywhere. Change all callers.



Modified: trunk/Include/wptGPG.h
===================================================================
--- trunk/Include/wptGPG.h	2006-04-11 06:38:11 UTC (rev 199)
+++ trunk/Include/wptGPG.h	2006-04-17 09:12:50 UTC (rev 200)
@@ -145,7 +145,7 @@
 int gnupg_check_homedir (void);
 int gnupg_access_keyring (int _pub);
 void gnupg_backup_options ();
-void gnupg_backup_keyrings (void);
+void gnupg_backup_keyrings (int auto_backup, int backup_mode);
 void gnupg_display_error (void);
 int gnupg_copy_keyrings (void);
 int check_gnupg_engine (const char *need_gpg_ver,

Modified: trunk/Include/wptHTTP.h
===================================================================
--- trunk/Include/wptHTTP.h	2006-04-11 06:38:11 UTC (rev 199)
+++ trunk/Include/wptHTTP.h	2006-04-17 09:12:50 UTC (rev 200)
@@ -60,6 +60,7 @@
     int nleft;
     int method;
     int ver;
+    int error;
 
 private:
     void reset (void);
@@ -82,6 +83,7 @@
     ~wHTTP ();
     
     void setVersion (int ver);
+    int getErrorCode (void);
     int getStatusCode (void);
     unsigned int getContentLength (void);
     const char *getContentType (void);

Modified: trunk/Include/wptKeyEdit.h
===================================================================
--- trunk/Include/wptKeyEdit.h	2006-04-11 06:38:11 UTC (rev 199)
+++ trunk/Include/wptKeyEdit.h	2006-04-17 09:12:50 UTC (rev 200)
@@ -47,7 +47,8 @@
     GPG_EDITKEY_DELSIG  = 21,
     GPG_EDITKEY_KEYSERV = 23,
     GPG_EDITKEY_REVUID  = 24,
-    GPG_EDITKEY_CLEAN	= 25
+    GPG_EDITKEY_CLEAN	= 25,
+    GPG_EDITKEY_NOTATION= 26
 };
 
 /* Reasons for revocations. */
@@ -106,10 +107,11 @@
     const char *new_pass;
     const char *url;
     int trust_id;
+    char *notation;
     char *name, *cmt, *email;
     const char *exp_date; /* XXX */
     gpgme_pubkey_algo_t pubkey_algo;
-    int pubkey_size;
+    unsigned int pubkey_size;
     int flags;
     int sig_class;
     int reason;
@@ -141,6 +143,7 @@
     int getSigIndex (void);
     int getValidDays (void);
 
+    gpgme_error_t addNotation (int uid_idx, const char *notation);
     gpgme_error_t signUserid (int uid_idx, int mode, int sig_class, 
 			      const char *exp_date);
     gpgme_error_t signKey (int mode, int sig_class, const char *exp_date);

Modified: trunk/Include/wptKeyManager.h
===================================================================
--- trunk/Include/wptKeyManager.h	2006-04-11 06:38:11 UTC (rev 199)
+++ trunk/Include/wptKeyManager.h	2006-04-17 09:12:50 UTC (rev 200)
@@ -21,6 +21,8 @@
 #ifndef WPT_KEYMANAGER_H
 #define WPT_KEYMANAGER_H
 
+#include "wptContext.h"
+
 #define send_cmd_id(hwnd, id) \
     PostMessage ((hwnd), WM_COMMAND, MAKEWPARAM ((id), 0), 0)
 
@@ -80,6 +82,8 @@
 int km_key_is_v3( listview_ctrl_t lv, int pos );
 void km_find_key (HWND dlg, listview_ctrl_t lv);
 char* km_gen_export_filename (const char *keyid, int is_secret);
+int km_get_key (listview_ctrl_t lv, int pos, winpt_key_t k);
+void km_key_show_revoc_info (winpt_key_t k);
 
 #if 0
 gpg_optfile_t km_groupdb_open( void );

Modified: trunk/NEWS
===================================================================
--- trunk/NEWS	2006-04-11 06:38:11 UTC (rev 199)
+++ trunk/NEWS	2006-04-17 09:12:50 UTC (rev 200)
@@ -790,4 +790,6 @@
   If a proxy was enabled in the past but not any longer, it might
   be possible WinPT uses the proxy port instead of the keyserver
   port to connect to the destination host.
-  
\ No newline at end of file
+
+(0.11.12)
+* Fix problem with hanging process while editing the key.

Modified: trunk/Po/de.po
===================================================================
--- trunk/Po/de.po	2006-04-11 06:38:11 UTC (rev 199)
+++ trunk/Po/de.po	2006-04-17 09:12:50 UTC (rev 200)
@@ -14,7 +14,7 @@
 msgstr ""
 "Project-Id-Version: WinPT 0.11.9\n"
 "Report-Msgid-Bugs-To: winpt at freakmail.de\n"
-"POT-Creation-Date: 2006-04-09 17:00+0200\n"
+"POT-Creation-Date: 2006-04-16 19:59+0200\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"
@@ -30,8 +30,8 @@
 #: Src/WinPT.cpp:464 Src/WinPT.cpp:471 Src/WinPT.cpp:511 Src/WinPT.cpp:539
 #: Src/WinPT.cpp:548 Src/WinPT.cpp:552 Src/WinPT.cpp:569 Src/WinPT.cpp:637
 #: Src/WinPT.cpp:650 Src/WinPT.cpp:697 Src/WinPT.cpp:727 Src/WinPT.cpp:745
-#: Src/wptCommonDlg.cpp:221 Src/wptErrors.cpp:141 Src/wptGPG.cpp:921
-#: Src/wptGPG.cpp:932 Src/wptGPG.cpp:941 Src/wptGPG.cpp:951
+#: Src/wptCommonDlg.cpp:221 Src/wptErrors.cpp:141 Src/wptGPG.cpp:903
+#: Src/wptGPG.cpp:915 Src/wptGPG.cpp:925 Src/wptGPG.cpp:936
 #: Src/wptMainProc.cpp:361 Src/wptMainProc.cpp:537
 msgid "WinPT Error"
 msgstr "WinPT Fehler"
@@ -185,7 +185,7 @@
 msgstr ""
 "Die Datei AUTHORS enthält eine Liste aller Co-Autoren und aller Beitragenden"
 
-#: Src/wptAboutDlgs.cpp:96 Src/wptKeyManagerDlg.cpp:1755
+#: Src/wptAboutDlgs.cpp:96 Src/wptKeyManagerDlg.cpp:1726
 #: Src/wptMainProc.cpp:586
 msgid "About WinPT"
 msgstr "Über WinPT"
@@ -235,7 +235,7 @@
 msgstr "Über &GPG..."
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:700
-#: Src/wptAboutDlgs.cpp:115 Src/wptKeyEditDlgs.cpp:2045
+#: Src/wptAboutDlgs.cpp:115 Src/wptKeyEditDlgs.cpp:2089
 #: Src/wptKeyManagerDlg.cpp:947
 msgid "&Help"
 msgstr "&Hilfe"
@@ -321,7 +321,7 @@
 "Diese Operation wird die Schlüssel auf der Karte überschreiben.\n"
 "Trotzdem fortfahren?"
 
-#: Src/wptCardDlg.cpp:580 Src/wptKeyEditDlgs.cpp:521
+#: Src/wptCardDlg.cpp:580 Src/wptKeyEditDlgs.cpp:517
 msgid "&Name"
 msgstr "&Name"
 
@@ -353,7 +353,7 @@
 msgid "Make off-card backup of encryption key"
 msgstr "Externes Backup des Verschlüsselungs-Schlüssel"
 
-#: Src/wptCardDlg.cpp:588 Src/wptKeyManagerDlg.cpp:1649
+#: Src/wptCardDlg.cpp:588 Src/wptKeyManagerDlg.cpp:1620
 msgid "Card Key Generation"
 msgstr "Karten-Schlüsselerzeugung"
 
@@ -382,7 +382,7 @@
 msgid "Please use plain ASCII charset for the fields."
 msgstr "Bitte nur den 7-bit ASCII Zeichensatz verwenden."
 
-#: Src/wptCardDlg.cpp:663 Src/wptKeyEditDlgs.cpp:1370
+#: Src/wptCardDlg.cpp:663 Src/wptKeyEditDlgs.cpp:1414
 msgid "The date you have chosen lies in the past."
 msgstr "Das gewählte Datum liegt in der Vergangenheit."
 
@@ -498,8 +498,8 @@
 
 #: Src/wptClipDecryptDlg.cpp:162 Src/wptClipEncryptDlg.cpp:213
 #: Src/wptClipSignDlg.cpp:122 Src/wptClipSignDlg.cpp:266
-#: Src/wptClipSignEncDlg.cpp:197 Src/wptKeyManager.cpp:273
-#: Src/wptKeyManager.cpp:751 Src/wptKeyManager.cpp:950 Src/wptSymEnc.cpp:91
+#: Src/wptClipSignEncDlg.cpp:197 Src/wptKeyManager.cpp:274
+#: Src/wptKeyManager.cpp:752 Src/wptKeyManager.cpp:951 Src/wptSymEnc.cpp:91
 msgid "GnuPG Status: Finished"
 msgstr "GnuPG-Status: Abgeschlossen"
 
@@ -599,7 +599,7 @@
 msgid "Add quotes"
 msgstr "'>' hinzufügen"
 
-#: Src/wptClipEditDlg.cpp:200 Src/wptKeyEditDlgs.cpp:2044
+#: Src/wptClipEditDlg.cpp:200 Src/wptKeyEditDlgs.cpp:2088
 #: Src/wptKeyserverDlg.cpp:594 Src/wptMDSumDlg.cpp:104
 #: Src/wptOwnertrustDlg.cpp:103
 msgid "&Close"
@@ -626,10 +626,10 @@
 #: Src/wptFileManagerDlg.cpp:84 Src/wptFileManagerDlg.cpp:218
 #: Src/wptFileManagerDlg.cpp:287 Src/wptFileSaveDlg.cpp:58
 #: Src/wptFirstRunDlg.cpp:47 Src/wptGPGPrefsDlg.cpp:157
-#: Src/wptKeyEditDlgs.cpp:345 Src/wptKeyEditDlgs.cpp:447
-#: Src/wptKeyEditDlgs.cpp:524 Src/wptKeyEditDlgs.cpp:656
+#: Src/wptKeyEditDlgs.cpp:361 Src/wptKeyEditDlgs.cpp:449
+#: Src/wptKeyEditDlgs.cpp:520 Src/wptKeyEditDlgs.cpp:656
 #: Src/wptKeyEditOwnertrustDlg.cpp:67 Src/wptKeygenDlg.cpp:383
-#: Src/wptKeygenDlg.cpp:546 Src/wptKeyRevokeDlg.cpp:101
+#: Src/wptKeygenDlg.cpp:546 Src/wptKeyRevokeDlg.cpp:83
 #: Src/wptKeyserverDlg.cpp:526 Src/wptKeyserverSearchDlg.cpp:61
 #: Src/wptKeysignDlg.cpp:287 Src/wptPassphraseCB.cpp:91
 #: Src/wptPassphraseDlg.cpp:69 Src/wptPINDlg.cpp:55
@@ -758,35 +758,36 @@
 msgid "Enter URL to retrieve the public key"
 msgstr "Bitte URL eingeben um öff. Schlüssel zu empfangen"
 
-#: Src/wptCommonDlg.cpp:135 Src/wptKeyEditDlgs.cpp:773
-#: Src/wptKeyEditDlgs.cpp:832 Src/wptKeyEditDlgs.cpp:871
-#: Src/wptKeyEditDlgs.cpp:886 Src/wptKeyEditDlgs.cpp:888
-#: Src/wptKeyEditDlgs.cpp:939 Src/wptKeyEditDlgs.cpp:983
-#: Src/wptKeyEditDlgs.cpp:990 Src/wptKeyEditDlgs.cpp:1008
-#: Src/wptKeyEditDlgs.cpp:1057 Src/wptKeyEditDlgs.cpp:1064
-#: Src/wptKeyEditDlgs.cpp:1155 Src/wptKeyEditDlgs.cpp:1161
-#: Src/wptKeyEditDlgs.cpp:1292 Src/wptKeyEditDlgs.cpp:1296
-#: Src/wptKeyEditDlgs.cpp:1300 Src/wptKeyEditDlgs.cpp:1305
-#: Src/wptKeyEditDlgs.cpp:1342 Src/wptKeyEditDlgs.cpp:1346
-#: Src/wptKeyEditDlgs.cpp:1356 Src/wptKeyEditDlgs.cpp:1371
-#: Src/wptKeyEditDlgs.cpp:1375 Src/wptKeyEditDlgs.cpp:1417
-#: Src/wptKeyEditDlgs.cpp:1422 Src/wptKeyEditDlgs.cpp:1429
-#: Src/wptKeyEditDlgs.cpp:1435 Src/wptKeyEditDlgs.cpp:1440
-#: Src/wptKeyEditDlgs.cpp:1485 Src/wptKeyEditDlgs.cpp:1490
-#: Src/wptKeyEditDlgs.cpp:1497 Src/wptKeyEditDlgs.cpp:1504
-#: Src/wptKeyEditDlgs.cpp:1507 Src/wptKeyEditDlgs.cpp:1547
-#: Src/wptKeyEditDlgs.cpp:1555 Src/wptKeyEditDlgs.cpp:1572
-#: Src/wptKeyEditDlgs.cpp:1592 Src/wptKeyEditDlgs.cpp:1600
-#: Src/wptKeyEditDlgs.cpp:1701 Src/wptKeyEditDlgs.cpp:1734
-#: Src/wptKeyEditDlgs.cpp:1761 Src/wptKeyEditDlgs.cpp:1765
-#: Src/wptKeyEditDlgs.cpp:1776 Src/wptKeyEditDlgs.cpp:1900
-#: Src/wptKeyEditDlgs.cpp:1902 Src/wptKeyEditDlgs.cpp:1935
-#: Src/wptKeyEditDlgs.cpp:1940 Src/wptKeyEditDlgs.cpp:1949
-#: Src/wptKeyEditDlgs.cpp:1963 Src/wptKeyEditDlgs.cpp:1967
-#: Src/wptKeyEditDlgs.cpp:2022 Src/wptKeyEditDlgs.cpp:2035
-#: Src/wptKeyEditDlgs.cpp:2046 Src/wptKeyEditDlgs.cpp:2075
-#: Src/wptKeyEditDlgs.cpp:2080 Src/wptKeyManagerDlg.cpp:975
-#: Src/wptKeyManagerDlg.cpp:1790
+#: Src/wptCommonDlg.cpp:135 Src/wptKeyEditDlgs.cpp:775
+#: Src/wptKeyEditDlgs.cpp:842 Src/wptKeyEditDlgs.cpp:882
+#: Src/wptKeyEditDlgs.cpp:895 Src/wptKeyEditDlgs.cpp:897
+#: Src/wptKeyEditDlgs.cpp:923 Src/wptKeyEditDlgs.cpp:953
+#: Src/wptKeyEditDlgs.cpp:985 Src/wptKeyEditDlgs.cpp:1029
+#: Src/wptKeyEditDlgs.cpp:1036 Src/wptKeyEditDlgs.cpp:1054
+#: Src/wptKeyEditDlgs.cpp:1100 Src/wptKeyEditDlgs.cpp:1107
+#: Src/wptKeyEditDlgs.cpp:1198 Src/wptKeyEditDlgs.cpp:1204
+#: Src/wptKeyEditDlgs.cpp:1335 Src/wptKeyEditDlgs.cpp:1339
+#: Src/wptKeyEditDlgs.cpp:1343 Src/wptKeyEditDlgs.cpp:1350
+#: Src/wptKeyEditDlgs.cpp:1386 Src/wptKeyEditDlgs.cpp:1390
+#: Src/wptKeyEditDlgs.cpp:1400 Src/wptKeyEditDlgs.cpp:1415
+#: Src/wptKeyEditDlgs.cpp:1419 Src/wptKeyEditDlgs.cpp:1461
+#: Src/wptKeyEditDlgs.cpp:1466 Src/wptKeyEditDlgs.cpp:1473
+#: Src/wptKeyEditDlgs.cpp:1479 Src/wptKeyEditDlgs.cpp:1484
+#: Src/wptKeyEditDlgs.cpp:1529 Src/wptKeyEditDlgs.cpp:1534
+#: Src/wptKeyEditDlgs.cpp:1541 Src/wptKeyEditDlgs.cpp:1548
+#: Src/wptKeyEditDlgs.cpp:1551 Src/wptKeyEditDlgs.cpp:1591
+#: Src/wptKeyEditDlgs.cpp:1599 Src/wptKeyEditDlgs.cpp:1616
+#: Src/wptKeyEditDlgs.cpp:1636 Src/wptKeyEditDlgs.cpp:1644
+#: Src/wptKeyEditDlgs.cpp:1746 Src/wptKeyEditDlgs.cpp:1780
+#: Src/wptKeyEditDlgs.cpp:1807 Src/wptKeyEditDlgs.cpp:1811
+#: Src/wptKeyEditDlgs.cpp:1822 Src/wptKeyEditDlgs.cpp:1944
+#: Src/wptKeyEditDlgs.cpp:1946 Src/wptKeyEditDlgs.cpp:1979
+#: Src/wptKeyEditDlgs.cpp:1984 Src/wptKeyEditDlgs.cpp:1993
+#: Src/wptKeyEditDlgs.cpp:2007 Src/wptKeyEditDlgs.cpp:2011
+#: Src/wptKeyEditDlgs.cpp:2066 Src/wptKeyEditDlgs.cpp:2079
+#: Src/wptKeyEditDlgs.cpp:2090 Src/wptKeyEditDlgs.cpp:2119
+#: Src/wptKeyEditDlgs.cpp:2124 Src/wptKeyManagerDlg.cpp:975
+#: Src/wptKeyManagerDlg.cpp:1750
 msgid "Key Edit"
 msgstr "Schlüssel bearbeiten"
 
@@ -1033,12 +1034,12 @@
 "\n"
 "Möchten Sie die Kompression ausschalten?"
 
-#: Src/wptFileManager.cpp:381 Src/wptKeyEditDlgs.cpp:1044
+#: Src/wptFileManager.cpp:381 Src/wptKeyEditDlgs.cpp:1087
 #: Src/wptVerifyList.cpp:108
 msgid "Status"
 msgstr "Status"
 
-#: Src/wptFileManager.cpp:382 Src/wptKeyEditDlgs.cpp:1147
+#: Src/wptFileManager.cpp:382 Src/wptKeyEditDlgs.cpp:1190
 #: Src/wptKeyRevokersDlg.cpp:57 Src/wptMDSumDlg.cpp:73
 #: Src/wptVerifyList.cpp:107
 msgid "Name"
@@ -1179,11 +1180,11 @@
 msgstr "Ungültiger Dateiname. Abbruch"
 
 #: Src/wptFileManager.cpp:1692 Src/wptFileManager.cpp:1703
-#: Src/wptFileManagerDlg.cpp:244 Src/wptImportList.cpp:413
-#: Src/wptImportList.cpp:419 Src/wptImportList.cpp:429
-#: Src/wptImportList.cpp:437 Src/wptImportList.cpp:446
-#: Src/wptKeyManager.cpp:447 Src/wptKeyManager.cpp:458
-#: Src/wptKeyManager.cpp:586 Src/wptKeyserverDlg.cpp:223
+#: Src/wptFileManagerDlg.cpp:244 Src/wptImportList.cpp:412
+#: Src/wptImportList.cpp:418 Src/wptImportList.cpp:428
+#: Src/wptImportList.cpp:436 Src/wptImportList.cpp:445
+#: Src/wptKeyManager.cpp:448 Src/wptKeyManager.cpp:459
+#: Src/wptKeyManager.cpp:587 Src/wptKeyserverDlg.cpp:223
 msgid "Import"
 msgstr "Importieren"
 
@@ -1199,8 +1200,8 @@
 "\n"
 "Kann diese(n) Schlüssel nicht importieren!"
 
-#: Src/wptFileManager.cpp:1726 Src/wptKeyManager.cpp:251
-#: Src/wptKeyManager.cpp:294 Src/wptKeyManager.cpp:329
+#: Src/wptFileManager.cpp:1726 Src/wptKeyManager.cpp:252
+#: Src/wptKeyManager.cpp:295 Src/wptKeyManager.cpp:330
 msgid "No key was selected for export."
 msgstr "Kein Schlüssel zum Exportieren ausgewählt."
 
@@ -1209,13 +1210,13 @@
 msgid "Export"
 msgstr "Exportieren"
 
-#: Src/wptFileManager.cpp:1734 Src/wptKeyManagerDlg.cpp:1713
-#: Src/wptKeyManagerDlg.cpp:1747
+#: Src/wptFileManager.cpp:1734 Src/wptKeyManagerDlg.cpp:1684
+#: Src/wptKeyManagerDlg.cpp:1718
 msgid "Choose Name for Key File"
 msgstr "Den Namen der Schlüsseldatei wählen"
 
-#: Src/wptFileManager.cpp:1753 Src/wptKeyEditDlgs.cpp:1023
-#: Src/wptKeyEditDlgs.cpp:1322 Src/wptKeyEditDlgs.cpp:1396
+#: Src/wptFileManager.cpp:1753 Src/wptKeyEditDlgs.cpp:1066
+#: Src/wptKeyEditDlgs.cpp:1367 Src/wptKeyEditDlgs.cpp:1440
 #: Src/wptKeyserverDlg.cpp:101
 msgid "GnuPG status"
 msgstr "GnuPG Status"
@@ -1279,12 +1280,12 @@
 msgstr "Bitte wählen Sie wenigstens einen Empfänger."
 
 #: Src/wptFileManagerDlg.cpp:203 Src/wptFileStatDlg.cpp:281
-#: Src/wptKeyManager.cpp:411
+#: Src/wptKeyManager.cpp:412
 msgid "No valid OpenPGP data found."
 msgstr "Keine gültigen OpenPGP-Daten gefunden."
 
 #: Src/wptFileManagerDlg.cpp:203 Src/wptFileManagerDlg.cpp:217
-#: Src/wptKeyManager.cpp:436
+#: Src/wptKeyManager.cpp:437
 msgid "Key Import"
 msgstr "Schlüsselimport"
 
@@ -1334,13 +1335,13 @@
 msgid "Options"
 msgstr "Optionen"
 
-#: Src/wptFileManagerDlg.cpp:332 Src/wptKeyEditDlgs.cpp:1296
-#: Src/wptKeyEditDlgs.cpp:1346 Src/wptKeyEditDlgs.cpp:1422
-#: Src/wptKeyManager.cpp:670 Src/wptKeyManager.cpp:772
-#: Src/wptKeyManager.cpp:808 Src/wptKeyManagerDlg.cpp:1494
-#: Src/wptKeyManagerDlg.cpp:1514 Src/wptKeyManagerDlg.cpp:1548
-#: Src/wptKeyManagerDlg.cpp:1567 Src/wptKeyManagerDlg.cpp:1587
-#: Src/wptKeyManagerDlg.cpp:1703 Src/wptKeyManagerDlg.cpp:1722
+#: Src/wptFileManagerDlg.cpp:332 Src/wptKeyEditDlgs.cpp:1339
+#: Src/wptKeyEditDlgs.cpp:1390 Src/wptKeyEditDlgs.cpp:1466
+#: Src/wptKeyManager.cpp:671 Src/wptKeyManager.cpp:773
+#: Src/wptKeyManager.cpp:809 Src/wptKeyManagerDlg.cpp:1494
+#: Src/wptKeyManagerDlg.cpp:1510 Src/wptKeyManagerDlg.cpp:1538
+#: Src/wptKeyManagerDlg.cpp:1554 Src/wptKeyManagerDlg.cpp:1567
+#: Src/wptKeyManagerDlg.cpp:1674 Src/wptKeyManagerDlg.cpp:1693
 #: Src/wptKeyserverSearchDlg.cpp:118
 msgid "Please select a key."
 msgstr "Bitte wählen Sie einen Schlüssel aus."
@@ -1540,7 +1541,7 @@
 msgstr "WinPT Erster Start"
 
 # c:\oss\winpt-gpgme\src\wptGPG.cpp:728
-#: Src/wptGPG.cpp:840
+#: Src/wptGPG.cpp:821
 msgid ""
 "The selected keyring has the read-only file\n"
 "attribute. In this state you do not have write\n"
@@ -1550,19 +1551,19 @@
 "In diesem Zustand kann nichts gespeichert werden\n"
 "Wollen Sie das Attribut zurücksetzen?"
 
-#: Src/wptGPG.cpp:843
+#: Src/wptGPG.cpp:824
 msgid "GPG Information"
 msgstr "GPG Information"
 
-#: Src/wptGPG.cpp:847
+#: Src/wptGPG.cpp:828
 msgid "Could not reset read-only state."
 msgstr "Konnte den Nur-Lesen Zustand nicht zurücksetzen."
 
-#: Src/wptGPG.cpp:848 Src/wptGPG.cpp:1127 Src/wptGPG.cpp:1136
+#: Src/wptGPG.cpp:829 Src/wptGPG.cpp:1110 Src/wptGPG.cpp:1119
 msgid "GPG Error"
 msgstr "GPG Fehler"
 
-#: Src/wptGPG.cpp:860
+#: Src/wptGPG.cpp:841
 msgid ""
 "You do not have file access to modify the contents of\n"
 "one or both of the selected keyrings.\n"
@@ -1576,15 +1577,15 @@
 "Die Schlüsselbunde sind im Nur-Lesen-Modus, was meistens der Fall ist, \n"
 "wenn ein anderes Programm auf die Schlüsselbunde zugreift.\n"
 
-#: Src/wptGPG.cpp:865
+#: Src/wptGPG.cpp:846
 msgid "GPG Warning"
 msgstr "GPG Warnung"
 
-#: Src/wptGPG.cpp:889 Src/wptGPGPrefsDlg.cpp:216 Src/wptGPGPrefsDlg.cpp:222
+#: Src/wptGPG.cpp:870 Src/wptGPGPrefsDlg.cpp:216 Src/wptGPGPrefsDlg.cpp:222
 #: Src/wptGPGPrefsDlg.cpp:228 Src/wptGPGPrefsDlg.cpp:234
 #: Src/wptGPGPrefsDlg.cpp:239 Src/wptGPGPrefsDlg.cpp:244
 #: Src/wptGPGPrefsDlg.cpp:250 Src/wptGPGPrefsDlg.cpp:264
-#: Src/wptKeyEditDlgs.cpp:1708 Src/wptKeyManagerDlg.cpp:940
+#: Src/wptKeyEditDlgs.cpp:1753 Src/wptKeyManagerDlg.cpp:940
 #: Src/wptMainProc.cpp:439 Src/wptPreferencesDlg.cpp:215
 #: Src/wptPreferencesDlg.cpp:260 Src/wptPreferencesDlg.cpp:272
 #: Src/wptPreferencesDlg.cpp:284 Src/wptPreferencesDlg.cpp:315
@@ -1592,7 +1593,7 @@
 msgid "Preferences"
 msgstr "Einstellungen"
 
-#: Src/wptGPG.cpp:890
+#: Src/wptGPG.cpp:871
 #, c-format
 msgid ""
 "%s does not exit.\n"
@@ -1601,41 +1602,41 @@
 "%s existiert nicht.\n"
 "Möchten Sie dieses Verzeichnis erstellen?"
 
-#: Src/wptGPG.cpp:918
-msgid "Please choose your public keyring"
+#: Src/wptGPG.cpp:899
+msgid "Please choose your Public Keyring"
 msgstr "Bitte wählen Sie Ihren öffentlichen Schlüsselbund."
 
-#: Src/wptGPG.cpp:921 Src/wptGPG.cpp:941
+#: Src/wptGPG.cpp:902 Src/wptGPG.cpp:924
 msgid "No keyring was chosen. Exit."
 msgstr "Kein Schlüsselbund ausgewählt. Abbruch."
 
-#: Src/wptGPG.cpp:927
+#: Src/wptGPG.cpp:909
 msgid "Overwrite old public keyring?"
 msgstr "Alten öff. Schlüsselbund überschreiben?"
 
-#: Src/wptGPG.cpp:932 Src/wptGPG.cpp:951
+#: Src/wptGPG.cpp:915 Src/wptGPG.cpp:936
 msgid "Could not copy file."
 msgstr "Datei konnte nicht kopiert werden"
 
-#: Src/wptGPG.cpp:938
-msgid "Please choose your secret keyring"
+#: Src/wptGPG.cpp:921
+msgid "Please choose your Secret Keyring"
 msgstr "Bitte wählen Sie Ihren geheimen Schlüsselbund"
 
-#: Src/wptGPG.cpp:946
+#: Src/wptGPG.cpp:930
 msgid "Overwrite old secret keyring?"
 msgstr "Alten geheimen Schlüsselbund überschreiben?"
 
-#: Src/wptGPG.cpp:996 Src/wptGPG.cpp:1086 Src/wptGPG.cpp:1099
+#: Src/wptGPG.cpp:980 Src/wptGPG.cpp:1069 Src/wptGPG.cpp:1082
 msgid "Backup"
 msgstr "Sicherung"
 
-#: Src/wptGPG.cpp:996
+#: Src/wptGPG.cpp:980
 #, c-format
 msgid "Backup keyring \"%s\" failed"
 msgstr "Schlüsselbundsicherung \"%s\" fehlgeschlagen"
 
 # c:\oss\winpt-gpgme\src\wptGPG.cpp:1021
-#: Src/wptGPG.cpp:1087
+#: Src/wptGPG.cpp:1070
 #, c-format
 msgid ""
 "The backup drive '%s' does not seems to accessable.\n"
@@ -1644,12 +1645,12 @@
 "Kann auf das Backup-Laufwerk '%s' nicht zugreifen.\n"
 "Bitte aktivieren/überprüfen sie das Laufwerk um Fortzufahren."
 
-#: Src/wptGPG.cpp:1099
+#: Src/wptGPG.cpp:1082
 #, c-format
 msgid "Invalid backup mode %d"
 msgstr "Ungültiger Sicherungsmethode %d"
 
-#: Src/wptGPG.cpp:1126
+#: Src/wptGPG.cpp:1109
 msgid "No GPG error description available."
 msgstr "Keine Fehlerbeschreibung von GPG verfügbar."
 
@@ -1723,7 +1724,7 @@
 "Aktuelle Daten gehen verloren\n"
 "Sind Sie sicher?"
 
-#: Src/wptGPGPrefsDlg.cpp:141 Src/wptKeyManagerDlg.cpp:1675
+#: Src/wptGPGPrefsDlg.cpp:141 Src/wptKeyManagerDlg.cpp:1646
 #: Src/wptMainProc.cpp:598
 msgid "GnuPG Preferences"
 msgstr "GnuPG-Einstellungen"
@@ -1803,37 +1804,37 @@
 msgstr "Wählen Sie GPG.EXE Datei aus"
 
 #: Src/wptGroupManager.cpp:207 Src/wptGroupManager.cpp:238
-#: Src/wptImagelist.cpp:52 Src/wptKeyManager.cpp:153 Src/wptKeyManager.cpp:158
-#: Src/wptKeyManager.cpp:209 Src/wptKeyManager.cpp:252
-#: Src/wptKeyManager.cpp:264 Src/wptKeyManager.cpp:295
-#: Src/wptKeyManager.cpp:300 Src/wptKeyManager.cpp:307
-#: Src/wptKeyManager.cpp:309 Src/wptKeyManager.cpp:330
-#: Src/wptKeyManager.cpp:339 Src/wptKeyManager.cpp:343
-#: Src/wptKeyManager.cpp:363 Src/wptKeyManager.cpp:404
-#: Src/wptKeyManager.cpp:409 Src/wptKeyManager.cpp:412
-#: Src/wptKeyManager.cpp:417 Src/wptKeyManager.cpp:423
-#: Src/wptKeyManager.cpp:428 Src/wptKeyManager.cpp:556
-#: Src/wptKeyManager.cpp:564 Src/wptKeyManager.cpp:670
-#: Src/wptKeyManager.cpp:699 Src/wptKeyManager.cpp:708
-#: Src/wptKeyManager.cpp:719 Src/wptKeyManager.cpp:745
-#: Src/wptKeyManager.cpp:772 Src/wptKeyManager.cpp:779
-#: Src/wptKeyManager.cpp:803 Src/wptKeyManager.cpp:808
-#: Src/wptKeyManager.cpp:828 Src/wptKeyManager.cpp:883
-#: Src/wptKeyManager.cpp:888 Src/wptKeyManager.cpp:948
-#: Src/wptKeyManager.cpp:978 Src/wptKeyManagerDlg.cpp:1162
-#: Src/wptKeyManagerDlg.cpp:1175 Src/wptKeyManagerDlg.cpp:1185
-#: Src/wptKeyManagerDlg.cpp:1473 Src/wptKeyManagerDlg.cpp:1495
-#: Src/wptKeyManagerDlg.cpp:1514 Src/wptKeyManagerDlg.cpp:1522
-#: Src/wptKeyManagerDlg.cpp:1532 Src/wptKeyManagerDlg.cpp:1548
+#: Src/wptImagelist.cpp:52 Src/wptKeyManager.cpp:154 Src/wptKeyManager.cpp:159
+#: Src/wptKeyManager.cpp:210 Src/wptKeyManager.cpp:253
+#: Src/wptKeyManager.cpp:265 Src/wptKeyManager.cpp:296
+#: Src/wptKeyManager.cpp:301 Src/wptKeyManager.cpp:308
+#: Src/wptKeyManager.cpp:310 Src/wptKeyManager.cpp:331
+#: Src/wptKeyManager.cpp:340 Src/wptKeyManager.cpp:344
+#: Src/wptKeyManager.cpp:364 Src/wptKeyManager.cpp:405
+#: Src/wptKeyManager.cpp:410 Src/wptKeyManager.cpp:413
+#: Src/wptKeyManager.cpp:418 Src/wptKeyManager.cpp:424
+#: Src/wptKeyManager.cpp:429 Src/wptKeyManager.cpp:557
+#: Src/wptKeyManager.cpp:565 Src/wptKeyManager.cpp:671
+#: Src/wptKeyManager.cpp:700 Src/wptKeyManager.cpp:709
+#: Src/wptKeyManager.cpp:720 Src/wptKeyManager.cpp:746
+#: Src/wptKeyManager.cpp:773 Src/wptKeyManager.cpp:780
+#: Src/wptKeyManager.cpp:804 Src/wptKeyManager.cpp:809
+#: Src/wptKeyManager.cpp:829 Src/wptKeyManager.cpp:884
+#: Src/wptKeyManager.cpp:889 Src/wptKeyManager.cpp:949
+#: Src/wptKeyManager.cpp:979 Src/wptKeyManager.cpp:1068
+#: Src/wptKeyManagerDlg.cpp:1162 Src/wptKeyManagerDlg.cpp:1175
+#: Src/wptKeyManagerDlg.cpp:1185 Src/wptKeyManagerDlg.cpp:1473
+#: Src/wptKeyManagerDlg.cpp:1495 Src/wptKeyManagerDlg.cpp:1510
+#: Src/wptKeyManagerDlg.cpp:1520 Src/wptKeyManagerDlg.cpp:1528
+#: Src/wptKeyManagerDlg.cpp:1538 Src/wptKeyManagerDlg.cpp:1544
 #: Src/wptKeyManagerDlg.cpp:1554 Src/wptKeyManagerDlg.cpp:1567
-#: Src/wptKeyManagerDlg.cpp:1587 Src/wptKeyManagerDlg.cpp:1616
-#: Src/wptKeyManagerDlg.cpp:1645 Src/wptKeyManagerDlg.cpp:1704
-#: Src/wptKeyManagerDlg.cpp:1722 Src/wptKeyManagerDlg.cpp:1727
-#: Src/wptKeyManagerDlg.cpp:1732 Src/wptKeyManagerDlg.cpp:1821
-#: Src/wptKeyManagerDlg.cpp:1996 Src/wptKeysigDlg.cpp:93
-#: Src/wptKeysigDlg.cpp:105 Src/wptKeysigDlg.cpp:284 Src/wptKeysigDlg.cpp:358
-#: Src/wptKeysigDlg.cpp:367 Src/wptKeysigDlg.cpp:412 Src/wptMainProc.cpp:413
-#: Src/wptMainProc.cpp:561 Src/wptMainProc.cpp:569
+#: Src/wptKeyManagerDlg.cpp:1584 Src/wptKeyManagerDlg.cpp:1616
+#: Src/wptKeyManagerDlg.cpp:1675 Src/wptKeyManagerDlg.cpp:1693
+#: Src/wptKeyManagerDlg.cpp:1698 Src/wptKeyManagerDlg.cpp:1703
+#: Src/wptKeyManagerDlg.cpp:1776 Src/wptKeyManagerDlg.cpp:1913
+#: Src/wptKeysigDlg.cpp:93 Src/wptKeysigDlg.cpp:105 Src/wptKeysigDlg.cpp:284
+#: Src/wptKeysigDlg.cpp:358 Src/wptKeysigDlg.cpp:367 Src/wptKeysigDlg.cpp:412
+#: Src/wptMainProc.cpp:413 Src/wptMainProc.cpp:561 Src/wptMainProc.cpp:569
 msgid "Key Manager"
 msgstr "Schlüsselverwaltung"
 
@@ -1907,47 +1908,47 @@
 msgid "Unknown Hotkey"
 msgstr "Unbekanntes Tastenkürzel"
 
-#: Src/wptImportList.cpp:263 Src/wptKeyEditDlgs.cpp:237
-#: Src/wptKeyEditDlgs.cpp:1119 Src/wptKeyEditDlgs.cpp:1180
-#: Src/wptKeyEditDlgs.cpp:1434 Src/wptKeyEditDlgs.cpp:1456
-#: Src/wptKeyEditDlgs.cpp:1495 Src/wptKeyEditDlgs.cpp:1528
+#: Src/wptImportList.cpp:262 Src/wptKeyEditDlgs.cpp:255
+#: Src/wptKeyEditDlgs.cpp:1162 Src/wptKeyEditDlgs.cpp:1223
+#: Src/wptKeyEditDlgs.cpp:1478 Src/wptKeyEditDlgs.cpp:1500
+#: Src/wptKeyEditDlgs.cpp:1539 Src/wptKeyEditDlgs.cpp:1572
 #: 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:265 Src/wptKeyEditDlgs.cpp:239
-#: Src/wptKeyEditDlgs.cpp:1117 Src/wptKeyEditDlgs.cpp:1353
+#: Src/wptImportList.cpp:264 Src/wptKeyEditDlgs.cpp:257
+#: Src/wptKeyEditDlgs.cpp:1160 Src/wptKeyEditDlgs.cpp:1397
 #: 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:269
+#: Src/wptImportList.cpp:268
 msgid "secret key"
 msgstr "geheimer Schlüssel"
 
-#: Src/wptImportList.cpp:271 Src/wptKeylist.cpp:430
+#: Src/wptImportList.cpp:270 Src/wptKeylist.cpp:430
 msgid "public key"
 msgstr "öffentlicher Schlüssel"
 
-#: Src/wptImportList.cpp:302 Src/wptKeyEditDlgs.cpp:1197
+#: Src/wptImportList.cpp:301 Src/wptKeyEditDlgs.cpp:1240
 msgid "Invalid user ID"
 msgstr "Ungültige Benutzerkennung"
 
-#: Src/wptImportList.cpp:351 Src/wptKeylist.cpp:544 Src/wptKeylist.cpp:552
+#: Src/wptImportList.cpp:350 Src/wptKeylist.cpp:544 Src/wptKeylist.cpp:552
 #: Src/wptKeyManagerDlg.cpp:857 Src/wptKeyManagerDlg.cpp:926
 #: Src/wptKeyserverSearchDlg.cpp:53 Src/wptSigList.cpp:51
 #: Src/wptVerifyList.cpp:112
 msgid "User ID"
 msgstr "Benutzerkennung"
 
-#: Src/wptImportList.cpp:352 Src/wptKeylist.cpp:546 Src/wptKeylist.cpp:555
+#: Src/wptImportList.cpp:351 Src/wptKeylist.cpp:546 Src/wptKeylist.cpp:555
 #: Src/wptKeyManagerDlg.cpp:860 Src/wptKeyserverSearchDlg.cpp:50
 msgid "Size"
 msgstr "Größe"
 
-#: Src/wptImportList.cpp:353 Src/wptKeyEditDlgs.cpp:1041
+#: Src/wptImportList.cpp:352 Src/wptKeyEditDlgs.cpp:1084
 #: Src/wptKeylist.cpp:545 Src/wptKeylist.cpp:553 Src/wptKeyManagerDlg.cpp:858
 #: Src/wptKeyManagerDlg.cpp:949 Src/wptKeyRevokersDlg.cpp:58
 #: Src/wptKeyserverSearchDlg.cpp:51 Src/wptSigList.cpp:55
@@ -1955,20 +1956,20 @@
 msgid "Key ID"
 msgstr "Schlüssel-ID"
 
-#: Src/wptImportList.cpp:354 Src/wptKeyEditDlgs.cpp:1042
-#: Src/wptKeyEditDlgs.cpp:1149 Src/wptKeylist.cpp:559
+#: Src/wptImportList.cpp:353 Src/wptKeyEditDlgs.cpp:1085
+#: Src/wptKeyEditDlgs.cpp:1192 Src/wptKeylist.cpp:559
 #: Src/wptKeyManagerDlg.cpp:864 Src/wptKeyManagerDlg.cpp:952
 #: Src/wptKeyserverSearchDlg.cpp:52 Src/wptSigList.cpp:54
 msgid "Creation"
 msgstr "Erstellung"
 
-#: Src/wptImportList.cpp:355 Src/wptKeylist.cpp:554
+#: Src/wptImportList.cpp:354 Src/wptKeylist.cpp:554
 #: Src/wptKeyManagerDlg.cpp:859 Src/wptKeyManagerDlg.cpp:951
 msgid "Type"
 msgstr "Typ"
 
 # c:\oss\winpt-gpgme\src\wptImportList.cpp:424
-#: Src/wptImportList.cpp:427
+#: Src/wptImportList.cpp:426
 msgid ""
 "It is possible that the ASCII-Armor is damaged\n"
 "and thus a CRC error occurs."
@@ -1993,24 +1994,24 @@
 msgid "Key Cache"
 msgstr "Schlüsselcache"
 
-#: Src/wptKeyEditDlgs.cpp:210
+#: Src/wptKeyEditDlgs.cpp:228
 msgid "Ultimate"
 msgstr "Absolut"
 
-#: Src/wptKeyEditDlgs.cpp:225 Src/wptKeyEditDlgs.cpp:1114
+#: Src/wptKeyEditDlgs.cpp:243 Src/wptKeyEditDlgs.cpp:1157
 #: Src/wptKeylist.cpp:235 Src/wptKeylist.cpp:354
 msgid "Never"
 msgstr "Niemals"
 
-#: Src/wptKeyEditDlgs.cpp:241 Src/wptKeyEditDlgs.cpp:1121
+#: Src/wptKeyEditDlgs.cpp:259 Src/wptKeyEditDlgs.cpp:1164
 msgid "OK"
 msgstr "OK"
 
-#: Src/wptKeyEditDlgs.cpp:266
+#: Src/wptKeyEditDlgs.cpp:282
 msgid "user ID"
 msgstr "Benutzerkennung"
 
-#: Src/wptKeyEditDlgs.cpp:267
+#: Src/wptKeyEditDlgs.cpp:283
 #, c-format
 msgid ""
 "Could not get key information for: \"%s\":\n"
@@ -2020,7 +2021,7 @@
 "%s"
 
 # c:\oss\winpt-gpgme\src\wptKeyEditDlgs.cpp:258
-#: Src/wptKeyEditDlgs.cpp:342
+#: Src/wptKeyEditDlgs.cpp:358
 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 "
@@ -2031,7 +2032,7 @@
 "240x288 grosses Bild ist eine gute Größe."
 
 # c:\oss\winpt-gpgme\src\wptKeyEditDlgs.cpp:259
-#: Src/wptKeyEditDlgs.cpp:343
+#: Src/wptKeyEditDlgs.cpp:359
 msgid ""
 "Pick an image to use for your photo ID.\n"
 "The image must be a JPEG file."
@@ -2039,35 +2040,35 @@
 "Bitte ein Bild auswählen fuer die photo ID.\n"
 "Das Bild muss eine JPEG Datei sein."
 
-#: Src/wptKeyEditDlgs.cpp:344 Src/wptKeyEditDlgs.cpp:446
+#: Src/wptKeyEditDlgs.cpp:360 Src/wptKeyEditDlgs.cpp:448
 #: Src/wptKeysignDlg.cpp:286
 msgid "Passphrase"
 msgstr "Passwort"
 
-#: Src/wptKeyEditDlgs.cpp:346
+#: Src/wptKeyEditDlgs.cpp:362
 msgid "Add Photo ID"
 msgstr "Photo ID hinzufügen"
 
-#: Src/wptKeyEditDlgs.cpp:362
+#: Src/wptKeyEditDlgs.cpp:377
 msgid "Select Image File"
 msgstr "Bilddatei auswählen"
 
-#: Src/wptKeyEditDlgs.cpp:366 Src/wptKeyEditDlgs.cpp:376
-#: Src/wptKeyEditDlgs.cpp:382 Src/wptKeyEditDlgs.cpp:388
-#: Src/wptKeyEditDlgs.cpp:402 Src/wptKeyEditDlgs.cpp:904
+#: Src/wptKeyEditDlgs.cpp:381 Src/wptKeyEditDlgs.cpp:391
+#: Src/wptKeyEditDlgs.cpp:397 Src/wptKeyEditDlgs.cpp:409
+#: Src/wptKeyEditDlgs.cpp:917
 msgid "Add Photo"
 msgstr "Foto hinzufügen"
 
-#: Src/wptKeyEditDlgs.cpp:367
+#: Src/wptKeyEditDlgs.cpp:382
 #, c-format
 msgid "'%s' is not a valid JPEG file."
 msgstr "'%s' is keine gültige JPEG Datei."
 
-#: Src/wptKeyEditDlgs.cpp:376 Src/wptKeyRevokeDlg.cpp:142
+#: Src/wptKeyEditDlgs.cpp:391 Src/wptKeyRevokeDlg.cpp:149
 msgid "Please enter a file name."
 msgstr "Bitte Dateinamen eingeben."
 
-#: Src/wptKeyEditDlgs.cpp:380
+#: Src/wptKeyEditDlgs.cpp:395
 msgid ""
 "The JPEG is really large.\n"
 "Are you sure you want to use it?"
@@ -2075,18 +2076,14 @@
 "Das JPEG ist sehr groß.\n"
 "Sind Sie sicher, dass Sie es benutzen wollen?"
 
-#: Src/wptKeyEditDlgs.cpp:388 Src/wptPassphraseDlg.cpp:99
-msgid "Please enter a passphrase."
-msgstr "Bitte ein Passwort eingeben."
-
-#: Src/wptKeyEditDlgs.cpp:407
+#: Src/wptKeyEditDlgs.cpp:414
 msgid "Photo successfully added."
 msgstr "Foto erfolgreich hinzugefügt."
 
-#: Src/wptKeyEditDlgs.cpp:408 Src/wptKeyEditDlgs.cpp:489
-#: Src/wptKeyEditDlgs.cpp:571 Src/wptKeyEditDlgs.cpp:740
-#: Src/wptKeyEditDlgs.cpp:1458 Src/wptKeyEditDlgs.cpp:1530
-#: Src/wptKeyEditDlgs.cpp:1615 Src/wptKeyEditDlgs.cpp:1795
+#: Src/wptKeyEditDlgs.cpp:415 Src/wptKeyEditDlgs.cpp:484
+#: Src/wptKeyEditDlgs.cpp:565 Src/wptKeyEditDlgs.cpp:742
+#: Src/wptKeyEditDlgs.cpp:1502 Src/wptKeyEditDlgs.cpp:1574
+#: Src/wptKeyEditDlgs.cpp:1659 Src/wptKeyEditDlgs.cpp:1841
 #: Src/wptKeygenDlg.cpp:496 Src/wptKeygenDlg.cpp:612
 #: Src/wptKeyPropsDlg.cpp:357 Src/wptOwnertrustDlg.cpp:124
 #: Src/wptOwnertrustDlg.cpp:136
@@ -2094,79 +2091,73 @@
 msgstr "GnuPG-Status"
 
 # c:\oss\winpt-gpgme\src\wptKeyEditDlgs.cpp:350
-#: Src/wptKeyEditDlgs.cpp:444
+#: Src/wptKeyEditDlgs.cpp:446
 msgid "Appointing a key as designated revoker cannot be undone."
 msgstr ""
 "Hinzufügen eines \"Widerrufers\" kann nicht mehr\n"
 "rückgängig gemacht werden."
 
-#: Src/wptKeyEditDlgs.cpp:445
+#: Src/wptKeyEditDlgs.cpp:447
 msgid "Public key"
 msgstr "öff. Schlüssel"
 
-#: Src/wptKeyEditDlgs.cpp:448 Src/wptKeyEditDlgs.cpp:464
-#: Src/wptKeyEditDlgs.cpp:470 Src/wptKeyEditDlgs.cpp:483
-#: Src/wptKeyEditDlgs.cpp:917
+#: Src/wptKeyEditDlgs.cpp:450 Src/wptKeyEditDlgs.cpp:466
+#: Src/wptKeyEditDlgs.cpp:478 Src/wptKeyEditDlgs.cpp:948
 msgid "Add Revoker"
 msgstr "\"Wiederrufer\" hinzufügen"
 
-#: Src/wptKeyEditDlgs.cpp:464 Src/wptKeyEditDlgs.cpp:1490
-#: Src/wptKeyEditDlgs.cpp:1547 Src/wptKeyEditDlgs.cpp:1592
-#: Src/wptKeyEditDlgs.cpp:1734 Src/wptKeyEditDlgs.cpp:1765
-#: Src/wptKeyEditDlgs.cpp:1935
+#: Src/wptKeyEditDlgs.cpp:466 Src/wptKeyEditDlgs.cpp:1534
+#: Src/wptKeyEditDlgs.cpp:1591 Src/wptKeyEditDlgs.cpp:1636
+#: Src/wptKeyEditDlgs.cpp:1780 Src/wptKeyEditDlgs.cpp:1811
+#: Src/wptKeyEditDlgs.cpp:1979
 msgid "Please select a user ID."
 msgstr "Bitte eine Benutzerkennung wählen."
 
-#: Src/wptKeyEditDlgs.cpp:470 Src/wptKeygenDlg.cpp:457
-#: Src/wptKeyRevokeDlg.cpp:150
-msgid "Please enter the passphrase."
-msgstr "Bitte das Passwort eingeben."
-
-#: Src/wptKeyEditDlgs.cpp:488
+#: Src/wptKeyEditDlgs.cpp:483
 msgid "Revoker successfully addded."
 msgstr "Widerrufer erfolgreich hinzugefügt."
 
-#: Src/wptKeyEditDlgs.cpp:520
+#: Src/wptKeyEditDlgs.cpp:516
 msgid "Add new User ID"
 msgstr "Neue Benutzerkennung hinzufügen"
 
-#: Src/wptKeyEditDlgs.cpp:522
+#: Src/wptKeyEditDlgs.cpp:518
 msgid "&Email"
 msgstr "&E-Mail"
 
-#: Src/wptKeyEditDlgs.cpp:523
+#: Src/wptKeyEditDlgs.cpp:519
 msgid "&Comment"
 msgstr "&Kommentar"
 
-#: Src/wptKeyEditDlgs.cpp:538
+#: Src/wptKeyEditDlgs.cpp:535
 msgid "Please enter a name (min. 5 chars.)"
 msgstr "Bitte Namen eingeben (min. 5 Zeichen)"
 
-#: Src/wptKeyEditDlgs.cpp:538 Src/wptKeyEditDlgs.cpp:542
-#: Src/wptKeyEditDlgs.cpp:547 Src/wptKeyEditDlgs.cpp:551
-#: Src/wptKeyEditDlgs.cpp:569
+#: Src/wptKeyEditDlgs.cpp:535 Src/wptKeyEditDlgs.cpp:539
+#: Src/wptKeyEditDlgs.cpp:544 Src/wptKeyEditDlgs.cpp:548
+#: Src/wptKeyEditDlgs.cpp:563
 msgid "UserID"
 msgstr "Benutzerkennung"
 
-#: Src/wptKeyEditDlgs.cpp:542
+#: Src/wptKeyEditDlgs.cpp:539
 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:547
+#: Src/wptKeyEditDlgs.cpp:544
 msgid "Please enter an email address."
 msgstr "Bitte eine E-Mail-Adresse eingeben."
 
-#: Src/wptKeyEditDlgs.cpp:551
+#: Src/wptKeyEditDlgs.cpp:548
 msgid "Invalid email address."
 msgstr "Ungültige E-Mail-Adresse"
 
-#: Src/wptKeyEditDlgs.cpp:571
+#: Src/wptKeyEditDlgs.cpp:565
 msgid "user ID successfully added."
 msgstr "Benutzerkennung erfolgreich hinzugefügt."
 
-#: Src/wptKeyEditDlgs.cpp:651 Src/wptKeyEditDlgs.cpp:846
+#: Src/wptKeyEditDlgs.cpp:651 Src/wptKeyEditDlgs.cpp:855
 msgid "Add new Subkey"
 msgstr "Neuen Unterschlüssel hinzufügen"
 
@@ -2182,49 +2173,49 @@
 msgid "Key expiration"
 msgstr "Key Ablaufdatum"
 
-#: Src/wptKeyEditDlgs.cpp:699
+#: Src/wptKeyEditDlgs.cpp:700
 msgid "Please select one entry."
 msgstr "Bitte wählen Sie einen Eintrag aus."
 
-#: Src/wptKeyEditDlgs.cpp:699 Src/wptKeyEditDlgs.cpp:705
-#: Src/wptKeyEditDlgs.cpp:738 Src/wptKeyEditDlgs.cpp:828
+#: Src/wptKeyEditDlgs.cpp:701 Src/wptKeyEditDlgs.cpp:707
+#: Src/wptKeyEditDlgs.cpp:739 Src/wptKeyEditDlgs.cpp:838
 msgid "Add Subkey"
 msgstr "Unterschlüssel hinzufügen"
 
-#: Src/wptKeyEditDlgs.cpp:704
+#: Src/wptKeyEditDlgs.cpp:706
 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:740
+#: Src/wptKeyEditDlgs.cpp:741
 msgid "Subkey successfully added."
 msgstr "Unterschlüssel erfolgreich hinzugefügt."
 
-#: Src/wptKeyEditDlgs.cpp:768 Src/wptKeyEditDlgs.cpp:828
-#: Src/wptKeyEditDlgs.cpp:903 Src/wptKeyEditDlgs.cpp:917
-#: Src/wptKeyEditDlgs.cpp:982 Src/wptKeyEditDlgs.cpp:1342
-#: Src/wptKeyEditDlgs.cpp:1417 Src/wptKeyEditDlgs.cpp:1479
-#: Src/wptKeyManagerDlg.cpp:1521
+#: Src/wptKeyEditDlgs.cpp:769 Src/wptKeyEditDlgs.cpp:837
+#: Src/wptKeyEditDlgs.cpp:916 Src/wptKeyEditDlgs.cpp:948
+#: Src/wptKeyEditDlgs.cpp:1028 Src/wptKeyEditDlgs.cpp:1386
+#: Src/wptKeyEditDlgs.cpp:1461 Src/wptKeyEditDlgs.cpp:1523
+#: Src/wptKeyManagerDlg.cpp:1527
 msgid "There is no secret key available!"
 msgstr "Kein geheimer Schlüssel vorhanden!"
 
-#: Src/wptKeyEditDlgs.cpp:768 Src/wptKeyEditDlgs.cpp:785
+#: Src/wptKeyEditDlgs.cpp:770 Src/wptKeyEditDlgs.cpp:788
 msgid "Add user ID"
 msgstr "Benutzerkennung hinzufügen"
 
-#: Src/wptKeyEditDlgs.cpp:886
+#: Src/wptKeyEditDlgs.cpp:895
 msgid "Preferred keyserver successfully set."
 msgstr "Bevorzugter Keyserver wurde erfolgreich gesetzt."
 
-#: Src/wptKeyEditDlgs.cpp:936 Src/wptKeyEditOwnertrustDlg.cpp:55
+#: Src/wptKeyEditDlgs.cpp:982 Src/wptKeyEditOwnertrustDlg.cpp:55
 #: Src/wptKeyPropsDlg.cpp:349
 msgid "Change Ownertrust"
 msgstr "Besitzervertrauen ändern"
 
-#: Src/wptKeyEditDlgs.cpp:939 Src/wptKeyManager.cpp:207
+#: Src/wptKeyEditDlgs.cpp:985 Src/wptKeyManager.cpp:208
 msgid "Key status changed."
 msgstr "Schlüsselstatus geändert."
 
-#: Src/wptKeyEditDlgs.cpp:988
+#: Src/wptKeyEditDlgs.cpp:1034
 msgid ""
 "Cannot change passphrase because the key\n"
 "is protected with the IDEA encryption algorithm."
@@ -2232,15 +2223,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:995
+#: Src/wptKeyEditDlgs.cpp:1041
 msgid "Current (old) Passphrase"
 msgstr "Aktuelles (altes) Passwort"
 
-#: Src/wptKeyEditDlgs.cpp:999
+#: Src/wptKeyEditDlgs.cpp:1045
 msgid "New Passphrase"
 msgstr "Neues Passwort"
 
-#: Src/wptKeyEditDlgs.cpp:1006 Src/wptPassphraseDlg.cpp:191
+#: Src/wptKeyEditDlgs.cpp:1052 Src/wptPassphraseDlg.cpp:191
 msgid ""
 "The passphrase contains 8-bit characters.\n"
 "It is not suggested to use charset specific characters."
@@ -2248,44 +2239,44 @@
 "Das Passwort enthält 8-bit Zeichen.\n"
 "Es ist nicht zu empfehlen zeichensatzspezifische Zeichen zu benutzen."
 
-#: Src/wptKeyEditDlgs.cpp:1021
+#: Src/wptKeyEditDlgs.cpp:1064
 msgid "Change Passwd"
 msgstr "Passwort ändern"
 
-#: Src/wptKeyEditDlgs.cpp:1023
+#: Src/wptKeyEditDlgs.cpp:1066
 msgid "Passphrase successfully changed."
 msgstr "Passwort erfolgreich geändert."
 
-#: Src/wptKeyEditDlgs.cpp:1040 Src/wptKeyManagerDlg.cpp:865
+#: Src/wptKeyEditDlgs.cpp:1083 Src/wptKeyManagerDlg.cpp:865
 msgid "Description"
 msgstr "Beschreibung"
 
-#: Src/wptKeyEditDlgs.cpp:1043
+#: Src/wptKeyEditDlgs.cpp:1086
 msgid "Expires"
 msgstr "Verfällt"
 
-#: Src/wptKeyEditDlgs.cpp:1057 Src/wptKeyEditDlgs.cpp:1155
+#: Src/wptKeyEditDlgs.cpp:1100 Src/wptKeyEditDlgs.cpp:1198
 msgid "Could not find key."
 msgstr "Konnte Schlüssel nicht finden."
 
-#: Src/wptKeyEditDlgs.cpp:1064
+#: Src/wptKeyEditDlgs.cpp:1107
 msgid "No subkey(s) found."
 msgstr "Kein(e) Unterschlüssel gefunden."
 
-#: Src/wptKeyEditDlgs.cpp:1146 Src/wptKeylist.cpp:548 Src/wptKeylist.cpp:557
+#: Src/wptKeyEditDlgs.cpp:1189 Src/wptKeylist.cpp:548 Src/wptKeylist.cpp:557
 #: Src/wptKeyManagerDlg.cpp:862
 msgid "Validity"
 msgstr "Gültigkeit"
 
-#: Src/wptKeyEditDlgs.cpp:1148
+#: Src/wptKeyEditDlgs.cpp:1191
 msgid "Email"
 msgstr "E-Mail"
 
-#: Src/wptKeyEditDlgs.cpp:1161
+#: Src/wptKeyEditDlgs.cpp:1204
 msgid "No user ID(s) found."
 msgstr "Keine Benutzerkennung(en) gefunden."
 
-#: Src/wptKeyEditDlgs.cpp:1255
+#: Src/wptKeyEditDlgs.cpp:1298
 msgid ""
 "ADDUID   \t\tadd a user ID\r\n"
 "ADDPHOTO  \t\tadd a photo ID\r\n"
@@ -2327,19 +2318,19 @@
 "LSIGN\t    \t\tBenutzerkennung signieren (nicht-exportierbar)\r\n"
 "CLEAN     \t\tEntferne unbrauchbare Signaturen vom Schlüssel\r\n"
 
-#: Src/wptKeyEditDlgs.cpp:1276
+#: Src/wptKeyEditDlgs.cpp:1319
 msgid "Key Edit Help"
 msgstr "Hilfe zum Schlüssel bearbeiten"
 
-#: Src/wptKeyEditDlgs.cpp:1292
+#: Src/wptKeyEditDlgs.cpp:1335
 msgid "Primary key can not be deleted!"
 msgstr "Primärer Schlüssel kann nicht gelöscht werden!"
 
-#: Src/wptKeyEditDlgs.cpp:1300
+#: Src/wptKeyEditDlgs.cpp:1343
 msgid "Primary subkey can not be deleted!"
 msgstr "Primärer Unterschlüssel kann nicht gelöscht werden!"
 
-#: Src/wptKeyEditDlgs.cpp:1306
+#: Src/wptKeyEditDlgs.cpp:1351
 #, c-format
 msgid ""
 "\"Subkey %s.\"\n"
@@ -2356,15 +2347,15 @@
 "\n"
 "Möchten Sie diesen Unterschlüssel wirklich löschen?"
 
-#: Src/wptKeyEditDlgs.cpp:1318
+#: Src/wptKeyEditDlgs.cpp:1363
 msgid "Delete Subkey"
 msgstr "Unterschlüssel löschen"
 
-#: Src/wptKeyEditDlgs.cpp:1322
+#: Src/wptKeyEditDlgs.cpp:1367
 msgid "Subkey successfully deleted."
 msgstr "Unterschlüssel erfolgreich gelöscht."
 
-#: Src/wptKeyEditDlgs.cpp:1354
+#: Src/wptKeyEditDlgs.cpp:1398
 msgid ""
 "Key already expired.\n"
 "\n"
@@ -2374,19 +2365,19 @@
 "\n"
 "Wollen Sie das Ablaufdatum ändern?"
 
-#: Src/wptKeyEditDlgs.cpp:1363 Src/wptKeyEditDlgs.cpp:1366
+#: Src/wptKeyEditDlgs.cpp:1407 Src/wptKeyEditDlgs.cpp:1410
 msgid "Key Expiration Date"
 msgstr "Ablaufdatum"
 
-#: Src/wptKeyEditDlgs.cpp:1389
+#: Src/wptKeyEditDlgs.cpp:1433
 msgid "Expire Subkey"
 msgstr "Untschlüssel Ablauf"
 
-#: Src/wptKeyEditDlgs.cpp:1395
+#: Src/wptKeyEditDlgs.cpp:1439
 msgid "Subkey expire date successfully set."
 msgstr "Unterschlüsselablaufdatum erfolgreich hinzugefügt."
 
-#: Src/wptKeyEditDlgs.cpp:1426
+#: Src/wptKeyEditDlgs.cpp:1470
 msgid ""
 "No subkeys were found, if you want to revoke the\n"
 "whole key, please use the Key Manager command directly.\n"
@@ -2398,31 +2389,31 @@
 "\n"
 "Diese Funktion ist nur für das Widerrufen einzelner Unterschlüssel gedacht."
 
-#: Src/wptKeyEditDlgs.cpp:1435
+#: Src/wptKeyEditDlgs.cpp:1479
 msgid "Key already revoked."
 msgstr "Der Schlüssel ist bereits widerrufen."
 
-#: Src/wptKeyEditDlgs.cpp:1454
+#: Src/wptKeyEditDlgs.cpp:1498
 msgid "Revoke Subkey"
 msgstr "Unterschlüssel widerrufen"
 
-#: Src/wptKeyEditDlgs.cpp:1458
+#: Src/wptKeyEditDlgs.cpp:1502
 msgid "Subkey successfully revoked."
 msgstr "Unterschlüssel erfolgreich widerrufen."
 
-#: Src/wptKeyEditDlgs.cpp:1480
+#: Src/wptKeyEditDlgs.cpp:1524
 msgid "Revoke user ID"
 msgstr "Benutzerkennung widerrufen"
 
-#: Src/wptKeyEditDlgs.cpp:1485
+#: Src/wptKeyEditDlgs.cpp:1529
 msgid "Key has only one user ID."
 msgstr "Schlüssel hat nur eine Benutzerkennung."
 
-#: Src/wptKeyEditDlgs.cpp:1496
+#: Src/wptKeyEditDlgs.cpp:1540
 msgid "This user ID has been already revoked."
 msgstr "Diese Benutzerkennung wurde bereits widerrufen."
 
-#: Src/wptKeyEditDlgs.cpp:1502
+#: Src/wptKeyEditDlgs.cpp:1546
 #, c-format
 msgid ""
 "user ID \"%s\".\n"
@@ -2432,43 +2423,47 @@
 "Benutzerkennung %s.\r\n"
 "Diese Benutzerkennung wirklich widerrufen?"
 
-#: Src/wptKeyEditDlgs.cpp:1526
+#: Src/wptKeyEditDlgs.cpp:1570
 msgid "Revoke User ID"
 msgstr "Benutzerkennung widerrufen"
 
-#: Src/wptKeyEditDlgs.cpp:1530
+#: Src/wptKeyEditDlgs.cpp:1574
 msgid "User ID successfully revoked"
 msgstr "Benutzerkennung erfolgreich widerrufen"
 
-#: Src/wptKeyEditDlgs.cpp:1572
+#: Src/wptKeyEditDlgs.cpp:1616
 msgid "Could not set user ID preferences"
 msgstr "Konnte die veränderter Benutzerkennung nicht speichern"
 
-#: Src/wptKeyEditDlgs.cpp:1612
+#: Src/wptKeyEditDlgs.cpp:1656
 msgid "Primary"
 msgstr "Primär"
 
-#: Src/wptKeyEditDlgs.cpp:1615
+#: Src/wptKeyEditDlgs.cpp:1659
 msgid "User ID successfully flagged"
 msgstr "Benutzerkennung erfolgreich gekennzeichnet"
 
-#: Src/wptKeyEditDlgs.cpp:1701
+#: Src/wptKeyEditDlgs.cpp:1746
 msgid "No preferences available."
 msgstr "Keine Präferenzen verfübar."
 
-#: Src/wptKeyEditDlgs.cpp:1707
+#: Src/wptKeyEditDlgs.cpp:1752
 msgid "MDC feature"
 msgstr "Unterstützt MDC"
 
-#: Src/wptKeyEditDlgs.cpp:1709 Src/wptKeyeditSetPrefDlg.cpp:116
+#: Src/wptKeyEditDlgs.cpp:1754
+msgid "user ID:"
+msgstr "Benutzerkennung:"
+
+#: Src/wptKeyEditDlgs.cpp:1755 Src/wptKeyeditSetPrefDlg.cpp:116
 msgid "Key Preferences"
 msgstr "Schlüsseleinstellungen"
 
-#: Src/wptKeyEditDlgs.cpp:1760
+#: Src/wptKeyEditDlgs.cpp:1806
 msgid "Primary user ID can not be deleted!"
 msgstr "Primäre Benutzerkennung kann nicht gelöscht werden!"
 
-#: Src/wptKeyEditDlgs.cpp:1771
+#: Src/wptKeyEditDlgs.cpp:1817
 #, c-format
 msgid ""
 "user ID \"%s\".\n"
@@ -2483,44 +2478,44 @@
 "\n"
 "Diese Benutzerkennung wirklich löschen?"
 
-#: Src/wptKeyEditDlgs.cpp:1791
+#: Src/wptKeyEditDlgs.cpp:1837
 msgid "Delete user ID"
 msgstr "Benutzerkennung löschen"
 
-#: Src/wptKeyEditDlgs.cpp:1795
+#: Src/wptKeyEditDlgs.cpp:1841
 msgid "User ID successfully deleted"
 msgstr "Benutzerkennung erfolgreich gelöscht"
 
-#: Src/wptKeyEditDlgs.cpp:1902
+#: Src/wptKeyEditDlgs.cpp:1946
 msgid "Finished to compact key."
 msgstr "Schlüssel erfolgreich bearbeitet."
 
-#: Src/wptKeyEditDlgs.cpp:1939
+#: Src/wptKeyEditDlgs.cpp:1983
 msgid "Do you really want to make this sig exportable?"
 msgstr "Wollen Sie diese Signatur wirklich exportierbar machen?"
 
-#: Src/wptKeyEditDlgs.cpp:1963 Src/wptKeysignDlg.cpp:395
+#: Src/wptKeyEditDlgs.cpp:2007 Src/wptKeysignDlg.cpp:395
 msgid "Key successfully signed."
 msgstr "Schlüssel erfolgreich signiert."
 
-#: Src/wptKeyEditDlgs.cpp:2021
+#: Src/wptKeyEditDlgs.cpp:2065
 msgid "Could not set subkey window procedure."
 msgstr "Konnte \"subkey window procedure\" nicht setzen."
 
-#: Src/wptKeyEditDlgs.cpp:2034
+#: Src/wptKeyEditDlgs.cpp:2078
 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:2043
+#: Src/wptKeyEditDlgs.cpp:2087
 msgid "Command>"
 msgstr "Kommando>"
 
-#: Src/wptKeyEditDlgs.cpp:2075
+#: Src/wptKeyEditDlgs.cpp:2119
 msgid "Please select a command."
 msgstr "Bitte einen Befehl auswählen."
 
-#: Src/wptKeyEditDlgs.cpp:2079
+#: Src/wptKeyEditDlgs.cpp:2123
 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"
 
@@ -2560,7 +2555,7 @@
 
 #: Src/wptKeyEditOwnertrustDlg.cpp:88 Src/wptKeyEditOwnertrustDlg.cpp:95
 #: Src/wptKeyEditOwnertrustDlg.cpp:104 Src/wptKeyManagerDlg.cpp:920
-#: Src/wptKeyManagerDlg.cpp:1771 Src/wptKeyPropsDlg.cpp:289
+#: Src/wptKeyManagerDlg.cpp:1742 Src/wptKeyPropsDlg.cpp:289
 #: Src/wptOwnertrustDlg.cpp:97 Src/wptOwnertrustDlg.cpp:121
 #: Src/wptOwnertrustDlg.cpp:133
 msgid "Ownertrust"
@@ -2583,7 +2578,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:1636 Src/wptPassphraseDlg.cpp:109
+#: Src/wptKeyManagerDlg.cpp:1607 Src/wptPassphraseDlg.cpp:109
 msgid "Key Generation"
 msgstr "Schlüsselerzeugung"
 
@@ -2690,6 +2685,10 @@
 msgid "Please do NOT enter the email address in the comment field."
 msgstr "Bitte geben Sie die E-Mail-Adresse NICHT im Kommentarfeld ein."
 
+#: Src/wptKeygenDlg.cpp:457 Src/wptKeyRevokeDlg.cpp:157
+msgid "Please enter the passphrase."
+msgstr "Bitte das Passwort eingeben."
+
 #: Src/wptKeygenDlg.cpp:496 Src/wptKeygenDlg.cpp:612
 msgid "Key Generation completed"
 msgstr "Schlüsselerzeugung abgeschlossen"
@@ -2737,7 +2736,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:1659
+#: Src/wptKeyManagerDlg.cpp:1630
 msgid "Key Generation Wizard"
 msgstr "Schlüsselerzeugungs-Assistent"
 
@@ -2876,7 +2875,7 @@
 msgid "Secret Key List"
 msgstr "Liste der geheimen Schlüssel"
 
-#: Src/wptKeyManager.cpp:152
+#: Src/wptKeyManager.cpp:153
 msgid ""
 "This key has expired!\n"
 "Key check failed."
@@ -2884,7 +2883,7 @@
 "Dieser Schlüssel ist abgelaufen!\n"
 "Schlüsselüberprüfung fehlgeschlagen."
 
-#: Src/wptKeyManager.cpp:157
+#: Src/wptKeyManager.cpp:158
 msgid ""
 "This key has been revoked by its owner!\n"
 "Key check failed."
@@ -2892,25 +2891,25 @@
 "Dieser Schlüssel wurde vom Besitzer widerrufen!\n"
 "Schlüsselüberprüfung fehlgeschlagen."
 
-#: Src/wptKeyManager.cpp:299
+#: Src/wptKeyManager.cpp:300
 msgid "Only one secret key can be exported."
 msgstr "Nur ein geheimer Schlüssel kann exportiert werden."
 
-#: Src/wptKeyManager.cpp:310
+#: Src/wptKeyManager.cpp:311
 #, c-format
 msgid "Secret key successfully saved in '%s'."
 msgstr "Geheimer Schlüssel gespeichert in '%s'."
 
-#: Src/wptKeyManager.cpp:344
+#: Src/wptKeyManager.cpp:345
 #, c-format
 msgid "Key(s) successfully saved in '%s'."
 msgstr "Schlüssel erfolgreich in '%s' gespeichert."
 
-#: Src/wptKeyManager.cpp:416
+#: Src/wptKeyManager.cpp:417
 msgid "No valid OpenPGP keys found."
 msgstr "Keine gültigen OpenPGP-Schlüssel gefunden."
 
-#: Src/wptKeyManager.cpp:421
+#: Src/wptKeyManager.cpp:422
 msgid ""
 "The key you want to import is dash escacped.\n"
 "Do you want to extract the key?"
@@ -2918,11 +2917,11 @@
 "Der Schlüssel ist \"dash escaped\".\n"
 "Möchten Sie den Schlüssel extrahieren?"
 
-#: Src/wptKeyManager.cpp:427
+#: Src/wptKeyManager.cpp:428
 msgid "Cannot import dash escaped OpenPGP keys."
 msgstr "Kann keine beschädigten OpenPGP-Schlüssel importieren."
 
-#: Src/wptKeyManager.cpp:456 Src/wptKeyManager.cpp:584
+#: Src/wptKeyManager.cpp:457 Src/wptKeyManager.cpp:585
 msgid ""
 "Key without a self signature was dectected!\n"
 "(This key is NOT usable for encryption, etc)\n"
@@ -2930,43 +2929,43 @@
 "Schlüssel ohne Eigensignatur erkannt!\n"
 "(Dieser Schlüssel ist für Verschlüsselung, etc. NICHT verwendbar)\n"
 
-#: Src/wptKeyManager.cpp:485 Src/wptKeyManager.cpp:492
-#: Src/wptKeyManager.cpp:501
+#: Src/wptKeyManager.cpp:486 Src/wptKeyManager.cpp:493
+#: Src/wptKeyManager.cpp:502
 msgid "Key Import HTTP"
 msgstr "Schlüssel Import HTTP"
 
 # c:\oss\winpt-gpgme\src\wptKeyManager.cpp:448
-#: Src/wptKeyManager.cpp:485
+#: Src/wptKeyManager.cpp:486
 #, c-format
 msgid "Invalid HTTP URL: %s"
 msgstr "Ungültige HTTP URL: %s"
 
-#: Src/wptKeyManager.cpp:502
+#: Src/wptKeyManager.cpp:503
 #, c-format
 msgid "Could not fetch key from URL: %s"
 msgstr "Konnte Schlüssel von der URL: %s nicht runterladen"
 
-#: Src/wptKeyManager.cpp:531
+#: Src/wptKeyManager.cpp:532
 msgid "Choose Name of the Key File"
 msgstr "Namen der Schlüsseldatei auswählen"
 
-#: Src/wptKeyManager.cpp:544
+#: Src/wptKeyManager.cpp:545
 msgid "File Import"
 msgstr "Dateiimport"
 
-#: Src/wptKeyManager.cpp:555
+#: Src/wptKeyManager.cpp:556
 msgid "Could not read key-data from file."
 msgstr "Konnte Schlüsseldaten nicht aus Datei lesen."
 
-#: Src/wptKeyManager.cpp:675
+#: Src/wptKeyManager.cpp:676
 msgid "Do you really want to confirm each key?"
 msgstr "Wollen Sie wirklich jeden Schlüssel bestätigen?"
 
-#: Src/wptKeyManager.cpp:676
+#: Src/wptKeyManager.cpp:677
 msgid "Delete Confirmation"
 msgstr "Löschen Bestätigen"
 
-#: Src/wptKeyManager.cpp:700
+#: Src/wptKeyManager.cpp:701
 #, c-format
 msgid ""
 "Do you really want to delete this key?\n"
@@ -2978,7 +2977,7 @@
 "%s"
 
 # c:\oss\winpt-gpgme\src\wptKeyManager.cpp:605
-#: Src/wptKeyManager.cpp:709
+#: Src/wptKeyManager.cpp:710
 #, c-format
 msgid ""
 "Do you really want to delete this KEY PAIR?\n"
@@ -2995,7 +2994,7 @@
 "\n"
 "%s"
 
-#: Src/wptKeyManager.cpp:716
+#: Src/wptKeyManager.cpp:717
 msgid ""
 "The actual secret key is stored on a smartcard.\n"
 "Only the public key and the secret key \n"
@@ -3005,38 +3004,54 @@
 "Nur der öffentliche Schlüssel und der Zeiger auf den geheimen\n"
 "Schlüssel werden gelöscht.\n"
 
-#: Src/wptKeyManager.cpp:780
+#: Src/wptKeyManager.cpp:781
 #, c-format
 msgid "Do you really want to send '0x%s' to keyserver %s?"
 msgstr "Wollen Sie '0x%s' wirklich zum Schlüsselserver %s senden?"
 
-#: Src/wptKeyManager.cpp:802
+#: Src/wptKeyManager.cpp:803
 msgid "Please only select one key."
 msgstr "Bitte nur einen Schlüssel auswählen."
 
-#: Src/wptKeyManager.cpp:882
+#: Src/wptKeyManager.cpp:883
 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:887
+#: Src/wptKeyManager.cpp:888
 msgid "Could not connect to keyserver, abort procedure."
 msgstr ""
 "Verbindung zum Keyserver fehlgeschlagen; Die Prozedur wird abgebrochen."
 
-#: Src/wptKeyManager.cpp:962
+#: Src/wptKeyManager.cpp:963
 msgid "Search"
 msgstr "Suchen"
 
-#: Src/wptKeyManager.cpp:962
+#: Src/wptKeyManager.cpp:963
 msgid "Search for:"
 msgstr "Suche nach:"
 
 # c:\oss\winpt-gpgme\src\wptKeyManager.cpp:896
-#: Src/wptKeyManager.cpp:973
+#: Src/wptKeyManager.cpp:974
 #, c-format
 msgid "String pattern \"%s\" not found."
 msgstr "Zeichenkette \"%s\" nicht gefunden."
 
+#: Src/wptKeyManager.cpp:1045 Src/wptKeyRevokeDlg.cpp:89
+msgid "0. No reason specified"
+msgstr "0. Kein Grund angeben"
+
+#: Src/wptKeyManager.cpp:1046 Src/wptKeyRevokeDlg.cpp:90
+msgid "1. Key has been compromised"
+msgstr "1. Der Schlüssel ist nicht mehr sicher"
+
+#: Src/wptKeyManager.cpp:1047 Src/wptKeyRevokeDlg.cpp:91
+msgid "2. Key is superseded"
+msgstr "2. Der Schlüssel ist veraltet"
+
+#: Src/wptKeyManager.cpp:1048 Src/wptKeyRevokeDlg.cpp:92
+msgid "3. Key is no longer used"
+msgstr "3. Der Schlüssel wird nicht mehr benutzt"
+
 #: Src/wptKeyManagerDlg.cpp:435 Src/wptKeyManagerDlg.cpp:970
 msgid "Paste Key from Clipboard"
 msgstr "Schlüssel aus Ablage einfügen"
@@ -3120,7 +3135,7 @@
 msgid "&List Signatures"
 msgstr "Signaturen anzeigen"
 
-#: Src/wptKeyManagerDlg.cpp:935 Src/wptKeyManagerDlg.cpp:1562
+#: Src/wptKeyManagerDlg.cpp:935 Src/wptKeyManagerDlg.cpp:1549
 #: Src/wptKeyTrustPathDlg.cpp:130
 msgid "List Trust Path"
 msgstr "Zeige Vertrauenspfad"
@@ -3308,37 +3323,37 @@
 msgid "Could not access public keyring"
 msgstr "Konnte nicht auf öffentlichen Schlüsselbund zugreifen"
 
-#: Src/wptKeyManagerDlg.cpp:1507 Src/wptKeysignDlg.cpp:259
+#: Src/wptKeyManagerDlg.cpp:1503 Src/wptKeysignDlg.cpp:259
 #: Src/wptKeysignDlg.cpp:277 Src/wptKeysignDlg.cpp:356
 #: Src/wptKeysignDlg.cpp:371 Src/wptKeysignDlg.cpp:388
 #: Src/wptKeysignDlg.cpp:393 Src/wptKeysignDlg.cpp:395
 msgid "Key Signing"
 msgstr "Schlüsselsignierung"
 
-#: Src/wptKeyManagerDlg.cpp:1531
+#: Src/wptKeyManagerDlg.cpp:1519
 msgid "Key already revoked!"
 msgstr "Schlüssel ist bereits widerrufen!"
 
-#: Src/wptKeyManagerDlg.cpp:1543 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
+#: Src/wptKeyManagerDlg.cpp:1533 Src/wptKeyRevokeDlg.cpp:72
+#: Src/wptKeyRevokeDlg.cpp:82 Src/wptKeyRevokeDlg.cpp:145
+#: Src/wptKeyRevokeDlg.cpp:150 Src/wptKeyRevokeDlg.cpp:158
+#: Src/wptKeyRevokeDlg.cpp:169 Src/wptKeyRevokeDlg.cpp:174
 msgid "Key Revocation Cert"
 msgstr "Schlüsselwiderruf Zertifikat"
 
-#: Src/wptKeyManagerDlg.cpp:1553
+#: Src/wptKeyManagerDlg.cpp:1543
 msgid "It does not make any sense with a key pair!"
 msgstr "Diese Aktion macht keinen Sinn mit einem Schlüsselpaar!"
 
-#: Src/wptKeyManagerDlg.cpp:1580
+#: Src/wptKeyManagerDlg.cpp:1560
 msgid "Key Signature List"
 msgstr "Schlüssel-Signatur-Liste"
 
-#: Src/wptKeyManagerDlg.cpp:1602 Src/wptKeyPropsDlg.cpp:285
+#: Src/wptKeyManagerDlg.cpp:1575 Src/wptKeyPropsDlg.cpp:285
 msgid "Key Properties"
 msgstr "Schlüsseleigenschaften"
 
-#: Src/wptKeyManagerDlg.cpp:1613
+#: Src/wptKeyManagerDlg.cpp:1585
 msgid ""
 "This is only useful when the keyring has been modified (sign a key...).\n"
 "Do you really want to reload the keycache?"
@@ -3347,27 +3362,27 @@
 "Signierung etc.)\n"
 "Möchten Sie den Zwischenspeicher reinitialisieren?"
 
-#: Src/wptKeyManagerDlg.cpp:1644
+#: Src/wptKeyManagerDlg.cpp:1615
 msgid "Smart Card support is not available."
 msgstr "SmartCard-Unterstützung ist nicht verfügbar."
 
-#: Src/wptKeyManagerDlg.cpp:1667 Src/wptKeyserverDlg.cpp:585
+#: Src/wptKeyManagerDlg.cpp:1638 Src/wptKeyserverDlg.cpp:585
 msgid "Keyserver Access"
 msgstr "Schlüsselserver-Zugriff"
 
-#: Src/wptKeyManagerDlg.cpp:1684
+#: Src/wptKeyManagerDlg.cpp:1655
 msgid "GnuPG Options"
 msgstr "GnuPG Optionen"
 
-#: Src/wptKeyManagerDlg.cpp:1726
+#: Src/wptKeyManagerDlg.cpp:1697
 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:1731
+#: Src/wptKeyManagerDlg.cpp:1702
 msgid "You can only export one secret key."
 msgstr "Sie können nur einen geheimen Schlüssel exportieren."
 
-#: Src/wptKeyManagerDlg.cpp:1736
+#: Src/wptKeyManagerDlg.cpp:1707
 msgid ""
 "This operation will export your *SECRET* key!\n"
 "\n"
@@ -3385,11 +3400,11 @@
 "\n"
 "Wirklich den Schlüssel exportieren?"
 
-#: Src/wptKeyManagerDlg.cpp:1741
+#: Src/wptKeyManagerDlg.cpp:1712
 msgid "WARNING"
 msgstr "WARNUNG"
 
-#: Src/wptKeyManagerDlg.cpp:1820
+#: Src/wptKeyManagerDlg.cpp:1775
 msgid "No key was selected, select all by default."
 msgstr "Kein Schlüssel ausgewählt, es wurden alle ausgewählt."
 
@@ -3480,59 +3495,43 @@
 msgid "Key Revokers"
 msgstr "Schlüsselwiderrufer"
 
-#: Src/wptKeyRevokeDlg.cpp:90
-msgid ""
-"Please move this certificate to a medium where it can bestored in a safe "
-"place (floppy, CDR, etc..).\n"
-"If an attacker gets access to this certificate he can use it to render your "
-"key unusable!"
-msgstr ""
-"Bitte speichern Sie dieses Zertifikat auf einem sicheren Medium.\n"
-"Zum Beispiel einer Diskette, einem USB-Stick oder ähnlichem.\n"
-"Wenn jemand darauf Zugriff bekommt, kann er Ihren Schlüssel unbrauchbar "
-"machen!"
-
-#: Src/wptKeyRevokeDlg.cpp:102
+#: Src/wptKeyRevokeDlg.cpp:84
 msgid "Reason for revocation"
 msgstr "Grund des Widerrufes"
 
-#: Src/wptKeyRevokeDlg.cpp:103
+#: Src/wptKeyRevokeDlg.cpp:85
 msgid "Optional description text"
 msgstr "Optionale Beschreibung"
 
-#: Src/wptKeyRevokeDlg.cpp:104
+#: Src/wptKeyRevokeDlg.cpp:86
 msgid "&Passphrase"
 msgstr "&Passwort"
 
-#: Src/wptKeyRevokeDlg.cpp:105
+#: Src/wptKeyRevokeDlg.cpp:87
 msgid "Output file"
 msgstr "Ausgabedatei"
 
-#: Src/wptKeyRevokeDlg.cpp:107
-msgid "0. No reason specified"
-msgstr "0. Kein Grund angeben"
+#: Src/wptKeyRevokeDlg.cpp:112
+msgid ""
+"Please move this certificate to a medium where it can bestored in a safe "
+"place (floppy, CDR, etc..).\n"
+"If an attacker gets access to this certificate he can use it to render your "
+"key unusable!"
+msgstr ""
+"Bitte speichern Sie dieses Zertifikat auf einem sicheren Medium.\n"
+"Zum Beispiel einer Diskette, einem USB-Stick oder ähnlichem.\n"
+"Wenn jemand darauf Zugriff bekommt, kann er Ihren Schlüssel unbrauchbar "
+"machen!"
 
-#: Src/wptKeyRevokeDlg.cpp:108
-msgid "1. Key has been compromised"
-msgstr "1. Der Schlüssel ist nicht mehr sicher"
-
-#: Src/wptKeyRevokeDlg.cpp:109
-msgid "2. Key is superseded"
-msgstr "2. Der Schlüssel ist veraltet"
-
-#: Src/wptKeyRevokeDlg.cpp:110
-msgid "3. Key is no longer used"
-msgstr "3. Der Schlüssel wird nicht mehr benutzt"
-
-#: Src/wptKeyRevokeDlg.cpp:128
+#: Src/wptKeyRevokeDlg.cpp:135
 msgid "Choose File to save the Certificate"
 msgstr "Dateinamen für Zertifikat auswählen"
 
-#: Src/wptKeyRevokeDlg.cpp:137
+#: Src/wptKeyRevokeDlg.cpp:144
 msgid "Please select a reason."
 msgstr "Bitte geben Sie einen Grund an."
 
-#: Src/wptKeyRevokeDlg.cpp:172
+#: Src/wptKeyRevokeDlg.cpp:173
 msgid "Revocation certificate generated."
 msgstr "Widerrufzertifikat wurde erstellt."
 
@@ -4197,6 +4196,10 @@
 msgid "Enter Passphrase"
 msgstr "Passwort eingeben"
 
+#: Src/wptPassphraseDlg.cpp:99
+msgid "Please enter a passphrase."
+msgstr "Bitte ein Passwort eingeben."
+
 #: Src/wptPassphraseDlg.cpp:106
 msgid ""
 "Your passphrase should be at least 8 characters long\n"

Modified: trunk/Po/fr.po
===================================================================
--- trunk/Po/fr.po	2006-04-11 06:38:11 UTC (rev 199)
+++ trunk/Po/fr.po	2006-04-17 09:12:50 UTC (rev 200)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: WinPT 0.11.8\n"
 "Report-Msgid-Bugs-To: winpt at freakmail.de\n"
-"POT-Creation-Date: 2006-04-09 17:00+0200\n"
+"POT-Creation-Date: 2006-04-16 19:59+0200\n"
 "PO-Revision-Date: 2006-03-04 21:32+0100\n"
 "Last-Translator: Pascal Brochart <pbrochart at tuxfamily.org>\n"
 "Language-Team: FR <winpt-dev at wald.intevation.org>\n"
@@ -23,8 +23,8 @@
 #: Src/WinPT.cpp:464 Src/WinPT.cpp:471 Src/WinPT.cpp:511 Src/WinPT.cpp:539
 #: Src/WinPT.cpp:548 Src/WinPT.cpp:552 Src/WinPT.cpp:569 Src/WinPT.cpp:637
 #: Src/WinPT.cpp:650 Src/WinPT.cpp:697 Src/WinPT.cpp:727 Src/WinPT.cpp:745
-#: Src/wptCommonDlg.cpp:221 Src/wptErrors.cpp:141 Src/wptGPG.cpp:921
-#: Src/wptGPG.cpp:932 Src/wptGPG.cpp:941 Src/wptGPG.cpp:951
+#: Src/wptCommonDlg.cpp:221 Src/wptErrors.cpp:141 Src/wptGPG.cpp:903
+#: Src/wptGPG.cpp:915 Src/wptGPG.cpp:925 Src/wptGPG.cpp:936
 #: Src/wptMainProc.cpp:361 Src/wptMainProc.cpp:537
 msgid "WinPT Error"
 msgstr "Erreur WinPT"
@@ -150,7 +150,7 @@
 msgid "The AUTHORS files contains a list of all contributors and co-authors."
 msgstr ""
 
-#: Src/wptAboutDlgs.cpp:96 Src/wptKeyManagerDlg.cpp:1755
+#: Src/wptAboutDlgs.cpp:96 Src/wptKeyManagerDlg.cpp:1726
 #: Src/wptMainProc.cpp:586
 msgid "About WinPT"
 msgstr "A propos de WinPT"
@@ -190,7 +190,7 @@
 msgid "&About GPG..."
 msgstr ""
 
-#: Src/wptAboutDlgs.cpp:115 Src/wptKeyEditDlgs.cpp:2045
+#: Src/wptAboutDlgs.cpp:115 Src/wptKeyEditDlgs.cpp:2089
 #: Src/wptKeyManagerDlg.cpp:947
 msgid "&Help"
 msgstr "&Aide"
@@ -270,7 +270,7 @@
 "Still proceed?"
 msgstr ""
 
-#: Src/wptCardDlg.cpp:580 Src/wptKeyEditDlgs.cpp:521
+#: Src/wptCardDlg.cpp:580 Src/wptKeyEditDlgs.cpp:517
 msgid "&Name"
 msgstr "&Nom"
 
@@ -302,7 +302,7 @@
 msgid "Make off-card backup of encryption key"
 msgstr ""
 
-#: Src/wptCardDlg.cpp:588 Src/wptKeyManagerDlg.cpp:1649
+#: Src/wptCardDlg.cpp:588 Src/wptKeyManagerDlg.cpp:1620
 msgid "Card Key Generation"
 msgstr ""
 
@@ -330,7 +330,7 @@
 msgid "Please use plain ASCII charset for the fields."
 msgstr ""
 
-#: Src/wptCardDlg.cpp:663 Src/wptKeyEditDlgs.cpp:1370
+#: Src/wptCardDlg.cpp:663 Src/wptKeyEditDlgs.cpp:1414
 msgid "The date you have chosen lies in the past."
 msgstr ""
 
@@ -433,8 +433,8 @@
 
 #: Src/wptClipDecryptDlg.cpp:162 Src/wptClipEncryptDlg.cpp:213
 #: Src/wptClipSignDlg.cpp:122 Src/wptClipSignDlg.cpp:266
-#: Src/wptClipSignEncDlg.cpp:197 Src/wptKeyManager.cpp:273
-#: Src/wptKeyManager.cpp:751 Src/wptKeyManager.cpp:950 Src/wptSymEnc.cpp:91
+#: Src/wptClipSignEncDlg.cpp:197 Src/wptKeyManager.cpp:274
+#: Src/wptKeyManager.cpp:752 Src/wptKeyManager.cpp:951 Src/wptSymEnc.cpp:91
 msgid "GnuPG Status: Finished"
 msgstr "Etat de GnuPG: Terminé"
 
@@ -524,7 +524,7 @@
 msgid "Add quotes"
 msgstr ""
 
-#: Src/wptClipEditDlg.cpp:200 Src/wptKeyEditDlgs.cpp:2044
+#: Src/wptClipEditDlg.cpp:200 Src/wptKeyEditDlgs.cpp:2088
 #: Src/wptKeyserverDlg.cpp:594 Src/wptMDSumDlg.cpp:104
 #: Src/wptOwnertrustDlg.cpp:103
 msgid "&Close"
@@ -550,10 +550,10 @@
 #: Src/wptFileManagerDlg.cpp:84 Src/wptFileManagerDlg.cpp:218
 #: Src/wptFileManagerDlg.cpp:287 Src/wptFileSaveDlg.cpp:58
 #: Src/wptFirstRunDlg.cpp:47 Src/wptGPGPrefsDlg.cpp:157
-#: Src/wptKeyEditDlgs.cpp:345 Src/wptKeyEditDlgs.cpp:447
-#: Src/wptKeyEditDlgs.cpp:524 Src/wptKeyEditDlgs.cpp:656
+#: Src/wptKeyEditDlgs.cpp:361 Src/wptKeyEditDlgs.cpp:449
+#: Src/wptKeyEditDlgs.cpp:520 Src/wptKeyEditDlgs.cpp:656
 #: Src/wptKeyEditOwnertrustDlg.cpp:67 Src/wptKeygenDlg.cpp:383
-#: Src/wptKeygenDlg.cpp:546 Src/wptKeyRevokeDlg.cpp:101
+#: Src/wptKeygenDlg.cpp:546 Src/wptKeyRevokeDlg.cpp:83
 #: Src/wptKeyserverDlg.cpp:526 Src/wptKeyserverSearchDlg.cpp:61
 #: Src/wptKeysignDlg.cpp:287 Src/wptPassphraseCB.cpp:91
 #: Src/wptPassphraseDlg.cpp:69 Src/wptPINDlg.cpp:55
@@ -677,35 +677,36 @@
 msgid "Enter URL to retrieve the public key"
 msgstr ""
 
-#: Src/wptCommonDlg.cpp:135 Src/wptKeyEditDlgs.cpp:773
-#: Src/wptKeyEditDlgs.cpp:832 Src/wptKeyEditDlgs.cpp:871
-#: Src/wptKeyEditDlgs.cpp:886 Src/wptKeyEditDlgs.cpp:888
-#: Src/wptKeyEditDlgs.cpp:939 Src/wptKeyEditDlgs.cpp:983
-#: Src/wptKeyEditDlgs.cpp:990 Src/wptKeyEditDlgs.cpp:1008
-#: Src/wptKeyEditDlgs.cpp:1057 Src/wptKeyEditDlgs.cpp:1064
-#: Src/wptKeyEditDlgs.cpp:1155 Src/wptKeyEditDlgs.cpp:1161
-#: Src/wptKeyEditDlgs.cpp:1292 Src/wptKeyEditDlgs.cpp:1296
-#: Src/wptKeyEditDlgs.cpp:1300 Src/wptKeyEditDlgs.cpp:1305
-#: Src/wptKeyEditDlgs.cpp:1342 Src/wptKeyEditDlgs.cpp:1346
-#: Src/wptKeyEditDlgs.cpp:1356 Src/wptKeyEditDlgs.cpp:1371
-#: Src/wptKeyEditDlgs.cpp:1375 Src/wptKeyEditDlgs.cpp:1417
-#: Src/wptKeyEditDlgs.cpp:1422 Src/wptKeyEditDlgs.cpp:1429
-#: Src/wptKeyEditDlgs.cpp:1435 Src/wptKeyEditDlgs.cpp:1440
-#: Src/wptKeyEditDlgs.cpp:1485 Src/wptKeyEditDlgs.cpp:1490
-#: Src/wptKeyEditDlgs.cpp:1497 Src/wptKeyEditDlgs.cpp:1504
-#: Src/wptKeyEditDlgs.cpp:1507 Src/wptKeyEditDlgs.cpp:1547
-#: Src/wptKeyEditDlgs.cpp:1555 Src/wptKeyEditDlgs.cpp:1572
-#: Src/wptKeyEditDlgs.cpp:1592 Src/wptKeyEditDlgs.cpp:1600
-#: Src/wptKeyEditDlgs.cpp:1701 Src/wptKeyEditDlgs.cpp:1734
-#: Src/wptKeyEditDlgs.cpp:1761 Src/wptKeyEditDlgs.cpp:1765
-#: Src/wptKeyEditDlgs.cpp:1776 Src/wptKeyEditDlgs.cpp:1900
-#: Src/wptKeyEditDlgs.cpp:1902 Src/wptKeyEditDlgs.cpp:1935
-#: Src/wptKeyEditDlgs.cpp:1940 Src/wptKeyEditDlgs.cpp:1949
-#: Src/wptKeyEditDlgs.cpp:1963 Src/wptKeyEditDlgs.cpp:1967
-#: Src/wptKeyEditDlgs.cpp:2022 Src/wptKeyEditDlgs.cpp:2035
-#: Src/wptKeyEditDlgs.cpp:2046 Src/wptKeyEditDlgs.cpp:2075
-#: Src/wptKeyEditDlgs.cpp:2080 Src/wptKeyManagerDlg.cpp:975
-#: Src/wptKeyManagerDlg.cpp:1790
+#: Src/wptCommonDlg.cpp:135 Src/wptKeyEditDlgs.cpp:775
+#: Src/wptKeyEditDlgs.cpp:842 Src/wptKeyEditDlgs.cpp:882
+#: Src/wptKeyEditDlgs.cpp:895 Src/wptKeyEditDlgs.cpp:897
+#: Src/wptKeyEditDlgs.cpp:923 Src/wptKeyEditDlgs.cpp:953
+#: Src/wptKeyEditDlgs.cpp:985 Src/wptKeyEditDlgs.cpp:1029
+#: Src/wptKeyEditDlgs.cpp:1036 Src/wptKeyEditDlgs.cpp:1054
+#: Src/wptKeyEditDlgs.cpp:1100 Src/wptKeyEditDlgs.cpp:1107
+#: Src/wptKeyEditDlgs.cpp:1198 Src/wptKeyEditDlgs.cpp:1204
+#: Src/wptKeyEditDlgs.cpp:1335 Src/wptKeyEditDlgs.cpp:1339
+#: Src/wptKeyEditDlgs.cpp:1343 Src/wptKeyEditDlgs.cpp:1350
+#: Src/wptKeyEditDlgs.cpp:1386 Src/wptKeyEditDlgs.cpp:1390
+#: Src/wptKeyEditDlgs.cpp:1400 Src/wptKeyEditDlgs.cpp:1415
+#: Src/wptKeyEditDlgs.cpp:1419 Src/wptKeyEditDlgs.cpp:1461
+#: Src/wptKeyEditDlgs.cpp:1466 Src/wptKeyEditDlgs.cpp:1473
+#: Src/wptKeyEditDlgs.cpp:1479 Src/wptKeyEditDlgs.cpp:1484
+#: Src/wptKeyEditDlgs.cpp:1529 Src/wptKeyEditDlgs.cpp:1534
+#: Src/wptKeyEditDlgs.cpp:1541 Src/wptKeyEditDlgs.cpp:1548
+#: Src/wptKeyEditDlgs.cpp:1551 Src/wptKeyEditDlgs.cpp:1591
+#: Src/wptKeyEditDlgs.cpp:1599 Src/wptKeyEditDlgs.cpp:1616
+#: Src/wptKeyEditDlgs.cpp:1636 Src/wptKeyEditDlgs.cpp:1644
+#: Src/wptKeyEditDlgs.cpp:1746 Src/wptKeyEditDlgs.cpp:1780
+#: Src/wptKeyEditDlgs.cpp:1807 Src/wptKeyEditDlgs.cpp:1811
+#: Src/wptKeyEditDlgs.cpp:1822 Src/wptKeyEditDlgs.cpp:1944
+#: Src/wptKeyEditDlgs.cpp:1946 Src/wptKeyEditDlgs.cpp:1979
+#: Src/wptKeyEditDlgs.cpp:1984 Src/wptKeyEditDlgs.cpp:1993
+#: Src/wptKeyEditDlgs.cpp:2007 Src/wptKeyEditDlgs.cpp:2011
+#: Src/wptKeyEditDlgs.cpp:2066 Src/wptKeyEditDlgs.cpp:2079
+#: Src/wptKeyEditDlgs.cpp:2090 Src/wptKeyEditDlgs.cpp:2119
+#: Src/wptKeyEditDlgs.cpp:2124 Src/wptKeyManagerDlg.cpp:975
+#: Src/wptKeyManagerDlg.cpp:1750
 msgid "Key Edit"
 msgstr ""
 
@@ -942,12 +943,12 @@
 "Do you want to disable it?"
 msgstr ""
 
-#: Src/wptFileManager.cpp:381 Src/wptKeyEditDlgs.cpp:1044
+#: Src/wptFileManager.cpp:381 Src/wptKeyEditDlgs.cpp:1087
 #: Src/wptVerifyList.cpp:108
 msgid "Status"
 msgstr "Status"
 
-#: Src/wptFileManager.cpp:382 Src/wptKeyEditDlgs.cpp:1147
+#: Src/wptFileManager.cpp:382 Src/wptKeyEditDlgs.cpp:1190
 #: Src/wptKeyRevokersDlg.cpp:57 Src/wptMDSumDlg.cpp:73
 #: Src/wptVerifyList.cpp:107
 msgid "Name"
@@ -1078,11 +1079,11 @@
 msgstr ""
 
 #: Src/wptFileManager.cpp:1692 Src/wptFileManager.cpp:1703
-#: Src/wptFileManagerDlg.cpp:244 Src/wptImportList.cpp:413
-#: Src/wptImportList.cpp:419 Src/wptImportList.cpp:429
-#: Src/wptImportList.cpp:437 Src/wptImportList.cpp:446
-#: Src/wptKeyManager.cpp:447 Src/wptKeyManager.cpp:458
-#: Src/wptKeyManager.cpp:586 Src/wptKeyserverDlg.cpp:223
+#: Src/wptFileManagerDlg.cpp:244 Src/wptImportList.cpp:412
+#: Src/wptImportList.cpp:418 Src/wptImportList.cpp:428
+#: Src/wptImportList.cpp:436 Src/wptImportList.cpp:445
+#: Src/wptKeyManager.cpp:448 Src/wptKeyManager.cpp:459
+#: Src/wptKeyManager.cpp:587 Src/wptKeyserverDlg.cpp:223
 msgid "Import"
 msgstr "Importer"
 
@@ -1094,8 +1095,8 @@
 "Cannot import these key(s)!"
 msgstr ""
 
-#: Src/wptFileManager.cpp:1726 Src/wptKeyManager.cpp:251
-#: Src/wptKeyManager.cpp:294 Src/wptKeyManager.cpp:329
+#: Src/wptFileManager.cpp:1726 Src/wptKeyManager.cpp:252
+#: Src/wptKeyManager.cpp:295 Src/wptKeyManager.cpp:330
 msgid "No key was selected for export."
 msgstr ""
 
@@ -1104,13 +1105,13 @@
 msgid "Export"
 msgstr "Exporter"
 
-#: Src/wptFileManager.cpp:1734 Src/wptKeyManagerDlg.cpp:1713
-#: Src/wptKeyManagerDlg.cpp:1747
+#: Src/wptFileManager.cpp:1734 Src/wptKeyManagerDlg.cpp:1684
+#: Src/wptKeyManagerDlg.cpp:1718
 msgid "Choose Name for Key File"
 msgstr "Choisissez un nom de fichier pour la clé"
 
-#: Src/wptFileManager.cpp:1753 Src/wptKeyEditDlgs.cpp:1023
-#: Src/wptKeyEditDlgs.cpp:1322 Src/wptKeyEditDlgs.cpp:1396
+#: Src/wptFileManager.cpp:1753 Src/wptKeyEditDlgs.cpp:1066
+#: Src/wptKeyEditDlgs.cpp:1367 Src/wptKeyEditDlgs.cpp:1440
 #: Src/wptKeyserverDlg.cpp:101
 msgid "GnuPG status"
 msgstr "Status de GnuPG"
@@ -1174,12 +1175,12 @@
 msgstr ""
 
 #: Src/wptFileManagerDlg.cpp:203 Src/wptFileStatDlg.cpp:281
-#: Src/wptKeyManager.cpp:411
+#: Src/wptKeyManager.cpp:412
 msgid "No valid OpenPGP data found."
 msgstr ""
 
 #: Src/wptFileManagerDlg.cpp:203 Src/wptFileManagerDlg.cpp:217
-#: Src/wptKeyManager.cpp:436
+#: Src/wptKeyManager.cpp:437
 msgid "Key Import"
 msgstr ""
 
@@ -1225,13 +1226,13 @@
 msgid "Options"
 msgstr ""
 
-#: Src/wptFileManagerDlg.cpp:332 Src/wptKeyEditDlgs.cpp:1296
-#: Src/wptKeyEditDlgs.cpp:1346 Src/wptKeyEditDlgs.cpp:1422
-#: Src/wptKeyManager.cpp:670 Src/wptKeyManager.cpp:772
-#: Src/wptKeyManager.cpp:808 Src/wptKeyManagerDlg.cpp:1494
-#: Src/wptKeyManagerDlg.cpp:1514 Src/wptKeyManagerDlg.cpp:1548
-#: Src/wptKeyManagerDlg.cpp:1567 Src/wptKeyManagerDlg.cpp:1587
-#: Src/wptKeyManagerDlg.cpp:1703 Src/wptKeyManagerDlg.cpp:1722
+#: Src/wptFileManagerDlg.cpp:332 Src/wptKeyEditDlgs.cpp:1339
+#: Src/wptKeyEditDlgs.cpp:1390 Src/wptKeyEditDlgs.cpp:1466
+#: Src/wptKeyManager.cpp:671 Src/wptKeyManager.cpp:773
+#: Src/wptKeyManager.cpp:809 Src/wptKeyManagerDlg.cpp:1494
+#: Src/wptKeyManagerDlg.cpp:1510 Src/wptKeyManagerDlg.cpp:1538
+#: Src/wptKeyManagerDlg.cpp:1554 Src/wptKeyManagerDlg.cpp:1567
+#: Src/wptKeyManagerDlg.cpp:1674 Src/wptKeyManagerDlg.cpp:1693
 #: Src/wptKeyserverSearchDlg.cpp:118
 msgid "Please select a key."
 msgstr "Sélectionner une clé."
@@ -1419,26 +1420,26 @@
 msgid "WinPT First Start"
 msgstr "Première exécution de WinPT"
 
-#: Src/wptGPG.cpp:840
+#: Src/wptGPG.cpp:821
 msgid ""
 "The selected keyring has the read-only file\n"
 "attribute. In this state you do not have write\n"
 "access. Do you want to remove the attribute?"
 msgstr ""
 
-#: Src/wptGPG.cpp:843
+#: Src/wptGPG.cpp:824
 msgid "GPG Information"
 msgstr ""
 
-#: Src/wptGPG.cpp:847
+#: Src/wptGPG.cpp:828
 msgid "Could not reset read-only state."
 msgstr ""
 
-#: Src/wptGPG.cpp:848 Src/wptGPG.cpp:1127 Src/wptGPG.cpp:1136
+#: Src/wptGPG.cpp:829 Src/wptGPG.cpp:1110 Src/wptGPG.cpp:1119
 msgid "GPG Error"
 msgstr "Erreur GPG"
 
-#: Src/wptGPG.cpp:860
+#: Src/wptGPG.cpp:841
 msgid ""
 "You do not have file access to modify the contents of\n"
 "one or both of the selected keyrings.\n"
@@ -1447,15 +1448,15 @@
 "caused by another program which already opened the files.\n"
 msgstr ""
 
-#: Src/wptGPG.cpp:865
+#: Src/wptGPG.cpp:846
 msgid "GPG Warning"
 msgstr ""
 
-#: Src/wptGPG.cpp:889 Src/wptGPGPrefsDlg.cpp:216 Src/wptGPGPrefsDlg.cpp:222
+#: Src/wptGPG.cpp:870 Src/wptGPGPrefsDlg.cpp:216 Src/wptGPGPrefsDlg.cpp:222
 #: Src/wptGPGPrefsDlg.cpp:228 Src/wptGPGPrefsDlg.cpp:234
 #: Src/wptGPGPrefsDlg.cpp:239 Src/wptGPGPrefsDlg.cpp:244
 #: Src/wptGPGPrefsDlg.cpp:250 Src/wptGPGPrefsDlg.cpp:264
-#: Src/wptKeyEditDlgs.cpp:1708 Src/wptKeyManagerDlg.cpp:940
+#: Src/wptKeyEditDlgs.cpp:1753 Src/wptKeyManagerDlg.cpp:940
 #: Src/wptMainProc.cpp:439 Src/wptPreferencesDlg.cpp:215
 #: Src/wptPreferencesDlg.cpp:260 Src/wptPreferencesDlg.cpp:272
 #: Src/wptPreferencesDlg.cpp:284 Src/wptPreferencesDlg.cpp:315
@@ -1463,7 +1464,7 @@
 msgid "Preferences"
 msgstr "Préférences"
 
-#: Src/wptGPG.cpp:890
+#: Src/wptGPG.cpp:871
 #, c-format
 msgid ""
 "%s does not exit.\n"
@@ -1472,52 +1473,54 @@
 "%s n'existe pas.\n"
 "Voulez-vous créer ce répertoire?"
 
-#: Src/wptGPG.cpp:918
-msgid "Please choose your public keyring"
+#: Src/wptGPG.cpp:899
+#, fuzzy
+msgid "Please choose your Public Keyring"
 msgstr "Veuillez choisir votre porte-clés public"
 
-#: Src/wptGPG.cpp:921 Src/wptGPG.cpp:941
+#: Src/wptGPG.cpp:902 Src/wptGPG.cpp:924
 msgid "No keyring was chosen. Exit."
 msgstr "Aucun porte-clés n'a été choisi. Sortie."
 
-#: Src/wptGPG.cpp:927
+#: Src/wptGPG.cpp:909
 msgid "Overwrite old public keyring?"
 msgstr ""
 
-#: Src/wptGPG.cpp:932 Src/wptGPG.cpp:951
+#: Src/wptGPG.cpp:915 Src/wptGPG.cpp:936
 msgid "Could not copy file."
 msgstr ""
 
-#: Src/wptGPG.cpp:938
-msgid "Please choose your secret keyring"
+#: Src/wptGPG.cpp:921
+#, fuzzy
+msgid "Please choose your Secret Keyring"
 msgstr "Veuillez choisir votre porte-clés secret"
 
-#: Src/wptGPG.cpp:946
+#: Src/wptGPG.cpp:930
 msgid "Overwrite old secret keyring?"
 msgstr ""
 
-#: Src/wptGPG.cpp:996 Src/wptGPG.cpp:1086 Src/wptGPG.cpp:1099
+#: Src/wptGPG.cpp:980 Src/wptGPG.cpp:1069 Src/wptGPG.cpp:1082
 msgid "Backup"
 msgstr ""
 
-#: Src/wptGPG.cpp:996
+#: Src/wptGPG.cpp:980
 #, c-format
 msgid "Backup keyring \"%s\" failed"
 msgstr ""
 
-#: Src/wptGPG.cpp:1087
+#: Src/wptGPG.cpp:1070
 #, c-format
 msgid ""
 "The backup drive '%s' does not seems to accessable.\n"
 "Please insert/check the drive to continue."
 msgstr ""
 
-#: Src/wptGPG.cpp:1099
+#: Src/wptGPG.cpp:1082
 #, c-format
 msgid "Invalid backup mode %d"
 msgstr ""
 
-#: Src/wptGPG.cpp:1126
+#: Src/wptGPG.cpp:1109
 msgid "No GPG error description available."
 msgstr ""
 
@@ -1588,7 +1591,7 @@
 "Are you sure?"
 msgstr ""
 
-#: Src/wptGPGPrefsDlg.cpp:141 Src/wptKeyManagerDlg.cpp:1675
+#: Src/wptGPGPrefsDlg.cpp:141 Src/wptKeyManagerDlg.cpp:1646
 #: Src/wptMainProc.cpp:598
 msgid "GnuPG Preferences"
 msgstr ""
@@ -1669,37 +1672,37 @@
 msgstr ""
 
 #: Src/wptGroupManager.cpp:207 Src/wptGroupManager.cpp:238
-#: Src/wptImagelist.cpp:52 Src/wptKeyManager.cpp:153 Src/wptKeyManager.cpp:158
-#: Src/wptKeyManager.cpp:209 Src/wptKeyManager.cpp:252
-#: Src/wptKeyManager.cpp:264 Src/wptKeyManager.cpp:295
-#: Src/wptKeyManager.cpp:300 Src/wptKeyManager.cpp:307
-#: Src/wptKeyManager.cpp:309 Src/wptKeyManager.cpp:330
-#: Src/wptKeyManager.cpp:339 Src/wptKeyManager.cpp:343
-#: Src/wptKeyManager.cpp:363 Src/wptKeyManager.cpp:404
-#: Src/wptKeyManager.cpp:409 Src/wptKeyManager.cpp:412
-#: Src/wptKeyManager.cpp:417 Src/wptKeyManager.cpp:423
-#: Src/wptKeyManager.cpp:428 Src/wptKeyManager.cpp:556
-#: Src/wptKeyManager.cpp:564 Src/wptKeyManager.cpp:670
-#: Src/wptKeyManager.cpp:699 Src/wptKeyManager.cpp:708
-#: Src/wptKeyManager.cpp:719 Src/wptKeyManager.cpp:745
-#: Src/wptKeyManager.cpp:772 Src/wptKeyManager.cpp:779
-#: Src/wptKeyManager.cpp:803 Src/wptKeyManager.cpp:808
-#: Src/wptKeyManager.cpp:828 Src/wptKeyManager.cpp:883
-#: Src/wptKeyManager.cpp:888 Src/wptKeyManager.cpp:948
-#: Src/wptKeyManager.cpp:978 Src/wptKeyManagerDlg.cpp:1162
-#: Src/wptKeyManagerDlg.cpp:1175 Src/wptKeyManagerDlg.cpp:1185
-#: Src/wptKeyManagerDlg.cpp:1473 Src/wptKeyManagerDlg.cpp:1495
-#: Src/wptKeyManagerDlg.cpp:1514 Src/wptKeyManagerDlg.cpp:1522
-#: Src/wptKeyManagerDlg.cpp:1532 Src/wptKeyManagerDlg.cpp:1548
+#: Src/wptImagelist.cpp:52 Src/wptKeyManager.cpp:154 Src/wptKeyManager.cpp:159
+#: Src/wptKeyManager.cpp:210 Src/wptKeyManager.cpp:253
+#: Src/wptKeyManager.cpp:265 Src/wptKeyManager.cpp:296
+#: Src/wptKeyManager.cpp:301 Src/wptKeyManager.cpp:308
+#: Src/wptKeyManager.cpp:310 Src/wptKeyManager.cpp:331
+#: Src/wptKeyManager.cpp:340 Src/wptKeyManager.cpp:344
+#: Src/wptKeyManager.cpp:364 Src/wptKeyManager.cpp:405
+#: Src/wptKeyManager.cpp:410 Src/wptKeyManager.cpp:413
+#: Src/wptKeyManager.cpp:418 Src/wptKeyManager.cpp:424
+#: Src/wptKeyManager.cpp:429 Src/wptKeyManager.cpp:557
+#: Src/wptKeyManager.cpp:565 Src/wptKeyManager.cpp:671
+#: Src/wptKeyManager.cpp:700 Src/wptKeyManager.cpp:709
+#: Src/wptKeyManager.cpp:720 Src/wptKeyManager.cpp:746
+#: Src/wptKeyManager.cpp:773 Src/wptKeyManager.cpp:780
+#: Src/wptKeyManager.cpp:804 Src/wptKeyManager.cpp:809
+#: Src/wptKeyManager.cpp:829 Src/wptKeyManager.cpp:884
+#: Src/wptKeyManager.cpp:889 Src/wptKeyManager.cpp:949
+#: Src/wptKeyManager.cpp:979 Src/wptKeyManager.cpp:1068
+#: Src/wptKeyManagerDlg.cpp:1162 Src/wptKeyManagerDlg.cpp:1175
+#: Src/wptKeyManagerDlg.cpp:1185 Src/wptKeyManagerDlg.cpp:1473
+#: Src/wptKeyManagerDlg.cpp:1495 Src/wptKeyManagerDlg.cpp:1510
+#: Src/wptKeyManagerDlg.cpp:1520 Src/wptKeyManagerDlg.cpp:1528
+#: Src/wptKeyManagerDlg.cpp:1538 Src/wptKeyManagerDlg.cpp:1544
 #: Src/wptKeyManagerDlg.cpp:1554 Src/wptKeyManagerDlg.cpp:1567
-#: Src/wptKeyManagerDlg.cpp:1587 Src/wptKeyManagerDlg.cpp:1616
-#: Src/wptKeyManagerDlg.cpp:1645 Src/wptKeyManagerDlg.cpp:1704
-#: Src/wptKeyManagerDlg.cpp:1722 Src/wptKeyManagerDlg.cpp:1727
-#: Src/wptKeyManagerDlg.cpp:1732 Src/wptKeyManagerDlg.cpp:1821
-#: Src/wptKeyManagerDlg.cpp:1996 Src/wptKeysigDlg.cpp:93
-#: Src/wptKeysigDlg.cpp:105 Src/wptKeysigDlg.cpp:284 Src/wptKeysigDlg.cpp:358
-#: Src/wptKeysigDlg.cpp:367 Src/wptKeysigDlg.cpp:412 Src/wptMainProc.cpp:413
-#: Src/wptMainProc.cpp:561 Src/wptMainProc.cpp:569
+#: Src/wptKeyManagerDlg.cpp:1584 Src/wptKeyManagerDlg.cpp:1616
+#: Src/wptKeyManagerDlg.cpp:1675 Src/wptKeyManagerDlg.cpp:1693
+#: Src/wptKeyManagerDlg.cpp:1698 Src/wptKeyManagerDlg.cpp:1703
+#: Src/wptKeyManagerDlg.cpp:1776 Src/wptKeyManagerDlg.cpp:1913
+#: Src/wptKeysigDlg.cpp:93 Src/wptKeysigDlg.cpp:105 Src/wptKeysigDlg.cpp:284
+#: Src/wptKeysigDlg.cpp:358 Src/wptKeysigDlg.cpp:367 Src/wptKeysigDlg.cpp:412
+#: Src/wptMainProc.cpp:413 Src/wptMainProc.cpp:561 Src/wptMainProc.cpp:569
 msgid "Key Manager"
 msgstr "Gestionnaire de clés"
 
@@ -1767,47 +1770,47 @@
 msgid "Unknown Hotkey"
 msgstr ""
 
-#: Src/wptImportList.cpp:263 Src/wptKeyEditDlgs.cpp:237
-#: Src/wptKeyEditDlgs.cpp:1119 Src/wptKeyEditDlgs.cpp:1180
-#: Src/wptKeyEditDlgs.cpp:1434 Src/wptKeyEditDlgs.cpp:1456
-#: Src/wptKeyEditDlgs.cpp:1495 Src/wptKeyEditDlgs.cpp:1528
+#: Src/wptImportList.cpp:262 Src/wptKeyEditDlgs.cpp:255
+#: Src/wptKeyEditDlgs.cpp:1162 Src/wptKeyEditDlgs.cpp:1223
+#: Src/wptKeyEditDlgs.cpp:1478 Src/wptKeyEditDlgs.cpp:1500
+#: Src/wptKeyEditDlgs.cpp:1539 Src/wptKeyEditDlgs.cpp:1572
 #: Src/wptKeylist.cpp:392 Src/wptKeylist.cpp:426 Src/wptKeyPropsDlg.cpp:163
 #: Src/wptKeysigDlg.cpp:143 Src/wptKeysigDlg.cpp:208
 msgid "Revoked"
 msgstr ""
 
-#: Src/wptImportList.cpp:265 Src/wptKeyEditDlgs.cpp:239
-#: Src/wptKeyEditDlgs.cpp:1117 Src/wptKeyEditDlgs.cpp:1353
+#: Src/wptImportList.cpp:264 Src/wptKeyEditDlgs.cpp:257
+#: Src/wptKeyEditDlgs.cpp:1160 Src/wptKeyEditDlgs.cpp:1397
 #: Src/wptKeylist.cpp:394 Src/wptKeylist.cpp:424 Src/wptKeyPropsDlg.cpp:160
 #: Src/wptKeysigDlg.cpp:142 Src/wptKeysigDlg.cpp:209
 msgid "Expired"
 msgstr ""
 
-#: Src/wptImportList.cpp:269
+#: Src/wptImportList.cpp:268
 msgid "secret key"
 msgstr "clé secrète"
 
-#: Src/wptImportList.cpp:271 Src/wptKeylist.cpp:430
+#: Src/wptImportList.cpp:270 Src/wptKeylist.cpp:430
 msgid "public key"
 msgstr "clé publique"
 
-#: Src/wptImportList.cpp:302 Src/wptKeyEditDlgs.cpp:1197
+#: Src/wptImportList.cpp:301 Src/wptKeyEditDlgs.cpp:1240
 msgid "Invalid user ID"
 msgstr ""
 
-#: Src/wptImportList.cpp:351 Src/wptKeylist.cpp:544 Src/wptKeylist.cpp:552
+#: Src/wptImportList.cpp:350 Src/wptKeylist.cpp:544 Src/wptKeylist.cpp:552
 #: Src/wptKeyManagerDlg.cpp:857 Src/wptKeyManagerDlg.cpp:926
 #: Src/wptKeyserverSearchDlg.cpp:53 Src/wptSigList.cpp:51
 #: Src/wptVerifyList.cpp:112
 msgid "User ID"
 msgstr ""
 
-#: Src/wptImportList.cpp:352 Src/wptKeylist.cpp:546 Src/wptKeylist.cpp:555
+#: Src/wptImportList.cpp:351 Src/wptKeylist.cpp:546 Src/wptKeylist.cpp:555
 #: Src/wptKeyManagerDlg.cpp:860 Src/wptKeyserverSearchDlg.cpp:50
 msgid "Size"
 msgstr "Taille"
 
-#: Src/wptImportList.cpp:353 Src/wptKeyEditDlgs.cpp:1041
+#: Src/wptImportList.cpp:352 Src/wptKeyEditDlgs.cpp:1084
 #: Src/wptKeylist.cpp:545 Src/wptKeylist.cpp:553 Src/wptKeyManagerDlg.cpp:858
 #: Src/wptKeyManagerDlg.cpp:949 Src/wptKeyRevokersDlg.cpp:58
 #: Src/wptKeyserverSearchDlg.cpp:51 Src/wptSigList.cpp:55
@@ -1815,19 +1818,19 @@
 msgid "Key ID"
 msgstr ""
 
-#: Src/wptImportList.cpp:354 Src/wptKeyEditDlgs.cpp:1042
-#: Src/wptKeyEditDlgs.cpp:1149 Src/wptKeylist.cpp:559
+#: Src/wptImportList.cpp:353 Src/wptKeyEditDlgs.cpp:1085
+#: Src/wptKeyEditDlgs.cpp:1192 Src/wptKeylist.cpp:559
 #: Src/wptKeyManagerDlg.cpp:864 Src/wptKeyManagerDlg.cpp:952
 #: Src/wptKeyserverSearchDlg.cpp:52 Src/wptSigList.cpp:54
 msgid "Creation"
 msgstr "Création"
 
-#: Src/wptImportList.cpp:355 Src/wptKeylist.cpp:554
+#: Src/wptImportList.cpp:354 Src/wptKeylist.cpp:554
 #: Src/wptKeyManagerDlg.cpp:859 Src/wptKeyManagerDlg.cpp:951
 msgid "Type"
 msgstr ""
 
-#: Src/wptImportList.cpp:427
+#: Src/wptImportList.cpp:426
 msgid ""
 "It is possible that the ASCII-Armor is damaged\n"
 "and thus a CRC error occurs."
@@ -1849,165 +1852,155 @@
 msgid "Key Cache"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:210
+#: Src/wptKeyEditDlgs.cpp:228
 msgid "Ultimate"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:225 Src/wptKeyEditDlgs.cpp:1114
+#: Src/wptKeyEditDlgs.cpp:243 Src/wptKeyEditDlgs.cpp:1157
 #: Src/wptKeylist.cpp:235 Src/wptKeylist.cpp:354
 msgid "Never"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:241 Src/wptKeyEditDlgs.cpp:1121
+#: Src/wptKeyEditDlgs.cpp:259 Src/wptKeyEditDlgs.cpp:1164
 msgid "OK"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:266
+#: Src/wptKeyEditDlgs.cpp:282
 msgid "user ID"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:267
+#: Src/wptKeyEditDlgs.cpp:283
 #, c-format
 msgid ""
 "Could not get key information for: \"%s\":\n"
 "%s"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:342
+#: Src/wptKeyEditDlgs.cpp:358
 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 "
 "close to 240x288 is a good size to use."
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:343
+#: Src/wptKeyEditDlgs.cpp:359
 msgid ""
 "Pick an image to use for your photo ID.\n"
 "The image must be a JPEG file."
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:344 Src/wptKeyEditDlgs.cpp:446
+#: Src/wptKeyEditDlgs.cpp:360 Src/wptKeyEditDlgs.cpp:448
 #: Src/wptKeysignDlg.cpp:286
 msgid "Passphrase"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:346
+#: Src/wptKeyEditDlgs.cpp:362
 msgid "Add Photo ID"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:362
+#: Src/wptKeyEditDlgs.cpp:377
 msgid "Select Image File"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:366 Src/wptKeyEditDlgs.cpp:376
-#: Src/wptKeyEditDlgs.cpp:382 Src/wptKeyEditDlgs.cpp:388
-#: Src/wptKeyEditDlgs.cpp:402 Src/wptKeyEditDlgs.cpp:904
+#: Src/wptKeyEditDlgs.cpp:381 Src/wptKeyEditDlgs.cpp:391
+#: Src/wptKeyEditDlgs.cpp:397 Src/wptKeyEditDlgs.cpp:409
+#: Src/wptKeyEditDlgs.cpp:917
 msgid "Add Photo"
 msgstr "Ajouter une photo"
 
-#: Src/wptKeyEditDlgs.cpp:367
+#: Src/wptKeyEditDlgs.cpp:382
 #, c-format
 msgid "'%s' is not a valid JPEG file."
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:376 Src/wptKeyRevokeDlg.cpp:142
+#: Src/wptKeyEditDlgs.cpp:391 Src/wptKeyRevokeDlg.cpp:149
 msgid "Please enter a file name."
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:380
+#: Src/wptKeyEditDlgs.cpp:395
 msgid ""
 "The JPEG is really large.\n"
 "Are you sure you want to use it?"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:388 Src/wptPassphraseDlg.cpp:99
-msgid "Please enter a passphrase."
-msgstr "Entrer une passphrase."
-
-#: Src/wptKeyEditDlgs.cpp:407
+#: Src/wptKeyEditDlgs.cpp:414
 msgid "Photo successfully added."
 msgstr "Photo ajoutée avec succès."
 
-#: Src/wptKeyEditDlgs.cpp:408 Src/wptKeyEditDlgs.cpp:489
-#: Src/wptKeyEditDlgs.cpp:571 Src/wptKeyEditDlgs.cpp:740
-#: Src/wptKeyEditDlgs.cpp:1458 Src/wptKeyEditDlgs.cpp:1530
-#: Src/wptKeyEditDlgs.cpp:1615 Src/wptKeyEditDlgs.cpp:1795
+#: Src/wptKeyEditDlgs.cpp:415 Src/wptKeyEditDlgs.cpp:484
+#: Src/wptKeyEditDlgs.cpp:565 Src/wptKeyEditDlgs.cpp:742
+#: Src/wptKeyEditDlgs.cpp:1502 Src/wptKeyEditDlgs.cpp:1574
+#: Src/wptKeyEditDlgs.cpp:1659 Src/wptKeyEditDlgs.cpp:1841
 #: Src/wptKeygenDlg.cpp:496 Src/wptKeygenDlg.cpp:612
 #: Src/wptKeyPropsDlg.cpp:357 Src/wptOwnertrustDlg.cpp:124
 #: Src/wptOwnertrustDlg.cpp:136
 msgid "GnuPG Status"
 msgstr "Etat de GnuPG"
 
-#: Src/wptKeyEditDlgs.cpp:444
+#: Src/wptKeyEditDlgs.cpp:446
 msgid "Appointing a key as designated revoker cannot be undone."
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:445
+#: Src/wptKeyEditDlgs.cpp:447
 msgid "Public key"
 msgstr "Clé publique"
 
-#: Src/wptKeyEditDlgs.cpp:448 Src/wptKeyEditDlgs.cpp:464
-#: Src/wptKeyEditDlgs.cpp:470 Src/wptKeyEditDlgs.cpp:483
-#: Src/wptKeyEditDlgs.cpp:917
+#: Src/wptKeyEditDlgs.cpp:450 Src/wptKeyEditDlgs.cpp:466
+#: Src/wptKeyEditDlgs.cpp:478 Src/wptKeyEditDlgs.cpp:948
 msgid "Add Revoker"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:464 Src/wptKeyEditDlgs.cpp:1490
-#: Src/wptKeyEditDlgs.cpp:1547 Src/wptKeyEditDlgs.cpp:1592
-#: Src/wptKeyEditDlgs.cpp:1734 Src/wptKeyEditDlgs.cpp:1765
-#: Src/wptKeyEditDlgs.cpp:1935
+#: Src/wptKeyEditDlgs.cpp:466 Src/wptKeyEditDlgs.cpp:1534
+#: Src/wptKeyEditDlgs.cpp:1591 Src/wptKeyEditDlgs.cpp:1636
+#: Src/wptKeyEditDlgs.cpp:1780 Src/wptKeyEditDlgs.cpp:1811
+#: Src/wptKeyEditDlgs.cpp:1979
 msgid "Please select a user ID."
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:470 Src/wptKeygenDlg.cpp:457
-#: Src/wptKeyRevokeDlg.cpp:150
-msgid "Please enter the passphrase."
-msgstr "Entrer la passphrase."
-
-#: Src/wptKeyEditDlgs.cpp:488
+#: Src/wptKeyEditDlgs.cpp:483
 msgid "Revoker successfully addded."
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:520
+#: Src/wptKeyEditDlgs.cpp:516
 msgid "Add new User ID"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:522
+#: Src/wptKeyEditDlgs.cpp:518
 msgid "&Email"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:523
+#: Src/wptKeyEditDlgs.cpp:519
 msgid "&Comment"
 msgstr "&Commentaire"
 
-#: Src/wptKeyEditDlgs.cpp:538
+#: Src/wptKeyEditDlgs.cpp:535
 msgid "Please enter a name (min. 5 chars.)"
 msgstr "Entrer un nom (min. 5 caractères)"
 
-#: Src/wptKeyEditDlgs.cpp:538 Src/wptKeyEditDlgs.cpp:542
-#: Src/wptKeyEditDlgs.cpp:547 Src/wptKeyEditDlgs.cpp:551
-#: Src/wptKeyEditDlgs.cpp:569
+#: Src/wptKeyEditDlgs.cpp:535 Src/wptKeyEditDlgs.cpp:539
+#: Src/wptKeyEditDlgs.cpp:544 Src/wptKeyEditDlgs.cpp:548
+#: Src/wptKeyEditDlgs.cpp:563
 msgid "UserID"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:542
+#: Src/wptKeyEditDlgs.cpp:539
 msgid ""
 "Please enter the email address in the email field and not in the name field"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:547
+#: Src/wptKeyEditDlgs.cpp:544
 msgid "Please enter an email address."
 msgstr "Entrer une adresse email"
 
-#: Src/wptKeyEditDlgs.cpp:551
+#: Src/wptKeyEditDlgs.cpp:548
 msgid "Invalid email address."
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:571
+#: Src/wptKeyEditDlgs.cpp:565
 msgid "user ID successfully added."
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:651 Src/wptKeyEditDlgs.cpp:846
+#: Src/wptKeyEditDlgs.cpp:651 Src/wptKeyEditDlgs.cpp:855
 msgid "Add new Subkey"
 msgstr "Ajouter la nouvelle clé secondaire"
 
@@ -2023,106 +2016,106 @@
 msgid "Key expiration"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:699
+#: Src/wptKeyEditDlgs.cpp:700
 msgid "Please select one entry."
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:699 Src/wptKeyEditDlgs.cpp:705
-#: Src/wptKeyEditDlgs.cpp:738 Src/wptKeyEditDlgs.cpp:828
+#: Src/wptKeyEditDlgs.cpp:701 Src/wptKeyEditDlgs.cpp:707
+#: Src/wptKeyEditDlgs.cpp:739 Src/wptKeyEditDlgs.cpp:838
 msgid "Add Subkey"
 msgstr "Ajouter la clé secondaire"
 
-#: Src/wptKeyEditDlgs.cpp:704
+#: Src/wptKeyEditDlgs.cpp:706
 msgid "DSS uses a fixed keysize of 1024. Size changed."
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:740
+#: Src/wptKeyEditDlgs.cpp:741
 msgid "Subkey successfully added."
 msgstr "Clé secondaire ajoutée avec succès."
 
-#: Src/wptKeyEditDlgs.cpp:768 Src/wptKeyEditDlgs.cpp:828
-#: Src/wptKeyEditDlgs.cpp:903 Src/wptKeyEditDlgs.cpp:917
-#: Src/wptKeyEditDlgs.cpp:982 Src/wptKeyEditDlgs.cpp:1342
-#: Src/wptKeyEditDlgs.cpp:1417 Src/wptKeyEditDlgs.cpp:1479
-#: Src/wptKeyManagerDlg.cpp:1521
+#: Src/wptKeyEditDlgs.cpp:769 Src/wptKeyEditDlgs.cpp:837
+#: Src/wptKeyEditDlgs.cpp:916 Src/wptKeyEditDlgs.cpp:948
+#: Src/wptKeyEditDlgs.cpp:1028 Src/wptKeyEditDlgs.cpp:1386
+#: Src/wptKeyEditDlgs.cpp:1461 Src/wptKeyEditDlgs.cpp:1523
+#: Src/wptKeyManagerDlg.cpp:1527
 msgid "There is no secret key available!"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:768 Src/wptKeyEditDlgs.cpp:785
+#: Src/wptKeyEditDlgs.cpp:770 Src/wptKeyEditDlgs.cpp:788
 msgid "Add user ID"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:886
+#: Src/wptKeyEditDlgs.cpp:895
 msgid "Preferred keyserver successfully set."
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:936 Src/wptKeyEditOwnertrustDlg.cpp:55
+#: Src/wptKeyEditDlgs.cpp:982 Src/wptKeyEditOwnertrustDlg.cpp:55
 #: Src/wptKeyPropsDlg.cpp:349
 msgid "Change Ownertrust"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:939 Src/wptKeyManager.cpp:207
+#: Src/wptKeyEditDlgs.cpp:985 Src/wptKeyManager.cpp:208
 msgid "Key status changed."
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:988
+#: Src/wptKeyEditDlgs.cpp:1034
 msgid ""
 "Cannot change passphrase because the key\n"
 "is protected with the IDEA encryption algorithm."
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:995
+#: Src/wptKeyEditDlgs.cpp:1041
 msgid "Current (old) Passphrase"
 msgstr "Actuel (ancienne) Passphrase"
 
-#: Src/wptKeyEditDlgs.cpp:999
+#: Src/wptKeyEditDlgs.cpp:1045
 msgid "New Passphrase"
 msgstr "Nouvelle Passphrase"
 
-#: Src/wptKeyEditDlgs.cpp:1006 Src/wptPassphraseDlg.cpp:191
+#: Src/wptKeyEditDlgs.cpp:1052 Src/wptPassphraseDlg.cpp:191
 msgid ""
 "The passphrase contains 8-bit characters.\n"
 "It is not suggested to use charset specific characters."
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:1021
+#: Src/wptKeyEditDlgs.cpp:1064
 msgid "Change Passwd"
 msgstr "Changement de mot de passe"
 
-#: Src/wptKeyEditDlgs.cpp:1023
+#: Src/wptKeyEditDlgs.cpp:1066
 msgid "Passphrase successfully changed."
 msgstr "Passphrase modifiée avec succès."
 
-#: Src/wptKeyEditDlgs.cpp:1040 Src/wptKeyManagerDlg.cpp:865
+#: Src/wptKeyEditDlgs.cpp:1083 Src/wptKeyManagerDlg.cpp:865
 msgid "Description"
 msgstr "Déscription"
 
-#: Src/wptKeyEditDlgs.cpp:1043
+#: Src/wptKeyEditDlgs.cpp:1086
 msgid "Expires"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:1057 Src/wptKeyEditDlgs.cpp:1155
+#: Src/wptKeyEditDlgs.cpp:1100 Src/wptKeyEditDlgs.cpp:1198
 msgid "Could not find key."
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:1064
+#: Src/wptKeyEditDlgs.cpp:1107
 msgid "No subkey(s) found."
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:1146 Src/wptKeylist.cpp:548 Src/wptKeylist.cpp:557
+#: Src/wptKeyEditDlgs.cpp:1189 Src/wptKeylist.cpp:548 Src/wptKeylist.cpp:557
 #: Src/wptKeyManagerDlg.cpp:862
 msgid "Validity"
 msgstr "Validité"
 
-#: Src/wptKeyEditDlgs.cpp:1148
+#: Src/wptKeyEditDlgs.cpp:1191
 msgid "Email"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:1161
+#: Src/wptKeyEditDlgs.cpp:1204
 msgid "No user ID(s) found."
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:1255
+#: Src/wptKeyEditDlgs.cpp:1298
 msgid ""
 "ADDUID   \t\tadd a user ID\r\n"
 "ADDPHOTO  \t\tadd a photo ID\r\n"
@@ -2146,19 +2139,19 @@
 "CLEAN     \t\tremove unusable signatures from key\r\n"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:1276
+#: Src/wptKeyEditDlgs.cpp:1319
 msgid "Key Edit Help"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:1292
+#: Src/wptKeyEditDlgs.cpp:1335
 msgid "Primary key can not be deleted!"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:1300
+#: Src/wptKeyEditDlgs.cpp:1343
 msgid "Primary subkey can not be deleted!"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:1306
+#: Src/wptKeyEditDlgs.cpp:1351
 #, c-format
 msgid ""
 "\"Subkey %s.\"\n"
@@ -2169,34 +2162,34 @@
 "Do you really want to delete this subkey?"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:1318
+#: Src/wptKeyEditDlgs.cpp:1363
 msgid "Delete Subkey"
 msgstr "Effacer la clé secondaire"
 
-#: Src/wptKeyEditDlgs.cpp:1322
+#: Src/wptKeyEditDlgs.cpp:1367
 msgid "Subkey successfully deleted."
 msgstr "Clé secondaire effacée avec succès."
 
-#: Src/wptKeyEditDlgs.cpp:1354
+#: Src/wptKeyEditDlgs.cpp:1398
 msgid ""
 "Key already expired.\n"
 "\n"
 "Do you want to change the expiration date?"
 msgstr "Voulez-vous changer la date d'expiration?"
 
-#: Src/wptKeyEditDlgs.cpp:1363 Src/wptKeyEditDlgs.cpp:1366
+#: Src/wptKeyEditDlgs.cpp:1407 Src/wptKeyEditDlgs.cpp:1410
 msgid "Key Expiration Date"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:1389
+#: Src/wptKeyEditDlgs.cpp:1433
 msgid "Expire Subkey"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:1395
+#: Src/wptKeyEditDlgs.cpp:1439
 msgid "Subkey expire date successfully set."
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:1426
+#: Src/wptKeyEditDlgs.cpp:1470
 msgid ""
 "No subkeys were found, if you want to revoke the\n"
 "whole key, please use the Key Manager command directly.\n"
@@ -2204,31 +2197,31 @@
 "This command is only available to revoke single subkeys"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:1435
+#: Src/wptKeyEditDlgs.cpp:1479
 msgid "Key already revoked."
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:1454
+#: Src/wptKeyEditDlgs.cpp:1498
 msgid "Revoke Subkey"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:1458
+#: Src/wptKeyEditDlgs.cpp:1502
 msgid "Subkey successfully revoked."
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:1480
+#: Src/wptKeyEditDlgs.cpp:1524
 msgid "Revoke user ID"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:1485
+#: Src/wptKeyEditDlgs.cpp:1529
 msgid "Key has only one user ID."
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:1496
+#: Src/wptKeyEditDlgs.cpp:1540
 msgid "This user ID has been already revoked."
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:1502
+#: Src/wptKeyEditDlgs.cpp:1546
 #, c-format
 msgid ""
 "user ID \"%s\".\n"
@@ -2236,43 +2229,47 @@
 "Do you really want to revoke this user ID?"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:1526
+#: Src/wptKeyEditDlgs.cpp:1570
 msgid "Revoke User ID"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:1530
+#: Src/wptKeyEditDlgs.cpp:1574
 msgid "User ID successfully revoked"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:1572
+#: Src/wptKeyEditDlgs.cpp:1616
 msgid "Could not set user ID preferences"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:1612
+#: Src/wptKeyEditDlgs.cpp:1656
 msgid "Primary"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:1615
+#: Src/wptKeyEditDlgs.cpp:1659
 msgid "User ID successfully flagged"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:1701
+#: Src/wptKeyEditDlgs.cpp:1746
 msgid "No preferences available."
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:1707
+#: Src/wptKeyEditDlgs.cpp:1752
 msgid "MDC feature"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:1709 Src/wptKeyeditSetPrefDlg.cpp:116
+#: Src/wptKeyEditDlgs.cpp:1754
+msgid "user ID:"
+msgstr ""
+
+#: Src/wptKeyEditDlgs.cpp:1755 Src/wptKeyeditSetPrefDlg.cpp:116
 msgid "Key Preferences"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:1760
+#: Src/wptKeyEditDlgs.cpp:1806
 msgid "Primary user ID can not be deleted!"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:1771
+#: Src/wptKeyEditDlgs.cpp:1817
 #, c-format
 msgid ""
 "user ID \"%s\".\n"
@@ -2282,43 +2279,43 @@
 "Do you really want to delete this user ID?"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:1791
+#: Src/wptKeyEditDlgs.cpp:1837
 msgid "Delete user ID"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:1795
+#: Src/wptKeyEditDlgs.cpp:1841
 msgid "User ID successfully deleted"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:1902
+#: Src/wptKeyEditDlgs.cpp:1946
 msgid "Finished to compact key."
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:1939
+#: Src/wptKeyEditDlgs.cpp:1983
 msgid "Do you really want to make this sig exportable?"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:1963 Src/wptKeysignDlg.cpp:395
+#: Src/wptKeyEditDlgs.cpp:2007 Src/wptKeysignDlg.cpp:395
 msgid "Key successfully signed."
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:2021
+#: Src/wptKeyEditDlgs.cpp:2065
 msgid "Could not set subkey window procedure."
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:2034
+#: Src/wptKeyEditDlgs.cpp:2078
 msgid "Could not set user ID window procedure."
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:2043
+#: Src/wptKeyEditDlgs.cpp:2087
 msgid "Command>"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:2075
+#: Src/wptKeyEditDlgs.cpp:2119
 msgid "Please select a command."
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:2079
+#: Src/wptKeyEditDlgs.cpp:2123
 msgid "This command cannot be used with PGP 2 (v3) keys.\n"
 msgstr ""
 
@@ -2355,7 +2352,7 @@
 
 #: Src/wptKeyEditOwnertrustDlg.cpp:88 Src/wptKeyEditOwnertrustDlg.cpp:95
 #: Src/wptKeyEditOwnertrustDlg.cpp:104 Src/wptKeyManagerDlg.cpp:920
-#: Src/wptKeyManagerDlg.cpp:1771 Src/wptKeyPropsDlg.cpp:289
+#: Src/wptKeyManagerDlg.cpp:1742 Src/wptKeyPropsDlg.cpp:289
 #: Src/wptOwnertrustDlg.cpp:97 Src/wptOwnertrustDlg.cpp:121
 #: Src/wptOwnertrustDlg.cpp:133
 msgid "Ownertrust"
@@ -2378,7 +2375,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:1636 Src/wptPassphraseDlg.cpp:109
+#: Src/wptKeyManagerDlg.cpp:1607 Src/wptPassphraseDlg.cpp:109
 msgid "Key Generation"
 msgstr ""
 
@@ -2483,6 +2480,10 @@
 msgid "Please do NOT enter the email address in the comment field."
 msgstr ""
 
+#: Src/wptKeygenDlg.cpp:457 Src/wptKeyRevokeDlg.cpp:157
+msgid "Please enter the passphrase."
+msgstr "Entrer la passphrase."
+
 #: Src/wptKeygenDlg.cpp:496 Src/wptKeygenDlg.cpp:612
 msgid "Key Generation completed"
 msgstr "Génération des clés terminée"
@@ -2519,7 +2520,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:1659
+#: Src/wptKeyManagerDlg.cpp:1630
 msgid "Key Generation Wizard"
 msgstr ""
 
@@ -2650,88 +2651,88 @@
 msgid "Secret Key List"
 msgstr ""
 
-#: Src/wptKeyManager.cpp:152
+#: Src/wptKeyManager.cpp:153
 msgid ""
 "This key has expired!\n"
 "Key check failed."
 msgstr ""
 
-#: Src/wptKeyManager.cpp:157
+#: Src/wptKeyManager.cpp:158
 msgid ""
 "This key has been revoked by its owner!\n"
 "Key check failed."
 msgstr ""
 
-#: Src/wptKeyManager.cpp:299
+#: Src/wptKeyManager.cpp:300
 msgid "Only one secret key can be exported."
 msgstr ""
 
-#: Src/wptKeyManager.cpp:310
+#: Src/wptKeyManager.cpp:311
 #, c-format
 msgid "Secret key successfully saved in '%s'."
 msgstr ""
 
-#: Src/wptKeyManager.cpp:344
+#: Src/wptKeyManager.cpp:345
 #, c-format
 msgid "Key(s) successfully saved in '%s'."
 msgstr ""
 
-#: Src/wptKeyManager.cpp:416
+#: Src/wptKeyManager.cpp:417
 msgid "No valid OpenPGP keys found."
 msgstr ""
 
-#: Src/wptKeyManager.cpp:421
+#: Src/wptKeyManager.cpp:422
 msgid ""
 "The key you want to import is dash escacped.\n"
 "Do you want to extract the key?"
 msgstr ""
 
-#: Src/wptKeyManager.cpp:427
+#: Src/wptKeyManager.cpp:428
 msgid "Cannot import dash escaped OpenPGP keys."
 msgstr ""
 
-#: Src/wptKeyManager.cpp:456 Src/wptKeyManager.cpp:584
+#: Src/wptKeyManager.cpp:457 Src/wptKeyManager.cpp:585
 msgid ""
 "Key without a self signature was dectected!\n"
 "(This key is NOT usable for encryption, etc)\n"
 msgstr ""
 
-#: Src/wptKeyManager.cpp:485 Src/wptKeyManager.cpp:492
-#: Src/wptKeyManager.cpp:501
+#: Src/wptKeyManager.cpp:486 Src/wptKeyManager.cpp:493
+#: Src/wptKeyManager.cpp:502
 msgid "Key Import HTTP"
 msgstr ""
 
-#: Src/wptKeyManager.cpp:485
+#: Src/wptKeyManager.cpp:486
 #, c-format
 msgid "Invalid HTTP URL: %s"
 msgstr ""
 
-#: Src/wptKeyManager.cpp:502
+#: Src/wptKeyManager.cpp:503
 #, c-format
 msgid "Could not fetch key from URL: %s"
 msgstr ""
 
-#: Src/wptKeyManager.cpp:531
+#: Src/wptKeyManager.cpp:532
 msgid "Choose Name of the Key File"
 msgstr "Choisissez un nom de fichier pour la clé"
 
-#: Src/wptKeyManager.cpp:544
+#: Src/wptKeyManager.cpp:545
 msgid "File Import"
 msgstr ""
 
-#: Src/wptKeyManager.cpp:555
+#: Src/wptKeyManager.cpp:556
 msgid "Could not read key-data from file."
 msgstr ""
 
-#: Src/wptKeyManager.cpp:675
+#: Src/wptKeyManager.cpp:676
 msgid "Do you really want to confirm each key?"
 msgstr ""
 
-#: Src/wptKeyManager.cpp:676
+#: Src/wptKeyManager.cpp:677
 msgid "Delete Confirmation"
 msgstr "Confirmation de l'effacement"
 
-#: Src/wptKeyManager.cpp:700
+#: Src/wptKeyManager.cpp:701
 #, c-format
 msgid ""
 "Do you really want to delete this key?\n"
@@ -2739,7 +2740,7 @@
 "%s"
 msgstr ""
 
-#: Src/wptKeyManager.cpp:709
+#: Src/wptKeyManager.cpp:710
 #, c-format
 msgid ""
 "Do you really want to delete this KEY PAIR?\n"
@@ -2750,43 +2751,59 @@
 "%s"
 msgstr ""
 
-#: Src/wptKeyManager.cpp:716
+#: Src/wptKeyManager.cpp:717
 msgid ""
 "The actual secret key is stored on a smartcard.\n"
 "Only the public key and the secret key \n"
 "placeholder will be deleted.\n"
 msgstr ""
 
-#: Src/wptKeyManager.cpp:780
+#: Src/wptKeyManager.cpp:781
 #, fuzzy, c-format
 msgid "Do you really want to send '0x%s' to keyserver %s?"
 msgstr "Voulez-vous effacer le contenu du presse papiers?"
 
-#: Src/wptKeyManager.cpp:802
+#: Src/wptKeyManager.cpp:803
 msgid "Please only select one key."
 msgstr ""
 
-#: Src/wptKeyManager.cpp:882
+#: Src/wptKeyManager.cpp:883
 msgid "Do you really want to refresh all keys in the keyring?"
 msgstr ""
 
-#: Src/wptKeyManager.cpp:887
+#: Src/wptKeyManager.cpp:888
 msgid "Could not connect to keyserver, abort procedure."
 msgstr ""
 
-#: Src/wptKeyManager.cpp:962
+#: Src/wptKeyManager.cpp:963
 msgid "Search"
 msgstr "Chercher"
 
-#: Src/wptKeyManager.cpp:962
+#: Src/wptKeyManager.cpp:963
 msgid "Search for:"
 msgstr ""
 
-#: Src/wptKeyManager.cpp:973
+#: Src/wptKeyManager.cpp:974
 #, c-format
 msgid "String pattern \"%s\" not found."
 msgstr ""
 
+#: Src/wptKeyManager.cpp:1045 Src/wptKeyRevokeDlg.cpp:89
+msgid "0. No reason specified"
+msgstr ""
+
+#: Src/wptKeyManager.cpp:1046 Src/wptKeyRevokeDlg.cpp:90
+msgid "1. Key has been compromised"
+msgstr ""
+
+#: Src/wptKeyManager.cpp:1047 Src/wptKeyRevokeDlg.cpp:91
+msgid "2. Key is superseded"
+msgstr ""
+
+#: Src/wptKeyManager.cpp:1048 Src/wptKeyRevokeDlg.cpp:92
+msgid "3. Key is no longer used"
+msgstr ""
+
 #: Src/wptKeyManagerDlg.cpp:435 Src/wptKeyManagerDlg.cpp:970
 msgid "Paste Key from Clipboard"
 msgstr "Coller la clé du presse papiers"
@@ -2864,7 +2881,7 @@
 msgid "&List Signatures"
 msgstr ""
 
-#: Src/wptKeyManagerDlg.cpp:935 Src/wptKeyManagerDlg.cpp:1562
+#: Src/wptKeyManagerDlg.cpp:935 Src/wptKeyManagerDlg.cpp:1549
 #: Src/wptKeyTrustPathDlg.cpp:130
 msgid "List Trust Path"
 msgstr ""
@@ -3036,63 +3053,63 @@
 msgid "Could not access public keyring"
 msgstr "Ne peut accéder au porte-clés publique"
 
-#: Src/wptKeyManagerDlg.cpp:1507 Src/wptKeysignDlg.cpp:259
+#: Src/wptKeyManagerDlg.cpp:1503 Src/wptKeysignDlg.cpp:259
 #: Src/wptKeysignDlg.cpp:277 Src/wptKeysignDlg.cpp:356
 #: Src/wptKeysignDlg.cpp:371 Src/wptKeysignDlg.cpp:388
 #: Src/wptKeysignDlg.cpp:393 Src/wptKeysignDlg.cpp:395
 msgid "Key Signing"
 msgstr ""
 
-#: Src/wptKeyManagerDlg.cpp:1531
+#: Src/wptKeyManagerDlg.cpp:1519
 msgid "Key already revoked!"
 msgstr "Clé déjà révoquée!"
 
-#: Src/wptKeyManagerDlg.cpp:1543 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
+#: Src/wptKeyManagerDlg.cpp:1533 Src/wptKeyRevokeDlg.cpp:72
+#: Src/wptKeyRevokeDlg.cpp:82 Src/wptKeyRevokeDlg.cpp:145
+#: Src/wptKeyRevokeDlg.cpp:150 Src/wptKeyRevokeDlg.cpp:158
+#: Src/wptKeyRevokeDlg.cpp:169 Src/wptKeyRevokeDlg.cpp:174
 msgid "Key Revocation Cert"
 msgstr ""
 
-#: Src/wptKeyManagerDlg.cpp:1553
+#: Src/wptKeyManagerDlg.cpp:1543
 msgid "It does not make any sense with a key pair!"
 msgstr ""
 
-#: Src/wptKeyManagerDlg.cpp:1580
+#: Src/wptKeyManagerDlg.cpp:1560
 msgid "Key Signature List"
 msgstr "Liste de signature de clé"
 
-#: Src/wptKeyManagerDlg.cpp:1602 Src/wptKeyPropsDlg.cpp:285
+#: Src/wptKeyManagerDlg.cpp:1575 Src/wptKeyPropsDlg.cpp:285
 msgid "Key Properties"
 msgstr ""
 
-#: Src/wptKeyManagerDlg.cpp:1613
+#: Src/wptKeyManagerDlg.cpp:1585
 msgid ""
 "This is only useful when the keyring has been modified (sign a key...).\n"
 "Do you really want to reload the keycache?"
 msgstr ""
 
-#: Src/wptKeyManagerDlg.cpp:1644
+#: Src/wptKeyManagerDlg.cpp:1615
 msgid "Smart Card support is not available."
 msgstr ""
 
-#: Src/wptKeyManagerDlg.cpp:1667 Src/wptKeyserverDlg.cpp:585
+#: Src/wptKeyManagerDlg.cpp:1638 Src/wptKeyserverDlg.cpp:585
 msgid "Keyserver Access"
 msgstr ""
 
-#: Src/wptKeyManagerDlg.cpp:1684
+#: Src/wptKeyManagerDlg.cpp:1655
 msgid "GnuPG Options"
 msgstr ""
 
-#: Src/wptKeyManagerDlg.cpp:1726
+#: Src/wptKeyManagerDlg.cpp:1697
 msgid "There is no corresponding secret key for this key."
 msgstr ""
 
-#: Src/wptKeyManagerDlg.cpp:1731
+#: Src/wptKeyManagerDlg.cpp:1702
 msgid "You can only export one secret key."
 msgstr "Vous pouvez exporter seulement une clé secrète."
 
-#: Src/wptKeyManagerDlg.cpp:1736
+#: Src/wptKeyManagerDlg.cpp:1707
 msgid ""
 "This operation will export your *SECRET* key!\n"
 "\n"
@@ -3110,11 +3127,11 @@
 "\n"
 "Voulez-vous vraiment exporter cette clé?"
 
-#: Src/wptKeyManagerDlg.cpp:1741
+#: Src/wptKeyManagerDlg.cpp:1712
 msgid "WARNING"
 msgstr "ATTENTION"
 
-#: Src/wptKeyManagerDlg.cpp:1820
+#: Src/wptKeyManagerDlg.cpp:1775
 msgid "No key was selected, select all by default."
 msgstr ""
 
@@ -3188,55 +3205,39 @@
 msgid "Key Revokers"
 msgstr ""
 
-#: Src/wptKeyRevokeDlg.cpp:90
-msgid ""
-"Please move this certificate to a medium where it can bestored in a safe "
-"place (floppy, CDR, etc..).\n"
-"If an attacker gets access to this certificate he can use it to render your "
-"key unusable!"
-msgstr ""
-
-#: Src/wptKeyRevokeDlg.cpp:102
+#: Src/wptKeyRevokeDlg.cpp:84
 msgid "Reason for revocation"
 msgstr ""
 
-#: Src/wptKeyRevokeDlg.cpp:103
+#: Src/wptKeyRevokeDlg.cpp:85
 msgid "Optional description text"
 msgstr ""
 
-#: Src/wptKeyRevokeDlg.cpp:104
+#: Src/wptKeyRevokeDlg.cpp:86
 msgid "&Passphrase"
 msgstr ""
 
-#: Src/wptKeyRevokeDlg.cpp:105
+#: Src/wptKeyRevokeDlg.cpp:87
 msgid "Output file"
 msgstr ""
 
-#: Src/wptKeyRevokeDlg.cpp:107
-msgid "0. No reason specified"
+#: Src/wptKeyRevokeDlg.cpp:112
+msgid ""
+"Please move this certificate to a medium where it can bestored in a safe "
+"place (floppy, CDR, etc..).\n"
+"If an attacker gets access to this certificate he can use it to render your "
+"key unusable!"
 msgstr ""
 
-#: Src/wptKeyRevokeDlg.cpp:108
-msgid "1. Key has been compromised"
-msgstr ""
-
-#: Src/wptKeyRevokeDlg.cpp:109
-msgid "2. Key is superseded"
-msgstr ""
-
-#: Src/wptKeyRevokeDlg.cpp:110
-msgid "3. Key is no longer used"
-msgstr ""
-
-#: Src/wptKeyRevokeDlg.cpp:128
+#: Src/wptKeyRevokeDlg.cpp:135
 msgid "Choose File to save the Certificate"
 msgstr ""
 
-#: Src/wptKeyRevokeDlg.cpp:137
+#: Src/wptKeyRevokeDlg.cpp:144
 msgid "Please select a reason."
 msgstr ""
 
-#: Src/wptKeyRevokeDlg.cpp:172
+#: Src/wptKeyRevokeDlg.cpp:173
 msgid "Revocation certificate generated."
 msgstr ""
 
@@ -3846,6 +3847,10 @@
 msgid "Enter Passphrase"
 msgstr "Entrer la passphrase"
 
+#: Src/wptPassphraseDlg.cpp:99
+msgid "Please enter a passphrase."
+msgstr "Entrer une passphrase."
+
 #: Src/wptPassphraseDlg.cpp:106
 msgid ""
 "Your passphrase should be at least 8 characters long\n"

Modified: trunk/Po/jp.po
===================================================================
--- trunk/Po/jp.po	2006-04-11 06:38:11 UTC (rev 199)
+++ trunk/Po/jp.po	2006-04-17 09:12:50 UTC (rev 200)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: WinPT 0.10.2\n"
 "Report-Msgid-Bugs-To: winpt at freakmail.de\n"
-"POT-Creation-Date: 2006-04-09 17:00+0200\n"
+"POT-Creation-Date: 2006-04-16 19:59+0200\n"
 "PO-Revision-Date: 2005-12-22 07:28+0100\n"
 "Last-Translator: Davar Pishva <dpishva at andrew.cmu.edu>\n"
 "Language-Team: jp <jp at li.org>\n"
@@ -33,8 +33,8 @@
 #: Src/WinPT.cpp:464 Src/WinPT.cpp:471 Src/WinPT.cpp:511 Src/WinPT.cpp:539
 #: Src/WinPT.cpp:548 Src/WinPT.cpp:552 Src/WinPT.cpp:569 Src/WinPT.cpp:637
 #: Src/WinPT.cpp:650 Src/WinPT.cpp:697 Src/WinPT.cpp:727 Src/WinPT.cpp:745
-#: Src/wptCommonDlg.cpp:221 Src/wptErrors.cpp:141 Src/wptGPG.cpp:921
-#: Src/wptGPG.cpp:932 Src/wptGPG.cpp:941 Src/wptGPG.cpp:951
+#: Src/wptCommonDlg.cpp:221 Src/wptErrors.cpp:141 Src/wptGPG.cpp:903
+#: Src/wptGPG.cpp:915 Src/wptGPG.cpp:925 Src/wptGPG.cpp:936
 #: Src/wptMainProc.cpp:361 Src/wptMainProc.cpp:537
 msgid "WinPT Error"
 msgstr "WinPT ƒGƒ‰["
@@ -216,7 +216,7 @@
 # c:\oss\winpt\src\wptAboutDlgs.cpp:78
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:1152
 # c:\oss\winpt\src\wptMainProc.cpp:560
-#: Src/wptAboutDlgs.cpp:96 Src/wptKeyManagerDlg.cpp:1755
+#: Src/wptAboutDlgs.cpp:96 Src/wptKeyManagerDlg.cpp:1726
 #: Src/wptMainProc.cpp:586
 msgid "About WinPT"
 msgstr "WinPT‚ɂ‚¢‚Ä"
@@ -269,7 +269,7 @@
 msgid "&About GPG..."
 msgstr "GPG‚ɂ‚¢‚Ä..."
 
-#: Src/wptAboutDlgs.cpp:115 Src/wptKeyEditDlgs.cpp:2045
+#: Src/wptAboutDlgs.cpp:115 Src/wptKeyEditDlgs.cpp:2089
 #: Src/wptKeyManagerDlg.cpp:947
 msgid "&Help"
 msgstr "ƒwƒ‹ƒv(&H)"
@@ -380,7 +380,7 @@
 "‚Ü‚¾‘±‚¯‚Ü‚·‚©H"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:395
-#: Src/wptCardDlg.cpp:580 Src/wptKeyEditDlgs.cpp:521
+#: Src/wptCardDlg.cpp:580 Src/wptKeyEditDlgs.cpp:517
 msgid "&Name"
 msgstr "–¼‘O(&N)"
 
@@ -423,7 +423,7 @@
 msgstr "ˆÃ†‰»ƒL[‚̃J[ƒhŠOƒoƒbƒNƒAƒbƒv‚ðì¬"
 
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:1049
-#: Src/wptCardDlg.cpp:588 Src/wptKeyManagerDlg.cpp:1649
+#: Src/wptCardDlg.cpp:588 Src/wptKeyManagerDlg.cpp:1620
 msgid "Card Key Generation"
 msgstr "ƒJ[ƒhƒL[ì¬"
 
@@ -459,7 +459,7 @@
 # c:\oss\winpt\src\wptCardDlg.cpp:580
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1153
 # c:\oss\winpt\src\wptKeygenDlg.cpp:310
-#: Src/wptCardDlg.cpp:663 Src/wptKeyEditDlgs.cpp:1370
+#: Src/wptCardDlg.cpp:663 Src/wptKeyEditDlgs.cpp:1414
 msgid "The date you have chosen lies in the past."
 msgstr "‚ ‚È‚½‚Í‘I‚΂ꂽ“ú•t‚ª‰ß‹Ž‚Ì‚à‚Ì‚Å‚·B"
 
@@ -615,8 +615,8 @@
 # c:\oss\winpt\src\wptKeyManager.cpp:852 c:\oss\winpt\src\wptSymEnc.cpp:52
 #: Src/wptClipDecryptDlg.cpp:162 Src/wptClipEncryptDlg.cpp:213
 #: Src/wptClipSignDlg.cpp:122 Src/wptClipSignDlg.cpp:266
-#: Src/wptClipSignEncDlg.cpp:197 Src/wptKeyManager.cpp:273
-#: Src/wptKeyManager.cpp:751 Src/wptKeyManager.cpp:950 Src/wptSymEnc.cpp:91
+#: Src/wptClipSignEncDlg.cpp:197 Src/wptKeyManager.cpp:274
+#: Src/wptKeyManager.cpp:752 Src/wptKeyManager.cpp:951 Src/wptSymEnc.cpp:91
 msgid "GnuPG Status: Finished"
 msgstr "GunPG‚̏ó‘ԁFI—¹‚µ‚Ü‚µ‚½"
 
@@ -747,7 +747,7 @@
 msgid "Add quotes"
 msgstr "ˆø—p•„‚ð’ljÁ‚·‚é"
 
-#: Src/wptClipEditDlg.cpp:200 Src/wptKeyEditDlgs.cpp:2044
+#: Src/wptClipEditDlg.cpp:200 Src/wptKeyEditDlgs.cpp:2088
 #: Src/wptKeyserverDlg.cpp:594 Src/wptMDSumDlg.cpp:104
 #: Src/wptOwnertrustDlg.cpp:103
 msgid "&Close"
@@ -782,10 +782,10 @@
 #: Src/wptFileManagerDlg.cpp:84 Src/wptFileManagerDlg.cpp:218
 #: Src/wptFileManagerDlg.cpp:287 Src/wptFileSaveDlg.cpp:58
 #: Src/wptFirstRunDlg.cpp:47 Src/wptGPGPrefsDlg.cpp:157
-#: Src/wptKeyEditDlgs.cpp:345 Src/wptKeyEditDlgs.cpp:447
-#: Src/wptKeyEditDlgs.cpp:524 Src/wptKeyEditDlgs.cpp:656
+#: Src/wptKeyEditDlgs.cpp:361 Src/wptKeyEditDlgs.cpp:449
+#: Src/wptKeyEditDlgs.cpp:520 Src/wptKeyEditDlgs.cpp:656
 #: Src/wptKeyEditOwnertrustDlg.cpp:67 Src/wptKeygenDlg.cpp:383
-#: Src/wptKeygenDlg.cpp:546 Src/wptKeyRevokeDlg.cpp:101
+#: Src/wptKeygenDlg.cpp:546 Src/wptKeyRevokeDlg.cpp:83
 #: Src/wptKeyserverDlg.cpp:526 Src/wptKeyserverSearchDlg.cpp:61
 #: Src/wptKeysignDlg.cpp:287 Src/wptPassphraseCB.cpp:91
 #: Src/wptPassphraseDlg.cpp:69 Src/wptPINDlg.cpp:55
@@ -1016,35 +1016,36 @@
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1561
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1568
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:1173
-#: Src/wptCommonDlg.cpp:135 Src/wptKeyEditDlgs.cpp:773
-#: Src/wptKeyEditDlgs.cpp:832 Src/wptKeyEditDlgs.cpp:871
-#: Src/wptKeyEditDlgs.cpp:886 Src/wptKeyEditDlgs.cpp:888
-#: Src/wptKeyEditDlgs.cpp:939 Src/wptKeyEditDlgs.cpp:983
-#: Src/wptKeyEditDlgs.cpp:990 Src/wptKeyEditDlgs.cpp:1008
-#: Src/wptKeyEditDlgs.cpp:1057 Src/wptKeyEditDlgs.cpp:1064
-#: Src/wptKeyEditDlgs.cpp:1155 Src/wptKeyEditDlgs.cpp:1161
-#: Src/wptKeyEditDlgs.cpp:1292 Src/wptKeyEditDlgs.cpp:1296
-#: Src/wptKeyEditDlgs.cpp:1300 Src/wptKeyEditDlgs.cpp:1305
-#: Src/wptKeyEditDlgs.cpp:1342 Src/wptKeyEditDlgs.cpp:1346
-#: Src/wptKeyEditDlgs.cpp:1356 Src/wptKeyEditDlgs.cpp:1371
-#: Src/wptKeyEditDlgs.cpp:1375 Src/wptKeyEditDlgs.cpp:1417
-#: Src/wptKeyEditDlgs.cpp:1422 Src/wptKeyEditDlgs.cpp:1429
-#: Src/wptKeyEditDlgs.cpp:1435 Src/wptKeyEditDlgs.cpp:1440
-#: Src/wptKeyEditDlgs.cpp:1485 Src/wptKeyEditDlgs.cpp:1490
-#: Src/wptKeyEditDlgs.cpp:1497 Src/wptKeyEditDlgs.cpp:1504
-#: Src/wptKeyEditDlgs.cpp:1507 Src/wptKeyEditDlgs.cpp:1547
-#: Src/wptKeyEditDlgs.cpp:1555 Src/wptKeyEditDlgs.cpp:1572
-#: Src/wptKeyEditDlgs.cpp:1592 Src/wptKeyEditDlgs.cpp:1600
-#: Src/wptKeyEditDlgs.cpp:1701 Src/wptKeyEditDlgs.cpp:1734
-#: Src/wptKeyEditDlgs.cpp:1761 Src/wptKeyEditDlgs.cpp:1765
-#: Src/wptKeyEditDlgs.cpp:1776 Src/wptKeyEditDlgs.cpp:1900
-#: Src/wptKeyEditDlgs.cpp:1902 Src/wptKeyEditDlgs.cpp:1935
-#: Src/wptKeyEditDlgs.cpp:1940 Src/wptKeyEditDlgs.cpp:1949
-#: Src/wptKeyEditDlgs.cpp:1963 Src/wptKeyEditDlgs.cpp:1967
-#: Src/wptKeyEditDlgs.cpp:2022 Src/wptKeyEditDlgs.cpp:2035
-#: Src/wptKeyEditDlgs.cpp:2046 Src/wptKeyEditDlgs.cpp:2075
-#: Src/wptKeyEditDlgs.cpp:2080 Src/wptKeyManagerDlg.cpp:975
-#: Src/wptKeyManagerDlg.cpp:1790
+#: Src/wptCommonDlg.cpp:135 Src/wptKeyEditDlgs.cpp:775
+#: Src/wptKeyEditDlgs.cpp:842 Src/wptKeyEditDlgs.cpp:882
+#: Src/wptKeyEditDlgs.cpp:895 Src/wptKeyEditDlgs.cpp:897
+#: Src/wptKeyEditDlgs.cpp:923 Src/wptKeyEditDlgs.cpp:953
+#: Src/wptKeyEditDlgs.cpp:985 Src/wptKeyEditDlgs.cpp:1029
+#: Src/wptKeyEditDlgs.cpp:1036 Src/wptKeyEditDlgs.cpp:1054
+#: Src/wptKeyEditDlgs.cpp:1100 Src/wptKeyEditDlgs.cpp:1107
+#: Src/wptKeyEditDlgs.cpp:1198 Src/wptKeyEditDlgs.cpp:1204
+#: Src/wptKeyEditDlgs.cpp:1335 Src/wptKeyEditDlgs.cpp:1339
+#: Src/wptKeyEditDlgs.cpp:1343 Src/wptKeyEditDlgs.cpp:1350
+#: Src/wptKeyEditDlgs.cpp:1386 Src/wptKeyEditDlgs.cpp:1390
+#: Src/wptKeyEditDlgs.cpp:1400 Src/wptKeyEditDlgs.cpp:1415
+#: Src/wptKeyEditDlgs.cpp:1419 Src/wptKeyEditDlgs.cpp:1461
+#: Src/wptKeyEditDlgs.cpp:1466 Src/wptKeyEditDlgs.cpp:1473
+#: Src/wptKeyEditDlgs.cpp:1479 Src/wptKeyEditDlgs.cpp:1484
+#: Src/wptKeyEditDlgs.cpp:1529 Src/wptKeyEditDlgs.cpp:1534
+#: Src/wptKeyEditDlgs.cpp:1541 Src/wptKeyEditDlgs.cpp:1548
+#: Src/wptKeyEditDlgs.cpp:1551 Src/wptKeyEditDlgs.cpp:1591
+#: Src/wptKeyEditDlgs.cpp:1599 Src/wptKeyEditDlgs.cpp:1616
+#: Src/wptKeyEditDlgs.cpp:1636 Src/wptKeyEditDlgs.cpp:1644
+#: Src/wptKeyEditDlgs.cpp:1746 Src/wptKeyEditDlgs.cpp:1780
+#: Src/wptKeyEditDlgs.cpp:1807 Src/wptKeyEditDlgs.cpp:1811
+#: Src/wptKeyEditDlgs.cpp:1822 Src/wptKeyEditDlgs.cpp:1944
+#: Src/wptKeyEditDlgs.cpp:1946 Src/wptKeyEditDlgs.cpp:1979
+#: Src/wptKeyEditDlgs.cpp:1984 Src/wptKeyEditDlgs.cpp:1993
+#: Src/wptKeyEditDlgs.cpp:2007 Src/wptKeyEditDlgs.cpp:2011
+#: Src/wptKeyEditDlgs.cpp:2066 Src/wptKeyEditDlgs.cpp:2079
+#: Src/wptKeyEditDlgs.cpp:2090 Src/wptKeyEditDlgs.cpp:2119
+#: Src/wptKeyEditDlgs.cpp:2124 Src/wptKeyManagerDlg.cpp:975
+#: Src/wptKeyManagerDlg.cpp:1750
 msgid "Key Edit"
 msgstr "ƒL[‚̕ҏW"
 
@@ -1358,7 +1359,7 @@
 # c:\oss\winpt\src\wptFileManager.cpp:179
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:810
 # c:\oss\winpt\src\wptVerifyList.cpp:76 c:\oss\winpt\src\wptVerifyList.cpp:84
-#: Src/wptFileManager.cpp:381 Src/wptKeyEditDlgs.cpp:1044
+#: Src/wptFileManager.cpp:381 Src/wptKeyEditDlgs.cpp:1087
 #: Src/wptVerifyList.cpp:108
 msgid "Status"
 msgstr "ó‹µ"
@@ -1367,7 +1368,7 @@
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:919
 # c:\oss\winpt\src\wptKeyRevokersDlg.cpp:43
 # c:\oss\winpt\src\wptMDSumDlg.cpp:53 c:\oss\winpt\src\wptVerifyList.cpp:75
-#: Src/wptFileManager.cpp:382 Src/wptKeyEditDlgs.cpp:1147
+#: Src/wptFileManager.cpp:382 Src/wptKeyEditDlgs.cpp:1190
 #: Src/wptKeyRevokersDlg.cpp:57 Src/wptMDSumDlg.cpp:73
 #: Src/wptVerifyList.cpp:107
 msgid "Name"
@@ -1552,11 +1553,11 @@
 # c:\oss\winpt\src\wptKeyManager.cpp:516
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:150
 #: Src/wptFileManager.cpp:1692 Src/wptFileManager.cpp:1703
-#: Src/wptFileManagerDlg.cpp:244 Src/wptImportList.cpp:413
-#: Src/wptImportList.cpp:419 Src/wptImportList.cpp:429
-#: Src/wptImportList.cpp:437 Src/wptImportList.cpp:446
-#: Src/wptKeyManager.cpp:447 Src/wptKeyManager.cpp:458
-#: Src/wptKeyManager.cpp:586 Src/wptKeyserverDlg.cpp:223
+#: Src/wptFileManagerDlg.cpp:244 Src/wptImportList.cpp:412
+#: Src/wptImportList.cpp:418 Src/wptImportList.cpp:428
+#: Src/wptImportList.cpp:436 Src/wptImportList.cpp:445
+#: Src/wptKeyManager.cpp:448 Src/wptKeyManager.cpp:459
+#: Src/wptKeyManager.cpp:587 Src/wptKeyserverDlg.cpp:223
 msgid "Import"
 msgstr "ƒCƒ“ƒ|[ƒg"
 
@@ -1578,8 +1579,8 @@
 # c:\oss\winpt\src\wptKeyManager.cpp:262
 # c:\oss\winpt\src\wptKeyManager.cpp:294
 # c:\oss\winpt\src\wptKeyManager.cpp:340
-#: Src/wptFileManager.cpp:1726 Src/wptKeyManager.cpp:251
-#: Src/wptKeyManager.cpp:294 Src/wptKeyManager.cpp:329
+#: Src/wptFileManager.cpp:1726 Src/wptKeyManager.cpp:252
+#: Src/wptKeyManager.cpp:295 Src/wptKeyManager.cpp:330
 msgid "No key was selected for export."
 msgstr "ƒGƒLƒXƒ|[ƒg‚·‚邽‚߂̃L[‚ª‘I‘ð‚³‚ê‚Ä‚Ü‚¹‚ñB"
 
@@ -1594,8 +1595,8 @@
 # c:\oss\winpt\src\wptFileManager.cpp:1327
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:1106
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:1138
-#: Src/wptFileManager.cpp:1734 Src/wptKeyManagerDlg.cpp:1713
-#: Src/wptKeyManagerDlg.cpp:1747
+#: Src/wptFileManager.cpp:1734 Src/wptKeyManagerDlg.cpp:1684
+#: Src/wptKeyManagerDlg.cpp:1718
 msgid "Choose Name for Key File"
 msgstr "ƒL[ƒtƒ@ƒCƒ‹‚É–¼‘O‚ð‘I‘ð‚·‚éB"
 
@@ -1604,8 +1605,8 @@
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1113
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1177
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:90
-#: Src/wptFileManager.cpp:1753 Src/wptKeyEditDlgs.cpp:1023
-#: Src/wptKeyEditDlgs.cpp:1322 Src/wptKeyEditDlgs.cpp:1396
+#: Src/wptFileManager.cpp:1753 Src/wptKeyEditDlgs.cpp:1066
+#: Src/wptKeyEditDlgs.cpp:1367 Src/wptKeyEditDlgs.cpp:1440
 #: Src/wptKeyserverDlg.cpp:101
 msgid "GnuPG status"
 msgstr "GnuPG‚̏ó‘Ô"
@@ -1686,14 +1687,14 @@
 # c:\oss\winpt\src\wptFileManagerDlg.cpp:190
 # c:\oss\winpt\src\wptKeyManager.cpp:408
 #: Src/wptFileManagerDlg.cpp:203 Src/wptFileStatDlg.cpp:281
-#: Src/wptKeyManager.cpp:411
+#: Src/wptKeyManager.cpp:412
 msgid "No valid OpenPGP data found."
 msgstr "—LŒø‚ÈOpenPGPƒf[ƒ^‚ªŒ©‚‚©‚è‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
 # c:\oss\winpt\src\wptClipImportDlg.cpp:180
 # c:\oss\winpt\src\wptKeyManager.cpp:427
 #: Src/wptFileManagerDlg.cpp:203 Src/wptFileManagerDlg.cpp:217
-#: Src/wptKeyManager.cpp:436
+#: Src/wptKeyManager.cpp:437
 msgid "Key Import"
 msgstr "ƒL[‚̃Cƒ“ƒ|[ƒg"
 
@@ -1770,13 +1771,13 @@
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:1097
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:1115
 # c:\oss\winpt\src\wptKeyserverSearchDlg.cpp:115
-#: Src/wptFileManagerDlg.cpp:332 Src/wptKeyEditDlgs.cpp:1296
-#: Src/wptKeyEditDlgs.cpp:1346 Src/wptKeyEditDlgs.cpp:1422
-#: Src/wptKeyManager.cpp:670 Src/wptKeyManager.cpp:772
-#: Src/wptKeyManager.cpp:808 Src/wptKeyManagerDlg.cpp:1494
-#: Src/wptKeyManagerDlg.cpp:1514 Src/wptKeyManagerDlg.cpp:1548
-#: Src/wptKeyManagerDlg.cpp:1567 Src/wptKeyManagerDlg.cpp:1587
-#: Src/wptKeyManagerDlg.cpp:1703 Src/wptKeyManagerDlg.cpp:1722
+#: Src/wptFileManagerDlg.cpp:332 Src/wptKeyEditDlgs.cpp:1339
+#: Src/wptKeyEditDlgs.cpp:1390 Src/wptKeyEditDlgs.cpp:1466
+#: Src/wptKeyManager.cpp:671 Src/wptKeyManager.cpp:773
+#: Src/wptKeyManager.cpp:809 Src/wptKeyManagerDlg.cpp:1494
+#: Src/wptKeyManagerDlg.cpp:1510 Src/wptKeyManagerDlg.cpp:1538
+#: Src/wptKeyManagerDlg.cpp:1554 Src/wptKeyManagerDlg.cpp:1567
+#: Src/wptKeyManagerDlg.cpp:1674 Src/wptKeyManagerDlg.cpp:1693
 #: Src/wptKeyserverSearchDlg.cpp:118
 msgid "Please select a key."
 msgstr "ƒL[‚ð‘I‚ñ‚Å‚­‚¾‚³‚¢B"
@@ -2030,7 +2031,7 @@
 msgstr "WinPTÅ‰‚̃Xƒ^[ƒg"
 
 # c:\oss\winpt\src\wptGPG.cpp:734
-#: Src/wptGPG.cpp:840
+#: Src/wptGPG.cpp:821
 msgid ""
 "The selected keyring has the read-only file\n"
 "attribute. In this state you do not have write\n"
@@ -2041,23 +2042,23 @@
 "‚±‚Ì‘®«‚ðíœ‚µ‚Ü‚·‚©H"
 
 # c:\oss\winpt\src\wptGPG.cpp:737
-#: Src/wptGPG.cpp:843
+#: Src/wptGPG.cpp:824
 msgid "GPG Information"
 msgstr "GPGƒCƒ“ƒtƒH"
 
 # c:\oss\winpt\src\wptGPG.cpp:741
-#: Src/wptGPG.cpp:847
+#: Src/wptGPG.cpp:828
 msgid "Could not reset read-only state."
 msgstr "ƒŠ[ƒhƒIƒ“ƒŠ[ó‘Ô‚ð‰Šú‰»‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
 # c:\oss\winpt\src\wptGPG.cpp:178 c:\oss\winpt\src\wptGPG.cpp:742
 # c:\oss\winpt\src\wptGPG.cpp:1029 c:\oss\winpt\src\wptGPG.cpp:1038
-#: Src/wptGPG.cpp:848 Src/wptGPG.cpp:1127 Src/wptGPG.cpp:1136
+#: Src/wptGPG.cpp:829 Src/wptGPG.cpp:1110 Src/wptGPG.cpp:1119
 msgid "GPG Error"
 msgstr "GPGƒGƒ‰["
 
 # c:\oss\winpt\src\wptGPG.cpp:757
-#: Src/wptGPG.cpp:860
+#: Src/wptGPG.cpp:841
 msgid ""
 "You do not have file access to modify the contents of\n"
 "one or both of the selected keyrings.\n"
@@ -2072,7 +2073,7 @@
 "ƒvƒƒOƒ‰ƒ€‚ª‚»‚ê‚ðŠJ‚¢‚½‚½‚߂ƍl‚¦‚ç‚ê‚Ü‚·B\n"
 
 # c:\oss\winpt\src\wptGPG.cpp:762
-#: Src/wptGPG.cpp:865
+#: Src/wptGPG.cpp:846
 msgid "GPG Warning"
 msgstr "GPGŒx"
 
@@ -2096,11 +2097,11 @@
 # c:\oss\winpt\src\wptPreferencesDlg.cpp:270
 # c:\oss\winpt\src\wptPreferencesDlg.cpp:317
 # c:\oss\winpt\src\wptRegistry.cpp:492
-#: Src/wptGPG.cpp:889 Src/wptGPGPrefsDlg.cpp:216 Src/wptGPGPrefsDlg.cpp:222
+#: Src/wptGPG.cpp:870 Src/wptGPGPrefsDlg.cpp:216 Src/wptGPGPrefsDlg.cpp:222
 #: Src/wptGPGPrefsDlg.cpp:228 Src/wptGPGPrefsDlg.cpp:234
 #: Src/wptGPGPrefsDlg.cpp:239 Src/wptGPGPrefsDlg.cpp:244
 #: Src/wptGPGPrefsDlg.cpp:250 Src/wptGPGPrefsDlg.cpp:264
-#: Src/wptKeyEditDlgs.cpp:1708 Src/wptKeyManagerDlg.cpp:940
+#: Src/wptKeyEditDlgs.cpp:1753 Src/wptKeyManagerDlg.cpp:940
 #: Src/wptMainProc.cpp:439 Src/wptPreferencesDlg.cpp:215
 #: Src/wptPreferencesDlg.cpp:260 Src/wptPreferencesDlg.cpp:272
 #: Src/wptPreferencesDlg.cpp:284 Src/wptPreferencesDlg.cpp:315
@@ -2109,7 +2110,7 @@
 msgstr "ƒJƒXƒ^ƒ€Ý’è"
 
 # c:\oss\winpt\src\wptGPG.cpp:783
-#: Src/wptGPG.cpp:890
+#: Src/wptGPG.cpp:871
 #, c-format
 msgid ""
 "%s does not exit.\n"
@@ -2119,47 +2120,49 @@
 "‚±‚̃fƒBƒŒƒNƒgƒŠ[‚ðì¬‚µ‚Ü‚·‚©H"
 
 # c:\oss\winpt\src\wptGPG.cpp:863
-#: Src/wptGPG.cpp:918
-msgid "Please choose your public keyring"
+#: Src/wptGPG.cpp:899
+#, fuzzy
+msgid "Please choose your Public Keyring"
 msgstr "ŒöŠJƒL[ƒŠƒ“ƒO‚ð‘I‚ñ‚Å‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptGPG.cpp:866 c:\oss\winpt\src\wptGPG.cpp:886
-#: Src/wptGPG.cpp:921 Src/wptGPG.cpp:941
+#: Src/wptGPG.cpp:902 Src/wptGPG.cpp:924
 msgid "No keyring was chosen. Exit."
 msgstr "ƒL[ƒŠƒ“ƒO‚ª‘I‘ð‚³‚ê‚Ä‚Ü‚¹‚ñBI—¹B"
 
 # c:\oss\winpt\src\wptGPG.cpp:872
-#: Src/wptGPG.cpp:927
+#: Src/wptGPG.cpp:909
 msgid "Overwrite old public keyring?"
 msgstr "ŒÃ‚¢ŒöŠJŒ®‚ðã‘‚«‚µ‚Ü‚·‚©H"
 
 # c:\oss\winpt\src\wptGPG.cpp:877 c:\oss\winpt\src\wptGPG.cpp:896
-#: Src/wptGPG.cpp:932 Src/wptGPG.cpp:951
+#: Src/wptGPG.cpp:915 Src/wptGPG.cpp:936
 msgid "Could not copy file."
 msgstr "ƒtƒ@ƒCƒ‹‚ðƒRƒs[‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
 # c:\oss\winpt\src\wptGPG.cpp:883
-#: Src/wptGPG.cpp:938
-msgid "Please choose your secret keyring"
+#: Src/wptGPG.cpp:921
+#, fuzzy
+msgid "Please choose your Secret Keyring"
 msgstr "”é–§ƒL[ƒŠƒ“ƒO‚ð‘I‚ñ‚Å‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptGPG.cpp:891
-#: Src/wptGPG.cpp:946
+#: Src/wptGPG.cpp:930
 msgid "Overwrite old secret keyring?"
 msgstr "ŒÃ‚¢”é–§ƒL[ƒŠƒ“ƒO‚ðã‘‚«‚µ‚Ü‚·‚©H"
 
 # c:\oss\winpt\src\wptGPG.cpp:942 c:\oss\winpt\src\wptGPG.cpp:1004
-#: Src/wptGPG.cpp:996 Src/wptGPG.cpp:1086 Src/wptGPG.cpp:1099
+#: Src/wptGPG.cpp:980 Src/wptGPG.cpp:1069 Src/wptGPG.cpp:1082
 msgid "Backup"
 msgstr "ƒoƒbƒNƒAƒbƒv"
 
 # c:\oss\winpt\src\wptGPG.cpp:942
-#: Src/wptGPG.cpp:996
+#: Src/wptGPG.cpp:980
 #, c-format
 msgid "Backup keyring \"%s\" failed"
 msgstr "ˆÈ‰º‚̃oƒbƒNƒAƒbƒvƒL[ƒŠƒ“ƒO‚ª \"%s\" Ž¸”s‚µ‚Ü‚µ‚½B"
 
-#: Src/wptGPG.cpp:1087
+#: Src/wptGPG.cpp:1070
 #, c-format
 msgid ""
 "The backup drive '%s' does not seems to accessable.\n"
@@ -2169,13 +2172,13 @@
 "‘±‚¯‚é‚̂Ƀhƒ‰ƒCƒu‚ð‘}“ü‚Ü‚½‚̓`ƒFƒbƒN‚µ‚Ä‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptGPG.cpp:1004
-#: Src/wptGPG.cpp:1099
+#: Src/wptGPG.cpp:1082
 #, c-format
 msgid "Invalid backup mode %d"
 msgstr "–³Œø‚ȃoƒbƒNƒAƒbƒvƒ‚[ƒh %d"
 
 # c:\oss\winpt\src\wptGPG.cpp:1029
-#: Src/wptGPG.cpp:1126
+#: Src/wptGPG.cpp:1109
 msgid "No GPG error description available."
 msgstr "GPGƒGƒ‰[‚̏ڍׂ͂ ‚è‚Ü‚¹‚ñB"
 
@@ -2266,7 +2269,7 @@
 # c:\oss\winpt\src\wptGPGPrefsDlg.cpp:61
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:1071
 # c:\oss\winpt\src\wptMainProc.cpp:572
-#: Src/wptGPGPrefsDlg.cpp:141 Src/wptKeyManagerDlg.cpp:1675
+#: Src/wptGPGPrefsDlg.cpp:141 Src/wptKeyManagerDlg.cpp:1646
 #: Src/wptMainProc.cpp:598
 msgid "GnuPG Preferences"
 msgstr "GnuPGƒJƒXƒ^ƒ€Ý’è"
@@ -2432,37 +2435,37 @@
 # c:\oss\winpt\src\wptKeysigDlg.cpp:397 c:\oss\winpt\src\wptMainProc.cpp:388
 # c:\oss\winpt\src\wptMainProc.cpp:536
 #: Src/wptGroupManager.cpp:207 Src/wptGroupManager.cpp:238
-#: Src/wptImagelist.cpp:52 Src/wptKeyManager.cpp:153 Src/wptKeyManager.cpp:158
-#: Src/wptKeyManager.cpp:209 Src/wptKeyManager.cpp:252
-#: Src/wptKeyManager.cpp:264 Src/wptKeyManager.cpp:295
-#: Src/wptKeyManager.cpp:300 Src/wptKeyManager.cpp:307
-#: Src/wptKeyManager.cpp:309 Src/wptKeyManager.cpp:330
-#: Src/wptKeyManager.cpp:339 Src/wptKeyManager.cpp:343
-#: Src/wptKeyManager.cpp:363 Src/wptKeyManager.cpp:404
-#: Src/wptKeyManager.cpp:409 Src/wptKeyManager.cpp:412
-#: Src/wptKeyManager.cpp:417 Src/wptKeyManager.cpp:423
-#: Src/wptKeyManager.cpp:428 Src/wptKeyManager.cpp:556
-#: Src/wptKeyManager.cpp:564 Src/wptKeyManager.cpp:670
-#: Src/wptKeyManager.cpp:699 Src/wptKeyManager.cpp:708
-#: Src/wptKeyManager.cpp:719 Src/wptKeyManager.cpp:745
-#: Src/wptKeyManager.cpp:772 Src/wptKeyManager.cpp:779
-#: Src/wptKeyManager.cpp:803 Src/wptKeyManager.cpp:808
-#: Src/wptKeyManager.cpp:828 Src/wptKeyManager.cpp:883
-#: Src/wptKeyManager.cpp:888 Src/wptKeyManager.cpp:948
-#: Src/wptKeyManager.cpp:978 Src/wptKeyManagerDlg.cpp:1162
-#: Src/wptKeyManagerDlg.cpp:1175 Src/wptKeyManagerDlg.cpp:1185
-#: Src/wptKeyManagerDlg.cpp:1473 Src/wptKeyManagerDlg.cpp:1495
-#: Src/wptKeyManagerDlg.cpp:1514 Src/wptKeyManagerDlg.cpp:1522
-#: Src/wptKeyManagerDlg.cpp:1532 Src/wptKeyManagerDlg.cpp:1548
+#: Src/wptImagelist.cpp:52 Src/wptKeyManager.cpp:154 Src/wptKeyManager.cpp:159
+#: Src/wptKeyManager.cpp:210 Src/wptKeyManager.cpp:253
+#: Src/wptKeyManager.cpp:265 Src/wptKeyManager.cpp:296
+#: Src/wptKeyManager.cpp:301 Src/wptKeyManager.cpp:308
+#: Src/wptKeyManager.cpp:310 Src/wptKeyManager.cpp:331
+#: Src/wptKeyManager.cpp:340 Src/wptKeyManager.cpp:344
+#: Src/wptKeyManager.cpp:364 Src/wptKeyManager.cpp:405
+#: Src/wptKeyManager.cpp:410 Src/wptKeyManager.cpp:413
+#: Src/wptKeyManager.cpp:418 Src/wptKeyManager.cpp:424
+#: Src/wptKeyManager.cpp:429 Src/wptKeyManager.cpp:557
+#: Src/wptKeyManager.cpp:565 Src/wptKeyManager.cpp:671
+#: Src/wptKeyManager.cpp:700 Src/wptKeyManager.cpp:709
+#: Src/wptKeyManager.cpp:720 Src/wptKeyManager.cpp:746
+#: Src/wptKeyManager.cpp:773 Src/wptKeyManager.cpp:780
+#: Src/wptKeyManager.cpp:804 Src/wptKeyManager.cpp:809
+#: Src/wptKeyManager.cpp:829 Src/wptKeyManager.cpp:884
+#: Src/wptKeyManager.cpp:889 Src/wptKeyManager.cpp:949
+#: Src/wptKeyManager.cpp:979 Src/wptKeyManager.cpp:1068
+#: Src/wptKeyManagerDlg.cpp:1162 Src/wptKeyManagerDlg.cpp:1175
+#: Src/wptKeyManagerDlg.cpp:1185 Src/wptKeyManagerDlg.cpp:1473
+#: Src/wptKeyManagerDlg.cpp:1495 Src/wptKeyManagerDlg.cpp:1510
+#: Src/wptKeyManagerDlg.cpp:1520 Src/wptKeyManagerDlg.cpp:1528
+#: Src/wptKeyManagerDlg.cpp:1538 Src/wptKeyManagerDlg.cpp:1544
 #: Src/wptKeyManagerDlg.cpp:1554 Src/wptKeyManagerDlg.cpp:1567
-#: Src/wptKeyManagerDlg.cpp:1587 Src/wptKeyManagerDlg.cpp:1616
-#: Src/wptKeyManagerDlg.cpp:1645 Src/wptKeyManagerDlg.cpp:1704
-#: Src/wptKeyManagerDlg.cpp:1722 Src/wptKeyManagerDlg.cpp:1727
-#: Src/wptKeyManagerDlg.cpp:1732 Src/wptKeyManagerDlg.cpp:1821
-#: Src/wptKeyManagerDlg.cpp:1996 Src/wptKeysigDlg.cpp:93
-#: Src/wptKeysigDlg.cpp:105 Src/wptKeysigDlg.cpp:284 Src/wptKeysigDlg.cpp:358
-#: Src/wptKeysigDlg.cpp:367 Src/wptKeysigDlg.cpp:412 Src/wptMainProc.cpp:413
-#: Src/wptMainProc.cpp:561 Src/wptMainProc.cpp:569
+#: Src/wptKeyManagerDlg.cpp:1584 Src/wptKeyManagerDlg.cpp:1616
+#: Src/wptKeyManagerDlg.cpp:1675 Src/wptKeyManagerDlg.cpp:1693
+#: Src/wptKeyManagerDlg.cpp:1698 Src/wptKeyManagerDlg.cpp:1703
+#: Src/wptKeyManagerDlg.cpp:1776 Src/wptKeyManagerDlg.cpp:1913
+#: Src/wptKeysigDlg.cpp:93 Src/wptKeysigDlg.cpp:105 Src/wptKeysigDlg.cpp:284
+#: Src/wptKeysigDlg.cpp:358 Src/wptKeysigDlg.cpp:367 Src/wptKeysigDlg.cpp:412
+#: Src/wptMainProc.cpp:413 Src/wptMainProc.cpp:561 Src/wptMainProc.cpp:569
 msgid "Key Manager"
 msgstr "ƒL[ƒ}ƒl[ƒWƒƒ["
 
@@ -2560,10 +2563,10 @@
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1273
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1303
 # c:\oss\winpt\src\wptKeysigDlg.cpp:191
-#: Src/wptImportList.cpp:263 Src/wptKeyEditDlgs.cpp:237
-#: Src/wptKeyEditDlgs.cpp:1119 Src/wptKeyEditDlgs.cpp:1180
-#: Src/wptKeyEditDlgs.cpp:1434 Src/wptKeyEditDlgs.cpp:1456
-#: Src/wptKeyEditDlgs.cpp:1495 Src/wptKeyEditDlgs.cpp:1528
+#: Src/wptImportList.cpp:262 Src/wptKeyEditDlgs.cpp:255
+#: Src/wptKeyEditDlgs.cpp:1162 Src/wptKeyEditDlgs.cpp:1223
+#: Src/wptKeyEditDlgs.cpp:1478 Src/wptKeyEditDlgs.cpp:1500
+#: Src/wptKeyEditDlgs.cpp:1539 Src/wptKeyEditDlgs.cpp:1572
 #: Src/wptKeylist.cpp:392 Src/wptKeylist.cpp:426 Src/wptKeyPropsDlg.cpp:163
 #: Src/wptKeysigDlg.cpp:143 Src/wptKeysigDlg.cpp:208
 msgid "Revoked"
@@ -2574,26 +2577,26 @@
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:886
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1141
 # c:\oss\winpt\src\wptKeysigDlg.cpp:192
-#: Src/wptImportList.cpp:265 Src/wptKeyEditDlgs.cpp:239
-#: Src/wptKeyEditDlgs.cpp:1117 Src/wptKeyEditDlgs.cpp:1353
+#: Src/wptImportList.cpp:264 Src/wptKeyEditDlgs.cpp:257
+#: Src/wptKeyEditDlgs.cpp:1160 Src/wptKeyEditDlgs.cpp:1397
 #: Src/wptKeylist.cpp:394 Src/wptKeylist.cpp:424 Src/wptKeyPropsDlg.cpp:160
 #: Src/wptKeysigDlg.cpp:142 Src/wptKeysigDlg.cpp:209
 msgid "Expired"
 msgstr "ŠúŒÀØ‚ê"
 
 # c:\oss\winpt\src\wptImportList.cpp:55
-#: Src/wptImportList.cpp:269
+#: Src/wptImportList.cpp:268
 msgid "secret key"
 msgstr "ӎФΨ"
 
 # c:\oss\winpt\src\wptImportList.cpp:57
-#: Src/wptImportList.cpp:271 Src/wptKeylist.cpp:430
+#: Src/wptImportList.cpp:270 Src/wptKeylist.cpp:430
 msgid "public key"
 msgstr "ŒöŠJŒ®"
 
 # c:\oss\winpt\src\wptImportList.cpp:84
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:967
-#: Src/wptImportList.cpp:302 Src/wptKeyEditDlgs.cpp:1197
+#: Src/wptImportList.cpp:301 Src/wptKeyEditDlgs.cpp:1240
 msgid "Invalid user ID"
 msgstr "–³Œø‚ȃ†[ƒU[ID"
 
@@ -2603,7 +2606,7 @@
 # c:\oss\winpt\src\wptKeyserverSearchDlg.cpp:45
 # c:\oss\winpt\src\wptSigList.cpp:41 c:\oss\winpt\src\wptVerifyList.cpp:79
 # c:\oss\winpt\src\wptVerifyList.cpp:88
-#: Src/wptImportList.cpp:351 Src/wptKeylist.cpp:544 Src/wptKeylist.cpp:552
+#: Src/wptImportList.cpp:350 Src/wptKeylist.cpp:544 Src/wptKeylist.cpp:552
 #: Src/wptKeyManagerDlg.cpp:857 Src/wptKeyManagerDlg.cpp:926
 #: Src/wptKeyserverSearchDlg.cpp:53 Src/wptSigList.cpp:51
 #: Src/wptVerifyList.cpp:112
@@ -2614,7 +2617,7 @@
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:474 c:\oss\winpt\src\wptKeylist.cpp:40
 # c:\oss\winpt\src\wptKeylist.cpp:51
 # c:\oss\winpt\src\wptKeyserverSearchDlg.cpp:42
-#: Src/wptImportList.cpp:352 Src/wptKeylist.cpp:546 Src/wptKeylist.cpp:555
+#: Src/wptImportList.cpp:351 Src/wptKeylist.cpp:546 Src/wptKeylist.cpp:555
 #: Src/wptKeyManagerDlg.cpp:860 Src/wptKeyserverSearchDlg.cpp:50
 msgid "Size"
 msgstr "ƒTƒCƒY"
@@ -2625,7 +2628,7 @@
 # c:\oss\winpt\src\wptKeylist.cpp:39 c:\oss\winpt\src\wptKeylist.cpp:49
 # c:\oss\winpt\src\wptKeyserverSearchDlg.cpp:43
 # c:\oss\winpt\src\wptSigList.cpp:45 c:\oss\winpt\src\wptVerifyList.cpp:87
-#: Src/wptImportList.cpp:353 Src/wptKeyEditDlgs.cpp:1041
+#: Src/wptImportList.cpp:352 Src/wptKeyEditDlgs.cpp:1084
 #: Src/wptKeylist.cpp:545 Src/wptKeylist.cpp:553 Src/wptKeyManagerDlg.cpp:858
 #: Src/wptKeyManagerDlg.cpp:949 Src/wptKeyRevokersDlg.cpp:58
 #: Src/wptKeyserverSearchDlg.cpp:51 Src/wptSigList.cpp:55
@@ -2638,21 +2641,21 @@
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:920 c:\oss\winpt\src\wptKeylist.cpp:55
 # c:\oss\winpt\src\wptKeyserverSearchDlg.cpp:44
 # c:\oss\winpt\src\wptSigList.cpp:44
-#: Src/wptImportList.cpp:354 Src/wptKeyEditDlgs.cpp:1042
-#: Src/wptKeyEditDlgs.cpp:1149 Src/wptKeylist.cpp:559
+#: Src/wptImportList.cpp:353 Src/wptKeyEditDlgs.cpp:1085
+#: Src/wptKeyEditDlgs.cpp:1192 Src/wptKeylist.cpp:559
 #: Src/wptKeyManagerDlg.cpp:864 Src/wptKeyManagerDlg.cpp:952
 #: Src/wptKeyserverSearchDlg.cpp:52 Src/wptSigList.cpp:54
 msgid "Creation"
 msgstr "ì¬"
 
 # c:\oss\winpt\src\wptImportList.cpp:135 c:\oss\winpt\src\wptKeylist.cpp:50
-#: Src/wptImportList.cpp:355 Src/wptKeylist.cpp:554
+#: Src/wptImportList.cpp:354 Src/wptKeylist.cpp:554
 #: Src/wptKeyManagerDlg.cpp:859 Src/wptKeyManagerDlg.cpp:951
 msgid "Type"
 msgstr "Ží—Þ"
 
 # c:\oss\winpt\src\wptImportList.cpp:216
-#: Src/wptImportList.cpp:427
+#: Src/wptImportList.cpp:426
 msgid ""
 "It is possible that the ASCII-Armor is damaged\n"
 "and thus a CRC error occurs."
@@ -2682,14 +2685,14 @@
 msgstr "ƒL[ƒLƒƒƒbƒVƒ…"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:142
-#: Src/wptKeyEditDlgs.cpp:210
+#: Src/wptKeyEditDlgs.cpp:228
 msgid "Ultimate"
 msgstr "ÅI“I"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:155
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:883 c:\oss\winpt\src\wptKeylist.cpp:154
 # c:\oss\winpt\src\wptKeylist.cpp:703
-#: Src/wptKeyEditDlgs.cpp:225 Src/wptKeyEditDlgs.cpp:1114
+#: Src/wptKeyEditDlgs.cpp:243 Src/wptKeyEditDlgs.cpp:1157
 #: Src/wptKeylist.cpp:235 Src/wptKeylist.cpp:354
 msgid "Never"
 msgstr "‚Í‚¸‚Í‚È‚¢"
@@ -2697,17 +2700,17 @@
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:144
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:166
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:890
-#: Src/wptKeyEditDlgs.cpp:241 Src/wptKeyEditDlgs.cpp:1121
+#: Src/wptKeyEditDlgs.cpp:259 Src/wptKeyEditDlgs.cpp:1164
 msgid "OK"
 msgstr "OK"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:186
-#: Src/wptKeyEditDlgs.cpp:266
+#: Src/wptKeyEditDlgs.cpp:282
 msgid "user ID"
 msgstr "ƒ†[ƒU[ID"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:186
-#: Src/wptKeyEditDlgs.cpp:267
+#: Src/wptKeyEditDlgs.cpp:283
 #, c-format
 msgid ""
 "Could not get key information for: \"%s\":\n"
@@ -2715,7 +2718,7 @@
 msgstr "ƒL[‚̏î•ñ‚ðˆÈ‰º‚ɑ΂µ‚ÄŽæ‚èo‚·‚±‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½: \"%s\"%s"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:223
-#: Src/wptKeyEditDlgs.cpp:342
+#: Src/wptKeyEditDlgs.cpp:358
 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 "
@@ -2726,7 +2729,7 @@
 "‚·B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:224
-#: Src/wptKeyEditDlgs.cpp:343
+#: Src/wptKeyEditDlgs.cpp:359
 msgid ""
 "Pick an image to use for your photo ID.\n"
 "The image must be a JPEG file."
@@ -2736,7 +2739,7 @@
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:225
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:320
-#: Src/wptKeyEditDlgs.cpp:344 Src/wptKeyEditDlgs.cpp:446
+#: Src/wptKeyEditDlgs.cpp:360 Src/wptKeyEditDlgs.cpp:448
 #: Src/wptKeysignDlg.cpp:286
 msgid "Passphrase"
 msgstr "ƒpƒXƒtƒŒ[ƒY"
@@ -2746,12 +2749,12 @@
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:260
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:275
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:695
-#: Src/wptKeyEditDlgs.cpp:346
+#: Src/wptKeyEditDlgs.cpp:362
 msgid "Add Photo ID"
 msgstr "ƒtƒHƒg‚ð’ljÁ‚·‚é"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:241
-#: Src/wptKeyEditDlgs.cpp:362
+#: Src/wptKeyEditDlgs.cpp:377
 msgid "Select Image File"
 msgstr "‰æ‘œƒtƒ@ƒCƒ‹‚ð‘I‘ð"
 
@@ -2760,25 +2763,25 @@
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:260
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:275
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:695
-#: Src/wptKeyEditDlgs.cpp:366 Src/wptKeyEditDlgs.cpp:376
-#: Src/wptKeyEditDlgs.cpp:382 Src/wptKeyEditDlgs.cpp:388
-#: Src/wptKeyEditDlgs.cpp:402 Src/wptKeyEditDlgs.cpp:904
+#: Src/wptKeyEditDlgs.cpp:381 Src/wptKeyEditDlgs.cpp:391
+#: Src/wptKeyEditDlgs.cpp:397 Src/wptKeyEditDlgs.cpp:409
+#: Src/wptKeyEditDlgs.cpp:917
 msgid "Add Photo"
 msgstr "ƒtƒHƒg‚ð’ljÁ‚·‚é"
 
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:141
-#: Src/wptKeyEditDlgs.cpp:367
+#: Src/wptKeyEditDlgs.cpp:382
 #, c-format
 msgid "'%s' is not a valid JPEG file."
 msgstr "ŽŸ‚̃tƒ@ƒCƒ‹'%s'‚ª—LŒø‚ÈJPEG‚Å‚Í‚ ‚è‚Ü‚¹‚ñB"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:248
-#: Src/wptKeyEditDlgs.cpp:376 Src/wptKeyRevokeDlg.cpp:142
+#: Src/wptKeyEditDlgs.cpp:391 Src/wptKeyRevokeDlg.cpp:149
 msgid "Please enter a file name."
 msgstr "ƒtƒ@ƒCƒ‹–¼‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:252
-#: Src/wptKeyEditDlgs.cpp:380
+#: Src/wptKeyEditDlgs.cpp:395
 msgid ""
 "The JPEG is really large.\n"
 "Are you sure you want to use it?"
@@ -2786,13 +2789,8 @@
 "JPEG‚Í–{“–‚É‘½‚«‚Å‚·‚æB\n"
 "Žg—p‚·‚邱‚ƂɊԈႢ‚ª‚ ‚è‚Ü‚¹‚ñ‚©H"
 
-# c:\oss\winpt\src\wptKeyEditDlgs.cpp:260
-#: Src/wptKeyEditDlgs.cpp:388 Src/wptPassphraseDlg.cpp:99
-msgid "Please enter a passphrase."
-msgstr "ƒpƒXƒtƒŒ[ƒY‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B"
-
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:281
-#: Src/wptKeyEditDlgs.cpp:407
+#: Src/wptKeyEditDlgs.cpp:414
 msgid "Photo successfully added."
 msgstr "ƒtƒHƒg‚ª³‚µ‚­’ljÁ‚³‚ê‚Ü‚µ‚½B"
 
@@ -2811,10 +2809,10 @@
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:167
 # c:\oss\winpt\src\wptOwnertrustDlg.cpp:75
 # c:\oss\winpt\src\wptOwnertrustDlg.cpp:89
-#: Src/wptKeyEditDlgs.cpp:408 Src/wptKeyEditDlgs.cpp:489
-#: Src/wptKeyEditDlgs.cpp:571 Src/wptKeyEditDlgs.cpp:740
-#: Src/wptKeyEditDlgs.cpp:1458 Src/wptKeyEditDlgs.cpp:1530
-#: Src/wptKeyEditDlgs.cpp:1615 Src/wptKeyEditDlgs.cpp:1795
+#: Src/wptKeyEditDlgs.cpp:415 Src/wptKeyEditDlgs.cpp:484
+#: Src/wptKeyEditDlgs.cpp:565 Src/wptKeyEditDlgs.cpp:742
+#: Src/wptKeyEditDlgs.cpp:1502 Src/wptKeyEditDlgs.cpp:1574
+#: Src/wptKeyEditDlgs.cpp:1659 Src/wptKeyEditDlgs.cpp:1841
 #: Src/wptKeygenDlg.cpp:496 Src/wptKeygenDlg.cpp:612
 #: Src/wptKeyPropsDlg.cpp:357 Src/wptOwnertrustDlg.cpp:124
 #: Src/wptOwnertrustDlg.cpp:136
@@ -2822,12 +2820,12 @@
 msgstr "GnuPG‚̏ó‘Ô"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:318
-#: Src/wptKeyEditDlgs.cpp:444
+#: Src/wptKeyEditDlgs.cpp:446
 msgid "Appointing a key as designated revoker cannot be undone."
 msgstr "ƒL[‚𖳌ø‰»‚«‚Ì‚¤Žw’肳‚ꂽŒãAŒ³‚É–ß‚³‚ê‚Ü‚¹‚ñB"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:319
-#: Src/wptKeyEditDlgs.cpp:445
+#: Src/wptKeyEditDlgs.cpp:447
 msgid "Public key"
 msgstr "ŒöŠJŒ®"
 
@@ -2835,9 +2833,8 @@
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:342
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:358
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:708
-#: Src/wptKeyEditDlgs.cpp:448 Src/wptKeyEditDlgs.cpp:464
-#: Src/wptKeyEditDlgs.cpp:470 Src/wptKeyEditDlgs.cpp:483
-#: Src/wptKeyEditDlgs.cpp:917
+#: Src/wptKeyEditDlgs.cpp:450 Src/wptKeyEditDlgs.cpp:466
+#: Src/wptKeyEditDlgs.cpp:478 Src/wptKeyEditDlgs.cpp:948
 msgid "Add Revoker"
 msgstr "–³Œø‰»‚«‚Ì‚¤‚ð’ljÁ‚·‚é"
 
@@ -2846,43 +2843,35 @@
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1324
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1365
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1415
-#: Src/wptKeyEditDlgs.cpp:464 Src/wptKeyEditDlgs.cpp:1490
-#: Src/wptKeyEditDlgs.cpp:1547 Src/wptKeyEditDlgs.cpp:1592
-#: Src/wptKeyEditDlgs.cpp:1734 Src/wptKeyEditDlgs.cpp:1765
-#: Src/wptKeyEditDlgs.cpp:1935
+#: Src/wptKeyEditDlgs.cpp:466 Src/wptKeyEditDlgs.cpp:1534
+#: Src/wptKeyEditDlgs.cpp:1591 Src/wptKeyEditDlgs.cpp:1636
+#: Src/wptKeyEditDlgs.cpp:1780 Src/wptKeyEditDlgs.cpp:1811
+#: Src/wptKeyEditDlgs.cpp:1979
 msgid "Please select a user ID."
 msgstr "ƒ†[ƒU[ID‚ð‘I‚ñ‚Å‚­‚¾‚³‚¢B"
 
-# c:\oss\winpt\src\wptKeyEditDlgs.cpp:342
-# c:\oss\winpt\src\wptKeyRevokeDlg.cpp:118
-# c:\oss\winpt\src\wptKeygenDlg.cpp:222
-#: Src/wptKeyEditDlgs.cpp:470 Src/wptKeygenDlg.cpp:457
-#: Src/wptKeyRevokeDlg.cpp:150
-msgid "Please enter the passphrase."
-msgstr "ƒpƒXƒtƒŒ[ƒY‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B"
-
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:363
-#: Src/wptKeyEditDlgs.cpp:488
+#: Src/wptKeyEditDlgs.cpp:483
 msgid "Revoker successfully addded."
 msgstr "–³Œø‰»‚·‚é‚«‚Ì‚¤‚̒ljÁ‚ɐ¬Œ÷‚µ‚Ü‚µ‚½B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:394
-#: Src/wptKeyEditDlgs.cpp:520
+#: Src/wptKeyEditDlgs.cpp:516
 msgid "Add new User ID"
 msgstr "V‚µ‚¢ƒ†[ƒU[ID‚ð’ljÁ‚·‚é"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:396
-#: Src/wptKeyEditDlgs.cpp:522
+#: Src/wptKeyEditDlgs.cpp:518
 msgid "&Email"
 msgstr "“dŽqƒ[ƒ‹(&E)"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:397
-#: Src/wptKeyEditDlgs.cpp:523
+#: Src/wptKeyEditDlgs.cpp:519
 msgid "&Comment"
 msgstr "ƒRƒƒ“ƒg(&C)"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:414
-#: Src/wptKeyEditDlgs.cpp:538
+#: Src/wptKeyEditDlgs.cpp:535
 msgid "Please enter a name (min. 5 chars.)"
 msgstr "–¼‘O‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B(Å’á’·‚³‚T•¶Žš)"
 
@@ -2890,14 +2879,14 @@
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:418
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:423
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:427
-#: Src/wptKeyEditDlgs.cpp:538 Src/wptKeyEditDlgs.cpp:542
-#: Src/wptKeyEditDlgs.cpp:547 Src/wptKeyEditDlgs.cpp:551
-#: Src/wptKeyEditDlgs.cpp:569
+#: Src/wptKeyEditDlgs.cpp:535 Src/wptKeyEditDlgs.cpp:539
+#: Src/wptKeyEditDlgs.cpp:544 Src/wptKeyEditDlgs.cpp:548
+#: Src/wptKeyEditDlgs.cpp:563
 msgid "UserID"
 msgstr "ƒ†[ƒU[ID"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:418
-#: Src/wptKeyEditDlgs.cpp:542
+#: Src/wptKeyEditDlgs.cpp:539
 msgid ""
 "Please enter the email address in the email field and not in the name field"
 msgstr ""
@@ -2905,23 +2894,23 @@
 "‚¢B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:423
-#: Src/wptKeyEditDlgs.cpp:547
+#: Src/wptKeyEditDlgs.cpp:544
 msgid "Please enter an email address."
 msgstr "“dŽqƒ[ƒ‹ƒAƒhƒŒƒX‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:427
-#: Src/wptKeyEditDlgs.cpp:551
+#: Src/wptKeyEditDlgs.cpp:548
 msgid "Invalid email address."
 msgstr "–³Œø‚ȃ[ƒ‹ƒAƒhƒŒƒXB"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:615
-#: Src/wptKeyEditDlgs.cpp:571
+#: Src/wptKeyEditDlgs.cpp:565
 msgid "user ID successfully added."
 msgstr "ƒ†[ƒU[ID‚𐳂µ‚­’ljÁ‚µ‚Ü‚µ‚½B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:472
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:656
-#: Src/wptKeyEditDlgs.cpp:651 Src/wptKeyEditDlgs.cpp:846
+#: Src/wptKeyEditDlgs.cpp:651 Src/wptKeyEditDlgs.cpp:855
 msgid "Add new Subkey"
 msgstr "V‚µ‚¢ƒTƒuƒL[‚ð’ljÁ‚·‚é"
 
@@ -2941,7 +2930,7 @@
 msgstr "ƒL[‚Ì—LŒøŠúŒÀ"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:508
-#: Src/wptKeyEditDlgs.cpp:699
+#: Src/wptKeyEditDlgs.cpp:700
 msgid "Please select one entry."
 msgstr "‘I‘ð€–Ú‚©‚çˆê‚‘I‚ñ‚Å‚­‚¾‚³‚¢B"
 
@@ -2954,18 +2943,18 @@
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:540
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:637
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:676
-#: Src/wptKeyEditDlgs.cpp:699 Src/wptKeyEditDlgs.cpp:705
-#: Src/wptKeyEditDlgs.cpp:738 Src/wptKeyEditDlgs.cpp:828
+#: Src/wptKeyEditDlgs.cpp:701 Src/wptKeyEditDlgs.cpp:707
+#: Src/wptKeyEditDlgs.cpp:739 Src/wptKeyEditDlgs.cpp:838
 msgid "Add Subkey"
 msgstr "ƒTƒuƒL[‚ð’ljÁ‚·‚é"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:521
-#: Src/wptKeyEditDlgs.cpp:704
+#: Src/wptKeyEditDlgs.cpp:706
 msgid "DSS uses a fixed keysize of 1024. Size changed."
 msgstr "DSS‚͌ŒèƒL[ƒTƒCƒY1024‚ªŽg—p‚µ‚Ü‚·BƒTƒCƒY‚ª•ÏX‚³‚ê‚Ü‚µ‚½B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:678
-#: Src/wptKeyEditDlgs.cpp:740
+#: Src/wptKeyEditDlgs.cpp:741
 msgid "Subkey successfully added."
 msgstr "ƒTƒuƒL[‚ª³‚µ‚­’ljÁ‚³‚ê‚Ü‚µ‚½B"
 
@@ -2978,40 +2967,40 @@
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1196
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1258
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:918
-#: Src/wptKeyEditDlgs.cpp:768 Src/wptKeyEditDlgs.cpp:828
-#: Src/wptKeyEditDlgs.cpp:903 Src/wptKeyEditDlgs.cpp:917
-#: Src/wptKeyEditDlgs.cpp:982 Src/wptKeyEditDlgs.cpp:1342
-#: Src/wptKeyEditDlgs.cpp:1417 Src/wptKeyEditDlgs.cpp:1479
-#: Src/wptKeyManagerDlg.cpp:1521
+#: Src/wptKeyEditDlgs.cpp:769 Src/wptKeyEditDlgs.cpp:837
+#: Src/wptKeyEditDlgs.cpp:916 Src/wptKeyEditDlgs.cpp:948
+#: Src/wptKeyEditDlgs.cpp:1028 Src/wptKeyEditDlgs.cpp:1386
+#: Src/wptKeyEditDlgs.cpp:1461 Src/wptKeyEditDlgs.cpp:1523
+#: Src/wptKeyManagerDlg.cpp:1527
 msgid "There is no secret key available!"
 msgstr "”é–§Œ®‚ª‚ ‚è‚Ü‚¹‚ñB"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:579
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:599
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:613
-#: Src/wptKeyEditDlgs.cpp:768 Src/wptKeyEditDlgs.cpp:785
+#: Src/wptKeyEditDlgs.cpp:770 Src/wptKeyEditDlgs.cpp:788
 msgid "Add user ID"
 msgstr "ƒ†[ƒU[ID‚ð’ljÁ‚·‚é"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1177
-#: Src/wptKeyEditDlgs.cpp:886
+#: Src/wptKeyEditDlgs.cpp:895
 msgid "Preferred keyserver successfully set."
 msgstr "Šó–]‚̃L[ƒT[ƒo[‚ª³‚µ‚­Ý’è‚Å‚«‚Ü‚µ‚½B"
 
 # c:\oss\winpt\src\wptKeyEditOwnertrustDlg.cpp:58
 # c:\oss\winpt\src\wptKeyPropsDlg.cpp:189
-#: Src/wptKeyEditDlgs.cpp:936 Src/wptKeyEditOwnertrustDlg.cpp:55
+#: Src/wptKeyEditDlgs.cpp:982 Src/wptKeyEditOwnertrustDlg.cpp:55
 #: Src/wptKeyPropsDlg.cpp:349
 msgid "Change Ownertrust"
 msgstr "Š—LŽÒ‚̐M—Š(ownertrust)‚̕ύX"
 
 # c:\oss\winpt\src\wptKeyManager.cpp:156
-#: Src/wptKeyEditDlgs.cpp:939 Src/wptKeyManager.cpp:207
+#: Src/wptKeyEditDlgs.cpp:985 Src/wptKeyManager.cpp:208
 msgid "Key status changed."
 msgstr "ƒL[‚̏ó‘Ô‚ª•ÏX‚³‚ê‚Ä‚¢‚Ü‚·B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:753
-#: Src/wptKeyEditDlgs.cpp:988
+#: Src/wptKeyEditDlgs.cpp:1034
 msgid ""
 "Cannot change passphrase because the key\n"
 "is protected with the IDEA encryption algorithm."
@@ -3020,19 +3009,19 @@
 "IDEAˆÃ†‰»ƒAƒ‹ƒSƒŠƒYƒ€‚ŕی삳‚ê‚Ä‚¢‚é‚©‚ç‚Å‚·B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:760
-#: Src/wptKeyEditDlgs.cpp:995
+#: Src/wptKeyEditDlgs.cpp:1041
 msgid "Current (old) Passphrase"
 msgstr "ƒJƒŒƒ“ƒg(ŒÃ‚¢)ƒpƒXƒtƒŒ[ƒY"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:764
-#: Src/wptKeyEditDlgs.cpp:999
+#: Src/wptKeyEditDlgs.cpp:1045
 msgid "New Passphrase"
 msgstr "V‚µ‚¢ƒpƒXƒtƒŒ[ƒY"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:771
 # c:\oss\winpt\src\wptKeygenDlg.cpp:250
 # c:\oss\winpt\src\wptPassphraseDlg.cpp:153
-#: Src/wptKeyEditDlgs.cpp:1006 Src/wptPassphraseDlg.cpp:191
+#: Src/wptKeyEditDlgs.cpp:1052 Src/wptPassphraseDlg.cpp:191
 msgid ""
 "The passphrase contains 8-bit characters.\n"
 "It is not suggested to use charset specific characters."
@@ -3041,55 +3030,55 @@
 "'charset' ê—p•¶Žš‚ÌŽg—p‚͐„‘E‚µ‚Ä‚¨‚è‚Ü‚¹‚ñB"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:789
-#: Src/wptKeyEditDlgs.cpp:1021
+#: Src/wptKeyEditDlgs.cpp:1064
 msgid "Change Passwd"
 msgstr "ƒpƒXƒ[ƒh‚̕ύX"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:791
-#: Src/wptKeyEditDlgs.cpp:1023
+#: Src/wptKeyEditDlgs.cpp:1066
 msgid "Passphrase successfully changed."
 msgstr "ƒpƒXƒtƒŒ[ƒY‚̕ύX‚͐³‚µ‚­‚Å‚«‚Ü‚µ‚½B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:806
-#: Src/wptKeyEditDlgs.cpp:1040 Src/wptKeyManagerDlg.cpp:865
+#: Src/wptKeyEditDlgs.cpp:1083 Src/wptKeyManagerDlg.cpp:865
 msgid "Description"
 msgstr "Ú×"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:809
-#: Src/wptKeyEditDlgs.cpp:1043
+#: Src/wptKeyEditDlgs.cpp:1086
 msgid "Expires"
 msgstr "ŠúŒÀØ‚ê‚·‚é"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:823
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:926
-#: Src/wptKeyEditDlgs.cpp:1057 Src/wptKeyEditDlgs.cpp:1155
+#: Src/wptKeyEditDlgs.cpp:1100 Src/wptKeyEditDlgs.cpp:1198
 msgid "Could not find key."
 msgstr "ƒL[‚ðŒ©‚Â‚¯‚邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:829
-#: Src/wptKeyEditDlgs.cpp:1064
+#: Src/wptKeyEditDlgs.cpp:1107
 msgid "No subkey(s) found."
 msgstr "ƒTƒuƒL[‚ªŒ©‚‚©‚è‚Ü‚¹‚ñB"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:918 c:\oss\winpt\src\wptKeylist.cpp:42
 # c:\oss\winpt\src\wptKeylist.cpp:53
-#: Src/wptKeyEditDlgs.cpp:1146 Src/wptKeylist.cpp:548 Src/wptKeylist.cpp:557
+#: Src/wptKeyEditDlgs.cpp:1189 Src/wptKeylist.cpp:548 Src/wptKeylist.cpp:557
 #: Src/wptKeyManagerDlg.cpp:862
 msgid "Validity"
 msgstr "—LŒø«"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:396
-#: Src/wptKeyEditDlgs.cpp:1148
+#: Src/wptKeyEditDlgs.cpp:1191
 msgid "Email"
 msgstr "“dŽqƒ[ƒ‹"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:932
-#: Src/wptKeyEditDlgs.cpp:1161
+#: Src/wptKeyEditDlgs.cpp:1204
 msgid "No user ID(s) found."
 msgstr "ƒ†[ƒU[ID‚ªŒ©‚‚©‚è‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1043
-#: Src/wptKeyEditDlgs.cpp:1255
+#: Src/wptKeyEditDlgs.cpp:1298
 #, fuzzy
 msgid ""
 "ADDUID   \t\tadd a user ID\r\n"
@@ -3130,22 +3119,22 @@
 "ENABLE    \t\tƒL[‚ð—LŒø‚É‚·‚é\r\n"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1064
-#: Src/wptKeyEditDlgs.cpp:1276
+#: Src/wptKeyEditDlgs.cpp:1319
 msgid "Key Edit Help"
 msgstr "ƒL[•ÒW‚̃wƒ‹ƒv"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1078
-#: Src/wptKeyEditDlgs.cpp:1292
+#: Src/wptKeyEditDlgs.cpp:1335
 msgid "Primary key can not be deleted!"
 msgstr "ƒvƒ‰ƒCƒ}ƒŠ[ƒL[‚ªíœ‚Å‚«‚Ü‚¹‚ñI"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1086
-#: Src/wptKeyEditDlgs.cpp:1300
+#: Src/wptKeyEditDlgs.cpp:1343
 msgid "Primary subkey can not be deleted!"
 msgstr "ƒvƒ‰ƒCƒ}ƒŠ[ƒTƒuƒL[‚ªíœ‚Å‚«‚Ü‚¹‚ñI"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1092
-#: Src/wptKeyEditDlgs.cpp:1306
+#: Src/wptKeyEditDlgs.cpp:1351
 #, c-format
 msgid ""
 "\"Subkey %s.\"\n"
@@ -3163,16 +3152,16 @@
 "‚±‚̃TƒuƒL[‚ð–{“–‚ɍ폜‚µ‚Ü‚·‚©H"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1109
-#: Src/wptKeyEditDlgs.cpp:1318
+#: Src/wptKeyEditDlgs.cpp:1363
 msgid "Delete Subkey"
 msgstr "ƒTƒuƒL[‚̍폜"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1113
-#: Src/wptKeyEditDlgs.cpp:1322
+#: Src/wptKeyEditDlgs.cpp:1367
 msgid "Subkey successfully deleted."
 msgstr "ƒTƒuƒL[‚𐳂µ‚­íœ‚³‚ê‚Ü‚µ‚½B"
 
-#: Src/wptKeyEditDlgs.cpp:1354
+#: Src/wptKeyEditDlgs.cpp:1398
 msgid ""
 "Key already expired.\n"
 "\n"
@@ -3185,22 +3174,22 @@
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1146
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1149
 # c:\oss\winpt\src\wptKeygenDlg.cpp:303 c:\oss\winpt\src\wptKeygenDlg.cpp:306
-#: Src/wptKeyEditDlgs.cpp:1363 Src/wptKeyEditDlgs.cpp:1366
+#: Src/wptKeyEditDlgs.cpp:1407 Src/wptKeyEditDlgs.cpp:1410
 msgid "Key Expiration Date"
 msgstr "ƒL[‚Ì—LŒøŠúŒÀ"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1173
-#: Src/wptKeyEditDlgs.cpp:1389
+#: Src/wptKeyEditDlgs.cpp:1433
 msgid "Expire Subkey"
 msgstr "ŠúŒÀ‚̐؂ꂽƒTƒuƒL["
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1177
-#: Src/wptKeyEditDlgs.cpp:1395
+#: Src/wptKeyEditDlgs.cpp:1439
 msgid "Subkey expire date successfully set."
 msgstr "ƒTƒuƒL[‚ÌŽ¸Œø“ú‚ª³‚µ‚­Ý’è‚Å‚«‚Ü‚µ‚½B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1206
-#: Src/wptKeyEditDlgs.cpp:1426
+#: Src/wptKeyEditDlgs.cpp:1470
 msgid ""
 "No subkeys were found, if you want to revoke the\n"
 "whole key, please use the Key Manager command directly.\n"
@@ -3213,37 +3202,37 @@
 "‚±‚̃Rƒ}ƒ“ƒh‚̓Vƒ“ƒOƒ‹ƒTƒuƒL[‚݂̂𖳌ø‚É‚·‚邽‚ߎg‚¦‚Ü‚·B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1215
-#: Src/wptKeyEditDlgs.cpp:1435
+#: Src/wptKeyEditDlgs.cpp:1479
 msgid "Key already revoked."
 msgstr "ƒL[‚ªŠù‚É–³Œø‚Æ‚È‚Á‚Ä‚¢‚Ü‚·B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1235
-#: Src/wptKeyEditDlgs.cpp:1454
+#: Src/wptKeyEditDlgs.cpp:1498
 msgid "Revoke Subkey"
 msgstr "ƒTƒuƒL[‚𖳌ø‚·‚é"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1239
-#: Src/wptKeyEditDlgs.cpp:1458
+#: Src/wptKeyEditDlgs.cpp:1502
 msgid "Subkey successfully revoked."
 msgstr "ƒTƒuƒL[‚𐳂µ‚­–³Œø‚É‚µ‚Ü‚µ‚½B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1258
-#: Src/wptKeyEditDlgs.cpp:1480
+#: Src/wptKeyEditDlgs.cpp:1524
 msgid "Revoke user ID"
 msgstr "ƒ†[ƒU[ID‚𖳌ø‚·‚é"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1263
-#: Src/wptKeyEditDlgs.cpp:1485
+#: Src/wptKeyEditDlgs.cpp:1529
 msgid "Key has only one user ID."
 msgstr "ƒL[‚̃†[ƒU[ID‚ª‚ЂƂ‚µ‚©‚ ‚è‚Ü‚¹‚ñB"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1274
-#: Src/wptKeyEditDlgs.cpp:1496
+#: Src/wptKeyEditDlgs.cpp:1540
 msgid "This user ID has been already revoked."
 msgstr "‚±‚̃†[ƒU[ID‚ª–³Œø‚Æ‚È‚Á‚Ä‚¢‚Ü‚·B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1279
-#: Src/wptKeyEditDlgs.cpp:1502
+#: Src/wptKeyEditDlgs.cpp:1546
 #, c-format
 msgid ""
 "user ID \"%s\".\n"
@@ -3255,51 +3244,57 @@
 "‚±‚̃†[ƒU[ID‚ð–{“–‚É–³Œø‚É‚µ‚Ü‚·‚©H"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1258
-#: Src/wptKeyEditDlgs.cpp:1526
+#: Src/wptKeyEditDlgs.cpp:1570
 msgid "Revoke User ID"
 msgstr "ƒ†[ƒU[ID‚𖳌ø‚·‚é"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1305
-#: Src/wptKeyEditDlgs.cpp:1530
+#: Src/wptKeyEditDlgs.cpp:1574
 msgid "User ID successfully revoked"
 msgstr "ƒ†[ƒU[ID‚𖳌ø‚É‚·‚邱‚Æ‚ª¬Œ÷‚µ‚Ü‚µ‚½"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1535
-#: Src/wptKeyEditDlgs.cpp:1572
+#: Src/wptKeyEditDlgs.cpp:1616
 #, fuzzy
 msgid "Could not set user ID preferences"
 msgstr "ƒ†[ƒU[IDƒEƒBƒ“ƒhƒvƒƒV[ƒWƒƒ‚ðƒZƒbƒg‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1388
-#: Src/wptKeyEditDlgs.cpp:1612
+#: Src/wptKeyEditDlgs.cpp:1656
 msgid "Primary"
 msgstr "ƒvƒ‰ƒCƒ}ƒŠ["
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1391
-#: Src/wptKeyEditDlgs.cpp:1615
+#: Src/wptKeyEditDlgs.cpp:1659
 msgid "User ID successfully flagged"
 msgstr "ƒ†[ƒU[ID‚ɐ³‚µ‚­ƒtƒ‰ƒO‚ð‚‚¯‚Ü‚µ‚½B"
 
-#: Src/wptKeyEditDlgs.cpp:1701
+#: Src/wptKeyEditDlgs.cpp:1746
 msgid "No preferences available."
 msgstr "ƒJƒXƒ^ƒ€Ý’肪‚ ‚è‚Ü‚¹‚ñB"
 
-#: Src/wptKeyEditDlgs.cpp:1707
+#: Src/wptKeyEditDlgs.cpp:1752
 msgid "MDC feature"
 msgstr "MDC‚«‚Ì‚¤"
 
+# c:\oss\winpt\src\wptKeyEditDlgs.cpp:186
+#: Src/wptKeyEditDlgs.cpp:1754
+#, fuzzy
+msgid "user ID:"
+msgstr "ƒ†[ƒU[ID"
+
 # c:\oss\winpt\src\wptKeyeditSetPrefDlg.cpp:112
-#: Src/wptKeyEditDlgs.cpp:1709 Src/wptKeyeditSetPrefDlg.cpp:116
+#: Src/wptKeyEditDlgs.cpp:1755 Src/wptKeyeditSetPrefDlg.cpp:116
 msgid "Key Preferences"
 msgstr "ƒL[‚̃JƒXƒ^ƒ€Ý’è"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1411
-#: Src/wptKeyEditDlgs.cpp:1760
+#: Src/wptKeyEditDlgs.cpp:1806
 msgid "Primary user ID can not be deleted!"
 msgstr "ƒvƒ‰ƒCƒ}ƒŠ[ƒ†[ƒU[ID‚ªíœ‚Å‚«‚Ü‚¹‚ñI"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1420
-#: Src/wptKeyEditDlgs.cpp:1771
+#: Src/wptKeyEditDlgs.cpp:1817
 #, fuzzy, c-format
 msgid ""
 "user ID \"%s\".\n"
@@ -3313,21 +3308,21 @@
 "‚±‚̃†[ƒU[ID‚ð–{“–‚ɍ폜‚µ‚Ü‚·‚©H"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1438
-#: Src/wptKeyEditDlgs.cpp:1791
+#: Src/wptKeyEditDlgs.cpp:1837
 msgid "Delete user ID"
 msgstr "ƒ†[ƒU[ID‚ðíœ‚·‚éB"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1442
-#: Src/wptKeyEditDlgs.cpp:1795
+#: Src/wptKeyEditDlgs.cpp:1841
 msgid "User ID successfully deleted"
 msgstr "ƒ†[ƒU[ID‚𐳂µ‚­íœ‚µ‚Ü‚µ‚½B"
 
-#: Src/wptKeyEditDlgs.cpp:1902
+#: Src/wptKeyEditDlgs.cpp:1946
 msgid "Finished to compact key."
 msgstr ""
 
 # c:\oss\winpt\src\wptKeyManager.cpp:1064
-#: Src/wptKeyEditDlgs.cpp:1939
+#: Src/wptKeyEditDlgs.cpp:1983
 #, fuzzy
 msgid "Do you really want to make this sig exportable?"
 msgstr ""
@@ -3336,32 +3331,32 @@
 "%s"
 
 # c:\oss\winpt\src\wptKeysignDlg.cpp:325
-#: Src/wptKeyEditDlgs.cpp:1963 Src/wptKeysignDlg.cpp:395
+#: Src/wptKeyEditDlgs.cpp:2007 Src/wptKeysignDlg.cpp:395
 msgid "Key successfully signed."
 msgstr "ƒL[‚ð–¼‚·‚邱‚Ƃɐ¬Œ÷‚µ‚Ü‚µ‚½B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1525
-#: Src/wptKeyEditDlgs.cpp:2021
+#: Src/wptKeyEditDlgs.cpp:2065
 msgid "Could not set subkey window procedure."
 msgstr "ƒTƒuƒL[ƒEƒBƒ“ƒhƒvƒƒV[ƒWƒƒ‚ðƒZƒbƒg‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1535
-#: Src/wptKeyEditDlgs.cpp:2034
+#: Src/wptKeyEditDlgs.cpp:2078
 msgid "Could not set user ID window procedure."
 msgstr "ƒ†[ƒU[IDƒEƒBƒ“ƒhƒvƒƒV[ƒWƒƒ‚ðƒZƒbƒg‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:397
-#: Src/wptKeyEditDlgs.cpp:2043
+#: Src/wptKeyEditDlgs.cpp:2087
 msgid "Command>"
 msgstr "ƒRƒ}ƒ“ƒh"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1561
-#: Src/wptKeyEditDlgs.cpp:2075
+#: Src/wptKeyEditDlgs.cpp:2119
 msgid "Please select a command."
 msgstr "ƒRƒ}ƒ“ƒh‚ð‘I‚ñ‚Å‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1566
-#: Src/wptKeyEditDlgs.cpp:2079
+#: Src/wptKeyEditDlgs.cpp:2123
 msgid "This command cannot be used with PGP 2 (v3) keys.\n"
 msgstr "‚±‚̃Rƒ}ƒ“ƒh‚Í PGP 2 (v3) ‚̃L[‚ÆŽg‚¦‚Ü‚¹‚ñB\n"
 
@@ -3422,7 +3417,7 @@
 # c:\oss\winpt\src\wptOwnertrustDlg.cpp:86
 #: Src/wptKeyEditOwnertrustDlg.cpp:88 Src/wptKeyEditOwnertrustDlg.cpp:95
 #: Src/wptKeyEditOwnertrustDlg.cpp:104 Src/wptKeyManagerDlg.cpp:920
-#: Src/wptKeyManagerDlg.cpp:1771 Src/wptKeyPropsDlg.cpp:289
+#: Src/wptKeyManagerDlg.cpp:1742 Src/wptKeyPropsDlg.cpp:289
 #: Src/wptOwnertrustDlg.cpp:97 Src/wptOwnertrustDlg.cpp:121
 #: Src/wptOwnertrustDlg.cpp:133
 msgid "Ownertrust"
@@ -3460,7 +3455,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:1636 Src/wptPassphraseDlg.cpp:109
+#: Src/wptKeyManagerDlg.cpp:1607 Src/wptPassphraseDlg.cpp:109
 msgid "Key Generation"
 msgstr "ƒL[‚̍쐬"
 
@@ -3587,6 +3582,13 @@
 msgid "Please do NOT enter the email address in the comment field."
 msgstr "ƒRƒƒ“ƒg‚Ì•”•ª‚É“dŽqƒ[ƒ‹ƒAƒhƒŒƒX‚ð“ü‚ê‚È‚¢‚Å‚­‚¾‚³‚¢B"
 
+# c:\oss\winpt\src\wptKeyEditDlgs.cpp:342
+# c:\oss\winpt\src\wptKeyRevokeDlg.cpp:118
+# c:\oss\winpt\src\wptKeygenDlg.cpp:222
+#: Src/wptKeygenDlg.cpp:457 Src/wptKeyRevokeDlg.cpp:157
+msgid "Please enter the passphrase."
+msgstr "ƒpƒXƒtƒŒ[ƒY‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B"
+
 # c:\oss\winpt\src\wptKeygenDlg.cpp:292 c:\oss\winpt\src\wptKeygenDlg.cpp:416
 #: Src/wptKeygenDlg.cpp:496 Src/wptKeygenDlg.cpp:612
 msgid "Key Generation completed"
@@ -3639,7 +3641,7 @@
 # c:\oss\winpt\src\wptKeygenDlg.cpp:389 c:\oss\winpt\src\wptKeygenDlg.cpp:413
 #: 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:1659
+#: Src/wptKeyManagerDlg.cpp:1630
 msgid "Key Generation Wizard"
 msgstr "ƒL[ì¬‚̃EƒBƒU[ƒh"
 
@@ -3809,7 +3811,7 @@
 msgstr "”é–§Œ®‚̈ꗗ‚Ђ傤"
 
 # c:\oss\winpt\src\wptKeyManager.cpp:97
-#: Src/wptKeyManager.cpp:152
+#: Src/wptKeyManager.cpp:153
 msgid ""
 "This key has expired!\n"
 "Key check failed."
@@ -3818,7 +3820,7 @@
 "ƒL[‚̃`ƒFƒbƒN‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"
 
 # c:\oss\winpt\src\wptKeyManager.cpp:100
-#: Src/wptKeyManager.cpp:157
+#: Src/wptKeyManager.cpp:158
 msgid ""
 "This key has been revoked by its owner!\n"
 "Key check failed."
@@ -3827,29 +3829,29 @@
 "ƒL[‚̃`ƒFƒbƒN‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"
 
 # c:\oss\winpt\src\wptKeyManager.cpp:298
-#: Src/wptKeyManager.cpp:299
+#: Src/wptKeyManager.cpp:300
 msgid "Only one secret key can be exported."
 msgstr "ˆêŒÂ‚̔閧Œ®‚Ì‚Ý‚ªƒGƒLƒXƒ|[ƒg‚©‚Ì‚¤‚Å‚·B"
 
 # c:\oss\winpt\src\wptKeyManager.cpp:317
-#: Src/wptKeyManager.cpp:310
+#: Src/wptKeyManager.cpp:311
 #, c-format
 msgid "Secret key successfully saved in '%s'."
 msgstr "”é–§Œ®‚ð'%s'‚É•Û‘¶‚µ‚Ü‚µ‚½B"
 
 # c:\oss\winpt\src\wptKeyManager.cpp:360
-#: Src/wptKeyManager.cpp:344
+#: Src/wptKeyManager.cpp:345
 #, c-format
 msgid "Key(s) successfully saved in '%s'."
 msgstr "ƒL[‚𐳂µ‚­'%s'‚É•Û‘¶‚·‚邱‚Æ‚ªo—ˆ‚Ü‚µ‚½B"
 
 # c:\oss\winpt\src\wptKeyManager.cpp:412
-#: Src/wptKeyManager.cpp:416
+#: Src/wptKeyManager.cpp:417
 msgid "No valid OpenPGP keys found."
 msgstr "—LŒø‚ÈOpenPGPƒf[ƒ^‚ªŒ©‚‚©‚è‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
 # c:\oss\winpt\src\wptKeyManager.cpp:416
-#: Src/wptKeyManager.cpp:421
+#: Src/wptKeyManager.cpp:422
 msgid ""
 "The key you want to import is dash escacped.\n"
 "Do you want to extract the key?"
@@ -3858,13 +3860,13 @@
 "ƒL[‚ðˆø‚­o‚µ‚½‚¢‚Å‚µ‚傤‚©H"
 
 # c:\oss\winpt\src\wptKeyManager.cpp:422
-#: Src/wptKeyManager.cpp:427
+#: Src/wptKeyManager.cpp:428
 msgid "Cannot import dash escaped OpenPGP keys."
 msgstr "ƒ_ƒbƒVƒ…ƒGƒXƒP[ƒvƒhOpenPGPƒL[‚ðƒCƒ“ƒ|[ƒg‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñB"
 
 # c:\oss\winpt\src\wptFileManager.cpp:1285
 # c:\oss\winpt\src\wptKeyManager.cpp:513
-#: Src/wptKeyManager.cpp:456 Src/wptKeyManager.cpp:584
+#: Src/wptKeyManager.cpp:457 Src/wptKeyManager.cpp:585
 msgid ""
 "Key without a self signature was dectected!\n"
 "(This key is NOT usable for encryption, etc)\n"
@@ -3875,51 +3877,51 @@
 # c:\oss\winpt\src\wptKeyManager.cpp:444
 # c:\oss\winpt\src\wptKeyManager.cpp:455
 # c:\oss\winpt\src\wptKeyManager.cpp:468
-#: Src/wptKeyManager.cpp:485 Src/wptKeyManager.cpp:492
-#: Src/wptKeyManager.cpp:501
+#: Src/wptKeyManager.cpp:486 Src/wptKeyManager.cpp:493
+#: Src/wptKeyManager.cpp:502
 msgid "Key Import HTTP"
 msgstr "ƒL[ƒCƒ“ƒ|[ƒg‚ÌHTTP"
 
 # c:\oss\winpt\src\wptKeyManager.cpp:444
-#: Src/wptKeyManager.cpp:485
+#: Src/wptKeyManager.cpp:486
 #, c-format
 msgid "Invalid HTTP URL: %s"
 msgstr "–³Œø‚ÈHTTP URL: %s"
 
 # c:\oss\winpt\src\wptMAPI.cpp:348
-#: Src/wptKeyManager.cpp:502
+#: Src/wptKeyManager.cpp:503
 #, fuzzy, c-format
 msgid "Could not fetch key from URL: %s"
 msgstr "'%s' ‚ɑ΂µ‚ăL[‚ðŒ©‚Â‚¯‚邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:1082
-#: Src/wptKeyManager.cpp:531
+#: Src/wptKeyManager.cpp:532
 msgid "Choose Name of the Key File"
 msgstr "ƒL[ƒtƒ@ƒCƒ‹‚É–¼‘O‚ð‘I‘ð‚·‚é"
 
 # c:\oss\winpt\src\wptFileManagerDlg.cpp:182
 # c:\oss\winpt\src\wptFileManagerDlg.cpp:190
 # c:\oss\winpt\src\wptKeyManager.cpp:490
-#: Src/wptKeyManager.cpp:544
+#: Src/wptKeyManager.cpp:545
 msgid "File Import"
 msgstr "ƒtƒ@ƒCƒ‹‚̃Cƒ“ƒ|[ƒg"
 
 # c:\oss\winpt\src\wptKeyManager.cpp:500
-#: Src/wptKeyManager.cpp:555
+#: Src/wptKeyManager.cpp:556
 msgid "Could not read key-data from file."
 msgstr "ƒL[‚̃f[ƒ^‚ðƒtƒ@ƒCƒ‹‚©‚ç“Ç‚Þ‚±‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
 # c:\oss\winpt\src\wptKeyManager.cpp:733
-#: Src/wptKeyManager.cpp:675
+#: Src/wptKeyManager.cpp:676
 msgid "Do you really want to confirm each key?"
 msgstr "‚·‚ׂẴL[‚ð–{“–‚ÉŠm”F‚µ‚½‚¢‚Å‚·‚©H"
 
-#: Src/wptKeyManager.cpp:676
+#: Src/wptKeyManager.cpp:677
 msgid "Delete Confirmation"
 msgstr "Šm”F‚ðíœ‚·‚é"
 
 # c:\oss\winpt\src\wptKeyManager.cpp:1092
-#: Src/wptKeyManager.cpp:700
+#: Src/wptKeyManager.cpp:701
 #, c-format
 msgid ""
 "Do you really want to delete this key?\n"
@@ -3931,7 +3933,7 @@
 "%s"
 
 # c:\oss\winpt\src\wptKeyManager.cpp:577
-#: Src/wptKeyManager.cpp:709
+#: Src/wptKeyManager.cpp:710
 #, c-format
 msgid ""
 "Do you really want to delete this KEY PAIR?\n"
@@ -3949,7 +3951,7 @@
 "%s"
 
 # c:\oss\winpt\src\wptKeyManager.cpp:585
-#: Src/wptKeyManager.cpp:716
+#: Src/wptKeyManager.cpp:717
 msgid ""
 "The actual secret key is stored on a smartcard.\n"
 "Only the public key and the secret key \n"
@@ -3960,41 +3962,61 @@
 "íœ‚³‚ê‚Ü‚·B\n"
 
 # c:\oss\winpt\src\wptKeyManager.cpp:636
-#: Src/wptKeyManager.cpp:780
+#: Src/wptKeyManager.cpp:781
 #, fuzzy, c-format
 msgid "Do you really want to send '0x%s' to keyserver %s?"
 msgstr "'%s' ‚ð–{“–‚ɃL[ƒT[ƒo[ %s? ‚É‘—M‚µ‚½‚¢‚Å‚·‚©H"
 
 # c:\oss\winpt\src\wptKeyManager.cpp:661
-#: Src/wptKeyManager.cpp:802
+#: Src/wptKeyManager.cpp:803
 msgid "Please only select one key."
 msgstr "‚ЂƂ‚̃L[‚¾‚¯‚ð‘I‚ñ‚Å‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptKeyManager.cpp:733
-#: Src/wptKeyManager.cpp:882
+#: Src/wptKeyManager.cpp:883
 msgid "Do you really want to refresh all keys in the keyring?"
 msgstr "ƒL[ƒŠƒ“ƒO‚É‚ ‚é‚·‚ׂẴL[‚ð–{“–‚ɃŠƒtƒŒƒbƒVƒ…‚µ‚½‚¢‚Å‚·‚ªH"
 
 # c:\oss\winpt\src\wptKeyManager.cpp:727
-#: Src/wptKeyManager.cpp:887
+#: Src/wptKeyManager.cpp:888
 msgid "Could not connect to keyserver, abort procedure."
 msgstr "ƒL[ƒT[ƒo[‚ɐڑ±‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B’†Ž~‚µ‚Ü‚·‚©H"
 
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:304
-#: Src/wptKeyManager.cpp:962
+#: Src/wptKeyManager.cpp:963
 msgid "Search"
 msgstr "ŒŸõ"
 
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:304
-#: Src/wptKeyManager.cpp:962
+#: Src/wptKeyManager.cpp:963
 msgid "Search for:"
 msgstr "ŒŸõ‚·‚邱‚ƁF"
 
-#: Src/wptKeyManager.cpp:973
+#: Src/wptKeyManager.cpp:974
 #, c-format
 msgid "String pattern \"%s\" not found."
 msgstr "ŽŸ‚Ì•¶Žšƒpƒ^[ƒ“‚ª\"%s\" Œ©‚‚©‚è‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
+# c:\oss\winpt\src\wptKeyRevokeDlg.cpp:74
+#: Src/wptKeyManager.cpp:1045 Src/wptKeyRevokeDlg.cpp:89
+msgid "0. No reason specified"
+msgstr "0. ——R‚Í–¾Ž¦‚³‚ê‚Ä‚¢‚Ü‚¹‚ñB"
+
+# c:\oss\winpt\src\wptKeyRevokeDlg.cpp:75
+#: Src/wptKeyManager.cpp:1046 Src/wptKeyRevokeDlg.cpp:90
+msgid "1. Key has been compromised"
+msgstr "1. ƒL[‚͐M—p‚Å‚«‚È‚­‚È‚Á‚Ä‚¢‚Ü‚·B"
+
+# c:\oss\winpt\src\wptKeyRevokeDlg.cpp:76
+#: Src/wptKeyManager.cpp:1047 Src/wptKeyRevokeDlg.cpp:91
+msgid "2. Key is superseded"
+msgstr "2. ƒL[‚Í”pŽ~‚³‚ê‚Ä‚¢‚Ü‚·B"
+
+# c:\oss\winpt\src\wptKeyRevokeDlg.cpp:77
+#: Src/wptKeyManager.cpp:1048 Src/wptKeyRevokeDlg.cpp:92
+msgid "3. Key is no longer used"
+msgstr "3. ƒL[‚Í‚à‚Í‚âŽg‚í‚ê‚Ä‚¢‚Ü‚¹‚ñ "
+
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:272
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:763
 #: Src/wptKeyManagerDlg.cpp:435 Src/wptKeyManagerDlg.cpp:970
@@ -4094,7 +4116,7 @@
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:578
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:958
 # c:\oss\winpt\src\wptKeyTrustPathDlg.cpp:126
-#: Src/wptKeyManagerDlg.cpp:935 Src/wptKeyManagerDlg.cpp:1562
+#: Src/wptKeyManagerDlg.cpp:935 Src/wptKeyManagerDlg.cpp:1549
 #: Src/wptKeyTrustPathDlg.cpp:130
 msgid "List Trust Path"
 msgstr "ƒgƒ‰ƒXƒgƒpƒXˆê——‚Ђ傤"
@@ -4331,7 +4353,7 @@
 # c:\oss\winpt\src\wptKeysignDlg.cpp:318
 # c:\oss\winpt\src\wptKeysignDlg.cpp:320
 # c:\oss\winpt\src\wptKeysignDlg.cpp:322
-#: Src/wptKeyManagerDlg.cpp:1507 Src/wptKeysignDlg.cpp:259
+#: Src/wptKeyManagerDlg.cpp:1503 Src/wptKeysignDlg.cpp:259
 #: Src/wptKeysignDlg.cpp:277 Src/wptKeysignDlg.cpp:356
 #: Src/wptKeysignDlg.cpp:371 Src/wptKeysignDlg.cpp:388
 #: Src/wptKeysignDlg.cpp:393 Src/wptKeysignDlg.cpp:395
@@ -4339,7 +4361,7 @@
 msgstr "ƒL[‚ð–¼‚·‚é"
 
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:926
-#: Src/wptKeyManagerDlg.cpp:1531
+#: Src/wptKeyManagerDlg.cpp:1519
 msgid "Key already revoked!"
 msgstr "ƒL[‚ª‚·‚Å‚É–³Œø‚Æ‚È‚Á‚Ä‚¢‚Ü‚·B"
 
@@ -4350,31 +4372,31 @@
 # c:\oss\winpt\src\wptKeyRevokeDlg.cpp:118
 # c:\oss\winpt\src\wptKeyRevokeDlg.cpp:140
 # c:\oss\winpt\src\wptKeyRevokeDlg.cpp:151
-#: Src/wptKeyManagerDlg.cpp:1543 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
+#: Src/wptKeyManagerDlg.cpp:1533 Src/wptKeyRevokeDlg.cpp:72
+#: Src/wptKeyRevokeDlg.cpp:82 Src/wptKeyRevokeDlg.cpp:145
+#: Src/wptKeyRevokeDlg.cpp:150 Src/wptKeyRevokeDlg.cpp:158
+#: Src/wptKeyRevokeDlg.cpp:169 Src/wptKeyRevokeDlg.cpp:174
 msgid "Key Revocation Cert"
 msgstr "ƒL[‚Ì–³Œø‰»Ø–¾‘"
 
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:951
-#: Src/wptKeyManagerDlg.cpp:1553
+#: Src/wptKeyManagerDlg.cpp:1543
 msgid "It does not make any sense with a key pair!"
 msgstr "ƒL[ƒyƒA‚Ƃ̈Ӗ¡‚ª•s–¾‚Å‚·I"
 
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:973
-#: Src/wptKeyManagerDlg.cpp:1580
+#: Src/wptKeyManagerDlg.cpp:1560
 msgid "Key Signature List"
 msgstr "ƒL[–¼‚̈ꗗ‚Ђ傤"
 
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:992
 # c:\oss\winpt\src\wptKeyPropsDlg.cpp:113
-#: Src/wptKeyManagerDlg.cpp:1602 Src/wptKeyPropsDlg.cpp:285
+#: Src/wptKeyManagerDlg.cpp:1575 Src/wptKeyPropsDlg.cpp:285
 msgid "Key Properties"
 msgstr "ƒL[‚Ì‘®«"
 
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:1007
-#: Src/wptKeyManagerDlg.cpp:1613
+#: Src/wptKeyManagerDlg.cpp:1585
 msgid ""
 "This is only useful when the keyring has been modified (sign a key...).\n"
 "Do you really want to reload the keycache?"
@@ -4383,34 +4405,34 @@
 "–{“–‚ɃL[ƒLƒƒƒbƒVƒ…‚ðƒŠƒ[ƒh‚µ‚Ü‚·‚©H"
 
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:1045
-#: Src/wptKeyManagerDlg.cpp:1644
+#: Src/wptKeyManagerDlg.cpp:1615
 msgid "Smart Card support is not available."
 msgstr "ƒXƒ}[ƒgƒJ[ƒh‚ɑΉž‚µ‚Ü‚¹‚ñB"
 
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:1065
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:298
-#: Src/wptKeyManagerDlg.cpp:1667 Src/wptKeyserverDlg.cpp:585
+#: Src/wptKeyManagerDlg.cpp:1638 Src/wptKeyserverDlg.cpp:585
 msgid "Keyserver Access"
 msgstr "ƒL[ƒT[ƒo[‚̃AƒNƒZƒX"
 
 # c:\oss\winpt\src\wptGPGOptDlg.cpp:46
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:1077
-#: Src/wptKeyManagerDlg.cpp:1684
+#: Src/wptKeyManagerDlg.cpp:1655
 msgid "GnuPG Options"
 msgstr "GnuPGƒIƒvƒVƒ‡ƒ“"
 
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:1119
-#: Src/wptKeyManagerDlg.cpp:1726
+#: Src/wptKeyManagerDlg.cpp:1697
 msgid "There is no corresponding secret key for this key."
 msgstr "‚±‚̃L[‚ɑ΂µ‚Ă̔閧Œ®‚ª‚ ‚è‚Ü‚¹‚ñB"
 
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:1124
-#: Src/wptKeyManagerDlg.cpp:1731
+#: Src/wptKeyManagerDlg.cpp:1702
 msgid "You can only export one secret key."
 msgstr "ˆêŒÂ‚̔閧Œ®‚µ‚©ƒGƒLƒXƒ|[ƒg‚Å‚«‚Ü‚¹‚ñB"
 
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:1128
-#: Src/wptKeyManagerDlg.cpp:1736
+#: Src/wptKeyManagerDlg.cpp:1707
 msgid ""
 "This operation will export your *SECRET* key!\n"
 "\n"
@@ -4429,12 +4451,12 @@
 "‚±‚̃L[‚ð–{“–‚ɃGƒLƒXƒ|[ƒg‚µ‚Ü‚·‚©H"
 
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:1133
-#: Src/wptKeyManagerDlg.cpp:1741
+#: Src/wptKeyManagerDlg.cpp:1712
 msgid "WARNING"
 msgstr "Œx"
 
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:1205
-#: Src/wptKeyManagerDlg.cpp:1820
+#: Src/wptKeyManagerDlg.cpp:1775
 msgid "No key was selected, select all by default."
 msgstr "ƒL[‚ª‘I‘ð‚³‚ê‚Ä‚Ü‚¹‚ñB‹K’è‘I‘ð‚Í All ‚Å‚·B"
 
@@ -4534,68 +4556,48 @@
 msgid "Key Revokers"
 msgstr "ƒL[‚𖳌ø‰»‚«‚Ì‚¤"
 
-# c:\oss\winpt\src\wptKeyRevokeDlg.cpp:69
-#: Src/wptKeyRevokeDlg.cpp:90
-msgid ""
-"Please move this certificate to a medium where it can bestored in a safe "
-"place (floppy, CDR, etc..).\n"
-"If an attacker gets access to this certificate he can use it to render your "
-"key unusable!"
-msgstr ""
-"‚±‚̏ؖ¾‘‚ðˆÀ‘S‚È‹L‰¯”}‘Ì(ƒtƒƒbƒsACD‚Ȃǁj‚Ɉړ®‚µ‚Ä‚­‚¾‚³‚¢B‚à‚µƒnƒbƒJ["
-"‚Í‚±‚̏ؖ¾‘‚ðŽè‚É“ü‚ê‚邱‚Æ‚ª‚Å‚«‚½‚çA‚ ‚È‚½‚̃L[‚ðŽg—p‚Ó‚©‚Ì‚¤‚É‚·‚邱‚Æ"
-"‚ª‚Å‚«‚Ü‚·I"
-
 # c:\oss\winpt\src\wptImportList.cpp:187
-#: Src/wptKeyRevokeDlg.cpp:102
+#: Src/wptKeyRevokeDlg.cpp:84
 msgid "Reason for revocation"
 msgstr "–³Œø‰»‚·‚闝—R"
 
-#: Src/wptKeyRevokeDlg.cpp:103
+#: Src/wptKeyRevokeDlg.cpp:85
 msgid "Optional description text"
 msgstr "Ú×‚ð‚ ‚ç‚í‚·ƒIƒvƒVƒ‡ƒ“ƒeƒLƒXƒg"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:151
-#: Src/wptKeyRevokeDlg.cpp:104
+#: Src/wptKeyRevokeDlg.cpp:86
 msgid "&Passphrase"
 msgstr "ƒpƒXƒtƒŒ[ƒY(&P)"
 
-#: Src/wptKeyRevokeDlg.cpp:105
+#: Src/wptKeyRevokeDlg.cpp:87
 msgid "Output file"
 msgstr "o—̓tƒ@ƒCƒ‹"
 
-# c:\oss\winpt\src\wptKeyRevokeDlg.cpp:74
-#: Src/wptKeyRevokeDlg.cpp:107
-msgid "0. No reason specified"
-msgstr "0. ——R‚Í–¾Ž¦‚³‚ê‚Ä‚¢‚Ü‚¹‚ñB"
+# c:\oss\winpt\src\wptKeyRevokeDlg.cpp:69
+#: Src/wptKeyRevokeDlg.cpp:112
+msgid ""
+"Please move this certificate to a medium where it can bestored in a safe "
+"place (floppy, CDR, etc..).\n"
+"If an attacker gets access to this certificate he can use it to render your "
+"key unusable!"
+msgstr ""
+"‚±‚̏ؖ¾‘‚ðˆÀ‘S‚È‹L‰¯”}‘Ì(ƒtƒƒbƒsACD‚Ȃǁj‚Ɉړ®‚µ‚Ä‚­‚¾‚³‚¢B‚à‚µƒnƒbƒJ["
+"‚Í‚±‚̏ؖ¾‘‚ðŽè‚É“ü‚ê‚邱‚Æ‚ª‚Å‚«‚½‚çA‚ ‚È‚½‚̃L[‚ðŽg—p‚Ó‚©‚Ì‚¤‚É‚·‚邱‚Æ"
+"‚ª‚Å‚«‚Ü‚·I"
 
-# c:\oss\winpt\src\wptKeyRevokeDlg.cpp:75
-#: Src/wptKeyRevokeDlg.cpp:108
-msgid "1. Key has been compromised"
-msgstr "1. ƒL[‚͐M—p‚Å‚«‚È‚­‚È‚Á‚Ä‚¢‚Ü‚·B"
-
-# c:\oss\winpt\src\wptKeyRevokeDlg.cpp:76
-#: Src/wptKeyRevokeDlg.cpp:109
-msgid "2. Key is superseded"
-msgstr "2. ƒL[‚Í”pŽ~‚³‚ê‚Ä‚¢‚Ü‚·B"
-
-# c:\oss\winpt\src\wptKeyRevokeDlg.cpp:77
-#: Src/wptKeyRevokeDlg.cpp:110
-msgid "3. Key is no longer used"
-msgstr "3. ƒL[‚Í‚à‚Í‚âŽg‚í‚ê‚Ä‚¢‚Ü‚¹‚ñ "
-
 # c:\oss\winpt\src\wptKeyRevokeDlg.cpp:98
-#: Src/wptKeyRevokeDlg.cpp:128
+#: Src/wptKeyRevokeDlg.cpp:135
 msgid "Choose File to save the Certificate"
 msgstr "Ø–¾‘‚ð•Û‘¶‚·‚éƒtƒ@ƒCƒ‹‚ð‘I‘ð‚·‚é"
 
 # c:\oss\winpt\src\wptKeyRevokeDlg.cpp:107
-#: Src/wptKeyRevokeDlg.cpp:137
+#: Src/wptKeyRevokeDlg.cpp:144
 msgid "Please select a reason."
 msgstr "——R‚ð‘I‚ñ‚Å‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptKeyRevokeDlg.cpp:148
-#: Src/wptKeyRevokeDlg.cpp:172
+#: Src/wptKeyRevokeDlg.cpp:173
 msgid "Revocation certificate generated."
 msgstr "–³Œø‰»Ø–¾‘‚ªì¬‚³‚ê‚Ü‚µ‚½B"
 
@@ -5441,6 +5443,11 @@
 msgid "Enter Passphrase"
 msgstr "ƒpƒXƒtƒŒ[ƒY‚ð“ü—Í‚·‚é"
 
+# c:\oss\winpt\src\wptKeyEditDlgs.cpp:260
+#: Src/wptPassphraseDlg.cpp:99
+msgid "Please enter a passphrase."
+msgstr "ƒpƒXƒtƒŒ[ƒY‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B"
+
 # c:\oss\winpt\src\wptKeygenDlg.cpp:227
 #: Src/wptPassphraseDlg.cpp:106
 msgid ""

Modified: trunk/Src/ChangeLog
===================================================================
--- trunk/Src/ChangeLog	2006-04-11 06:38:11 UTC (rev 199)
+++ trunk/Src/ChangeLog	2006-04-17 09:12:50 UTC (rev 200)
@@ -1,3 +1,26 @@
+2006-04-16  Timo Schulz  <ts at g10code.de>
+
+	* wptHTTP.cpp (getErrorCode): New.
+	(connect): Store winsock error code.
+	* wptGPGMEData.cpp (is_armor_header): New.
+	* wptGPG.cpp (check_gnupg_engine): Free context.
+	(gnupg_backup_keyrings): Do not use global vars.
+	* wptGPGUtil.cpp (gpg_export_seckey): Export in ascii format.
+	
+2006-04-15  Timo Schulz  <ts at g10code.de>
+
+	* wptKeyManager.cpp (km_get_key): New.
+	(km_key_show_revoc_info): New.
+	* wptKeyRevokeDlg.cpp (key_revoke_dlg): Cleanups.
+	(on_init_dialog): New.
+	* wptKeyManagerDlg.cpp (key_manager_dlg_proc): Factour
+	out some common code and use km_get_key() instead.
+	* wptKeyEditDlgs.cpp (do_init_keylist): Change second
+	param type. Change all callers.
+	* wptKeyEdit.cpp (addNotation): New.
+	* wptKeyEditCB.cpp (editkey_command_handler): Remove 'step'
+	param everywhere. Change all callers.
+	
 2006-04-09  Timo Schulz  <ts at g10code.de>
 
 	* wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Only return true

Modified: trunk/Src/WinPT-en.rc
===================================================================
--- trunk/Src/WinPT-en.rc	2006-04-11 06:38:11 UTC (rev 199)
+++ trunk/Src/WinPT-en.rc	2006-04-17 09:12:50 UTC (rev 200)
@@ -93,7 +93,7 @@
     LTEXT           "&Email address:",IDC_KEYWIZARD_EMAILINF,15,125,46,8
     EDITTEXT        IDC_KEYWIZARD_EMAIL,67,123,190,12,ES_AUTOHSCROLL
     CONTROL         "&Prefer RSA keys",IDC_KEYWIZARD_USERSA,"Button",
-                    BS_AUTOCHECKBOX | WS_TABSTOP,12,146,100,10
+                    BS_AUTOCHECKBOX | WS_TABSTOP,15,146,100,10
     DEFPUSHBUTTON   "&OK",IDOK,117,156,50,14
     PUSHBUTTON      "&Cancel",IDCANCEL,169,156,50,14
     PUSHBUTTON      "E&xpert",IDC_KEYWIZARD_EXPERT,221,156,46,14
@@ -152,25 +152,26 @@
                     ES_READONLY
 END
 
-IDD_WINPT_KEYEDIT_SHOWPREF DIALOG DISCARDABLE  0, 0, 144, 141
+IDD_WINPT_KEYEDIT_SHOWPREF DIALOG DISCARDABLE  0, 0, 144, 154
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
 CAPTION "Key Preferences"
 FONT 8, "MS Sans Serif"
 BEGIN
-    LTEXT           "Key Info Dummy",IDC_SHOWPREF_INFO,4,3,130,8
-    GROUPBOX        "Preferences",IDC_SHOWPREF_PREFINF,2,31,136,87
-    LTEXT           "Ciphers",IDC_STATIC,8,42,24,8
-    LISTBOX         IDC_SHOWPREF_CIPHERS,8,50,61,60,LBS_NOINTEGRALHEIGHT | 
+    LTEXT           "Key Info Dummy",IDC_SHOWPREF_INFO,4,16,130,8
+    GROUPBOX        "Preferences",IDC_SHOWPREF_PREFINF,2,44,136,87
+    LTEXT           "Ciphers",IDC_STATIC,8,55,24,8
+    LISTBOX         IDC_SHOWPREF_CIPHERS,8,63,61,60,LBS_NOINTEGRALHEIGHT | 
                     WS_VSCROLL | WS_TABSTOP
-    LTEXT           "Digests",IDC_STATIC,72,42,24,8
-    LISTBOX         IDC_SHOWPREF_HASH,72,51,61,27,LBS_NOINTEGRALHEIGHT | 
+    LTEXT           "Digests",IDC_STATIC,72,55,24,8
+    LISTBOX         IDC_SHOWPREF_HASH,72,64,61,27,LBS_NOINTEGRALHEIGHT | 
                     WS_VSCROLL | WS_TABSTOP
-    LTEXT           "Compression",IDC_STATIC,72,80,41,8
-    LISTBOX         IDC_SHOWPREF_ZIP,72,91,61,20,LBS_NOINTEGRALHEIGHT | 
+    LTEXT           "Compression",IDC_STATIC,72,93,41,8
+    LISTBOX         IDC_SHOWPREF_ZIP,72,104,61,20,LBS_NOINTEGRALHEIGHT | 
                     WS_VSCROLL | WS_TABSTOP
-    DEFPUSHBUTTON   "&OK",IDOK,88,122,50,14
+    DEFPUSHBUTTON   "&OK",IDOK,88,135,50,14
     CONTROL         "MDC feature",IDC_SHOWPREF_MDC,"Button",BS_AUTOCHECKBOX | 
-                    BS_FLAT | WS_DISABLED | WS_TABSTOP,4,16,102,10
+                    BS_FLAT | WS_DISABLED | WS_TABSTOP,4,30,102,10
+    LTEXT           "user ID:",IDC_SHOWPREF_UIDHINT,4,3,59,9
 END
 
 IDD_WINPT_LANGUAGE DIALOG DISCARDABLE  0, 0, 149, 74
@@ -223,7 +224,7 @@
         LEFTMARGIN, 2
         RIGHTMARGIN, 140
         TOPMARGIN, 3
-        BOTTOMMARGIN, 138
+        BOTTOMMARGIN, 151
     END
 
     IDD_WINPT_LANGUAGE, DIALOG
@@ -696,8 +697,7 @@
 BEGIN
     LTEXT           "Info",IDC_HKPSEARCH_INFO,6,7,340,11
     CONTROL         "List1",IDC_HKPSEARCH_LIST,"SysListView32",LVS_REPORT | 
-                    LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | 
-                    WS_TABSTOP,5,22,346,111
+                    LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,5,22,346,111
     PUSHBUTTON      "&Receive",IDC_HKPSEARCH_RECV,251,136,47,14
     DEFPUSHBUTTON   "&Cancel",IDOK,301,136,50,14
 END
@@ -1024,7 +1024,7 @@
     DEFPUSHBUTTON   "&Yes",IDYES,122,115,50,14
     PUSHBUTTON      "&No",IDNO,176,115,50,14
     LISTBOX         IDC_SECDEL_FILES,8,10,218,97,LBS_SORT | 
-                    LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
+                    LBS_NOINTEGRALHEIGHT | WS_HSCROLL | WS_TABSTOP
 END
 
 IDD_WINPT_SPACE_SECDEL DIALOG DISCARDABLE  0, 0, 222, 215
@@ -1074,7 +1074,7 @@
     LTEXT           "Decoding data. Please wait...",IDC_STATIC,13,13,107,9
 END
 
-IDD_WINPT_KEYEDIT_ADDREV DIALOG DISCARDABLE  0, 0, 213, 92
+IDD_WINPT_KEYEDIT_ADDREV DIALOG DISCARDABLE  0, 0, 213, 81
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "Add Revoker"
 FONT 8, "MS Sans Serif"
@@ -1085,28 +1085,23 @@
     LTEXT           "Public key",IDC_ADDREV_KEYINF,7,33,53,8
     COMBOBOX        IDC_ADDREV_KEYLIST,63,33,145,54,CBS_DROPDOWNLIST | 
                     WS_VSCROLL | WS_TABSTOP
-    LTEXT           "Passphrase",IDC_ADDREV_PWDINF,7,52,38,8
-    EDITTEXT        IDC_ADDREV_PASS,63,51,90,13,ES_PASSWORD | ES_AUTOHSCROLL
-    DEFPUSHBUTTON   "&OK",IDOK,103,74,50,14
-    PUSHBUTTON      "&Cancel",IDCANCEL,157,74,50,14
+    DEFPUSHBUTTON   "&OK",IDOK,103,62,50,14
+    PUSHBUTTON      "&Cancel",IDCANCEL,157,62,50,14
 END
 
-IDD_WINPT_KEYEDIT_ADDPHOTO DIALOG DISCARDABLE  0, 0, 170, 138
+IDD_WINPT_KEYEDIT_ADDPHOTO DIALOG DISCARDABLE  0, 0, 186, 114
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "Add Photo ID"
 FONT 8, "MS Sans Serif"
 BEGIN
     LTEXT           "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 close to 240x288 is a good size to use.",
-                    IDC_ADDPHOTO_INF,7,5,156,44
+                    IDC_ADDPHOTO_INF,7,5,161,44
     LTEXT           "Pick an image to use for your photo ID.\nThe image must be a JPEG file.",
                     IDC_ADDPHOTO_FILEINF,7,52,156,17
-    EDITTEXT        IDC_ADDPHOTO_FILE,8,73,125,12,ES_AUTOHSCROLL
-    PUSHBUTTON      "...",IDC_ADDPHOTO_SELFILE,137,73,25,12
-    LTEXT           "Passphrase",IDC_ADDPHOTO_PWDINF,9,95,38,8
-    EDITTEXT        IDC_ADDPHOTO_PASS,53,94,107,12,ES_PASSWORD | 
-                    ES_AUTOHSCROLL
-    DEFPUSHBUTTON   "&OK",IDOK,60,119,50,14
-    PUSHBUTTON      "&Cancel",IDCANCEL,114,119,50,14
+    EDITTEXT        IDC_ADDPHOTO_FILE,8,73,142,12,ES_AUTOHSCROLL
+    PUSHBUTTON      "...",IDC_ADDPHOTO_SELFILE,152,73,25,12
+    DEFPUSHBUTTON   "&OK",IDOK,77,94,50,14
+    PUSHBUTTON      "&Cancel",IDCANCEL,130,94,50,14
 END
 
 IDD_WINPT_FILE_MDSUM DIALOG DISCARDABLE  0, 0, 304, 108
@@ -1787,15 +1782,15 @@
         LEFTMARGIN, 4
         RIGHTMARGIN, 208
         TOPMARGIN, 4
-        BOTTOMMARGIN, 88
+        BOTTOMMARGIN, 77
     END
 
     IDD_WINPT_KEYEDIT_ADDPHOTO, DIALOG
     BEGIN
         LEFTMARGIN, 2
-        RIGHTMARGIN, 164
+        RIGHTMARGIN, 180
         TOPMARGIN, 2
-        BOTTOMMARGIN, 133
+        BOTTOMMARGIN, 109
     END
 
     IDD_WINPT_FILE_MDSUM, DIALOG
@@ -1936,8 +1931,8 @@
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 0,11,10,0
- PRODUCTVERSION 0,11,10,0
+ FILEVERSION 0,11,12,0
+ PRODUCTVERSION 0,11,12,0
  FILEFLAGSMASK 0x3fL
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -1955,14 +1950,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.11\0"
+            VALUE "FileVersion", "0.11.12\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.11\0"
+            VALUE "ProductVersion", "0.11.12\0"
             VALUE "SpecialBuild", "\0"
         END
     END
@@ -2168,7 +2163,7 @@
         MENUITEM "Key &Edit",                   ID_KEYCTX_EDIT
         MENUITEM SEPARATOR
         MENUITEM "&Sign",                       ID_KEYCTX_SIGN
-        MENUITEM "&Revoke",                     ID_KEYCTX_REV
+        MENUITEM "&Revoke Cert",                ID_KEYCTX_REV
         MENUITEM "&Delete",                     ID_KEYCTX_DEL
         MENUITEM "&List Signatures",            ID_KEYCTX_LISTSIGS
         MENUITEM "&Enable",                     ID_KEYCTX_ENABLE

Modified: trunk/Src/resource.h
===================================================================
--- trunk/Src/resource.h	2006-04-11 06:38:11 UTC (rev 199)
+++ trunk/Src/resource.h	2006-04-17 09:12:50 UTC (rev 200)
@@ -646,6 +646,7 @@
 #define IDC_ABOUT_AUTHORS               1522
 #define IDC_LANGUAGE_INFO               1523
 #define IDC_LANGUAGE_LIST               1524
+#define IDC_SHOWPREF_UIDHINT            1525
 #define ID_GPG_ENCRYPT                  40003
 #define ID_GPG_DECRYPT                  40004
 #define ID_GPG_SIGN                     40005
@@ -826,7 +827,7 @@
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_NEXT_RESOURCE_VALUE        246
 #define _APS_NEXT_COMMAND_VALUE         40186
-#define _APS_NEXT_CONTROL_VALUE         1525
+#define _APS_NEXT_CONTROL_VALUE         1526
 #define _APS_NEXT_SYMED_VALUE           101
 #endif
 #endif

Modified: trunk/Src/wptCardEdit.cpp
===================================================================
--- trunk/Src/wptCardEdit.cpp	2006-04-11 06:38:11 UTC (rev 199)
+++ trunk/Src/wptCardEdit.cpp	2006-04-17 09:12:50 UTC (rev 200)
@@ -1,5 +1,5 @@
 /* wptCardEdit.cpp - OpenPGP editing interface
- *	Copyright (C) 2005 Timo Schulz
+ *	Copyright (C) 2005, 2006 Timo Schulz
  *
  * This file is part of WinPT.
  *

Modified: trunk/Src/wptCardEditCB.cpp
===================================================================
--- trunk/Src/wptCardEditCB.cpp	2006-04-11 06:38:11 UTC (rev 199)
+++ trunk/Src/wptCardEditCB.cpp	2006-04-17 09:12:50 UTC (rev 200)
@@ -1,5 +1,5 @@
 /* wptCardEditCB.cpp - Card callbacks
- *	Copyright (C) 2003, 2004, 2005 Timo Schulz
+ *	Copyright (C) 2003, 2004, 2005, 2006 Timo Schulz
  *	Copyright (C) 2005 g10 Code GmbH
  *
  * This file is part of WinPT.

Modified: trunk/Src/wptGPG.cpp
===================================================================
--- trunk/Src/wptGPG.cpp	2006-04-11 06:38:11 UTC (rev 199)
+++ trunk/Src/wptGPG.cpp	2006-04-17 09:12:50 UTC (rev 200)
@@ -1,5 +1,5 @@
 /* wptGPG.cpp - GnuPG configuration
- *    	Copyright (C) 2001-2005 Timo Schulz
+ *    	Copyright (C) 2001-2006 Timo Schulz
  *
  * This file is part of WinPT.
  *
@@ -115,21 +115,12 @@
     path = get_gnupg_path ();
     if (!path)
 	return NULL;
-    p = get_reg_entry_gpg ("OptFile");
-    if (p) {
-	nlen = strlen (p) + 4;
-	optfile = new char[nlen + 1];
-	if (!optfile)
-	    BUG (NULL);
-	_snprintf (optfile, nlen, "%s", p);
-    }
-    else {
-	nlen = strlen (path) + 64;
-	optfile = new char[nlen + 1];
-	if( !optfile)
-	    BUG (NULL);
-	_snprintf (optfile, nlen, "%s\\"GPG_CONF, path);
-    }
+    nlen = strlen (path) + 64;
+    optfile = new char[nlen + 1];
+    if (!optfile)
+	BUG (NULL);	
+    _snprintf (optfile, nlen, "%s\\"GPG_CONF, path);
+
     free_if_alloc (path);
     free_if_alloc (p);
     return optfile;
@@ -214,7 +205,7 @@
     while (!gpg_keycache_next_key (sec, 1, &key)) {
 	if (key_is_useable (key) && !get_pubkey (key->subkeys->keyid, &pk)) {
 	    s = key->subkeys->keyid;
-	    if (s)    
+	    if (s)
 		keyid = m_strdup (s+8);
 	    break;
 	}
@@ -234,7 +225,9 @@
     int rc;
     gpg_optfile_t opt;
     gpg_option_t o;
-    char *conf = get_gnupg_cfgfile ();
+    char *conf;
+    
+    conf = get_gnupg_cfgfile ();
     if (!conf)
 	return -1;
     rc = parse_gpg_options (conf, &opt);
@@ -271,21 +264,13 @@
 	return default_key_from_cache (&no_usable);
     }
     e = find_option (opt, "default-key");
+    if (!e)
+	e = find_option (opt, "local-user");
     if (e)
 	keyid = m_strdup (e->val);
-    if (!e) {
-	e = find_option (opt, "local-user");
-	if (e)
-	    keyid = m_strdup (e->val);
-    }
-    if (!e) {
-	e = find_option (opt, "encrypt-to");
-	if (e)
-	    keyid = m_strdup (e->val);
-    }
-    free_if_alloc (optfile);
-    release_gpg_options (opt);    
 
+    free_if_alloc (optfile);
+    release_gpg_options (opt);
     if (!keyid)
 	keyid = default_key_from_cache (&no_usable);
     return keyid;
@@ -332,17 +317,17 @@
     while (buf && *buf != '.' && i < 8)
 	tmp[i++] = *buf++;
     tmp[i] = 0; buf++;
-    *major = atol( tmp );
+    *major = atoi (tmp);
     i=0;
     while (buf && *buf != '.' && i < 8)
 	tmp[i++] = *buf++;
     tmp[i] = 0; buf++;
-    *minor = atol (tmp);
+    *minor = atoi (tmp);
     i=0;
     while (buf && isdigit (*buf) && i < 8)
 	tmp[i++] = *buf++;
     tmp[i] = 0;
-    *patch = atol (tmp);
+    *patch = atoi (tmp);
     return 0;
 }
 
@@ -378,11 +363,12 @@
 	return -1;
     if (strstr (eng, "IDEA"))
 	idea_available = 1;
-    free (eng);
+    safe_free (eng);
     if (parse_version_nr (inf->version, &major, &minor, &patch)) {
 	gpgme_release (ctx);
 	return 1;
     }
+    gpgme_release (ctx);
 
     if (major > need_major)
 	rc = 0;
@@ -405,27 +391,25 @@
 {
     gpg_optfile_t opt;    
     gpg_option_t e;
-    int rc = 0;
 
     *r_secrings = 0;
     *r_pubrings = 0;
-    rc = parse_gpg_options( fname, &opt );
-    if( rc )
+    if (parse_gpg_options (fname, &opt))
 	return WPTERR_FILE_OPEN;
 
-    for( e = opt->list; e; e = e->next ) {
-	if( !strcmp( e->name, "secret-keyring" ) ) {
-	    if( !file_exist_check( e->val ) )
+    for (e = opt->list; e; e = e->next) {
+	if (!strcmp( e->name, "secret-keyring")) {
+	    if (!file_exist_check (e->val))
 		r_secrings[0]++;
 	}
-	else if( !strcmp( e->name, "keyring" ) ) {
-	    if( !file_exist_check( e->val ) )
+	else if (!strcmp (e->name, "keyring")) {
+	    if (!file_exist_check (e->val))
 		r_pubrings[0]++;
 	}
     }
-    release_gpg_options( opt );
+    release_gpg_options (opt);
     return 0;
-} /* check_gnupg_cfgfile */
+}
 
 
 /* Usually GPG creates the pubring.gpg, secring.gpg on
@@ -435,13 +419,13 @@
 create_empty_keyring (int _pub)
 {
     char *name;
-    FILE *f;
+    FILE *fp;
 
     name = get_gnupg_keyring (_pub, 0);
-    if (file_exist_check (name) != 0) {
-	f = fopen (name, "ab");
-	if (f != NULL)
-	    fclose (f);
+    if (name && file_exist_check (name) != 0) {
+	fp = fopen (name, "ab");
+	if (fp != NULL)
+	    fclose (fp);
     }
     free_if_alloc (name);
 }
@@ -475,7 +459,7 @@
 	rc = file_exist_check (optfile);
 	if (!rc && get_file_size (optfile) > 0) {
 	    rc = check_gnupg_cfgfile (optfile, &secrings, &pubrings);
-	    if (!rc && secrings && pubrings) {
+	    if (!rc && secrings > 0 && pubrings > 0) {
 		free_if_alloc (optfile);
 		return 0; /* found two keyrings in the option file */
 	    }
@@ -501,11 +485,11 @@
     char *s, *optfile;
 
     s = get_gnupg_path ();
-    if( s == NULL )
+    if (!s)
 	return WPTERR_FILE_CREAT;
     optfile = make_filename (s, GPG_CONF, NULL);
     fp = fopen (optfile, "wb");
-    if (fp == NULL) {	
+    if (!fp) {
 	return WPTERR_FILE_CREAT;
 	goto fail;
     }
@@ -516,47 +500,45 @@
     free_if_alloc (s);
     free_if_alloc (optfile);
     return 0;
-} /* create_gpg_options */
+}
 
 
-/*
- * Return the contents of the options file as a char buf.
- */
-char *
+/* Return the contents of the options file as a char buf. */
+char*
 get_gnupg_config (void)
 {
-    FILE * fp;
-    char * p = NULL, * optfile = NULL;
+    FILE *fp;
+    char *p = NULL, *optfile = NULL;
     int fsize, rc = 0;
 	
     optfile = get_gnupg_cfgfile ();
-    if( optfile == NULL )
+    if (optfile == NULL)
 	return NULL;
-    fsize = get_file_size( optfile );
-    if( !fsize ) {
-	rc = create_gpg_options( );
-	if ( rc )
+    fsize = get_file_size (optfile);
+    if (!fsize) {
+	rc = create_gpg_options ();
+	if (rc)
 	    return NULL;
-	fsize = get_file_size( optfile );
+	fsize = get_file_size (optfile);
     }
-    if( fsize > 100000 )
+    if (fsize > 100000)
 	goto leave; /* too large */
     p = new char[fsize+1];
-    if( p == NULL )
-	BUG( NULL );
+    if (!p)
+	BUG (NULL);
     fp = fopen( optfile, "rb" );
-    if( fp == NULL ) {
-	free_if_alloc( p );
+    if (!fp) {
+	free_if_alloc (p);
 	return NULL;
     }
-    fread( p, 1, fsize, fp );
-    fclose( fp );
+    fread (p, 1, fsize, fp);
+    fclose (fp);
     p[fsize] = '\0';
-    free_if_alloc( optfile );
+    free_if_alloc (optfile);
 
 leave:
     return p;
-} /* get_gnupg_config */
+}
 
 
 /* Set the default key in the gpg.conf.
@@ -596,9 +578,7 @@
 }
 
 
-/*
- * Set the contents of the options file.
- */
+/* Set the contents of the options file. */
 int
 set_gnupg_options( const char *buf, size_t buflen )
 {
@@ -675,7 +655,8 @@
 
     path = get_gnupg_path ();
     file =  make_filename (path, ctx->object, NULL);
-    fd = CreateFile (file, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_ALWAYS, 0, NULL);
+    fd = CreateFile (file, GENERIC_READ, FILE_SHARE_READ, NULL, 
+		     OPEN_ALWAYS, 0, NULL);
     if (fd == INVALID_HANDLE_VALUE) {
 	free_if_alloc (path);
 	free_if_alloc (file);
@@ -833,7 +814,7 @@
     int failed = 0, ans=0, attrs=0;
 
     p = get_gnupg_path ();
-    if (check_keyring (&p) && p) {
+    if (p && check_keyring (&p)) {
 	name = make_filename (p, "pubring", "gpg");
 	if ((attrs=GetFileAttributes (name)) & FILE_ATTRIBUTE_READONLY) {
 	    ans = msg_box (NULL, 
@@ -915,16 +896,18 @@
 	return WPTERR_GENERAL;
     hwnd = GetDesktopWindow ();
 
-    pring = get_fileopen_dlg (hwnd, _("Please choose your public keyring"),
+    pring = get_fileopen_dlg (hwnd, _("Please choose your Public Keyring"),
 			      "GPG Keyrings (*.gpg)\0*.gpg\0\0",NULL);
     if (!pring) {
-	msg_box (hwnd, _("No keyring was chosen. Exit."), _("WinPT Error"), MB_ERR);
+	msg_box (hwnd, _("No keyring was chosen. Exit."), 
+		 _("WinPT Error"), MB_ERR);
 	free_if_alloc (path);
 	return WPTERR_GENERAL;
     }
     file = make_filename (path, "pubring", "gpg");
     if (file_exist_check (file) == 0) {
-	id = msg_box (hwnd, _("Overwrite old public keyring?"), "WinPT", MB_INFO|MB_YESNO);
+	id = msg_box (hwnd, _("Overwrite old public keyring?"), 
+		      "WinPT", MB_INFO|MB_YESNO);
 	if (id == IDNO)
 	    goto fail;
     }
@@ -935,20 +918,22 @@
     }
     free_if_alloc (file);
 
-    sring = get_fileopen_dlg (hwnd, _("Please choose your secret keyring"),
+    sring = get_fileopen_dlg (hwnd, _("Please choose your Secret Keyring"),
 			      "GPG Keyrings (*.gpg)\0*.gpg\0\0", NULL);
     if (!sring) {
-	msg_box( NULL, _("No keyring was chosen. Exit."), _("WinPT Error"), MB_ERR );
+	msg_box (NULL, _("No keyring was chosen. Exit."), 
+		 _("WinPT Error"), MB_ERR);
 	return WPTERR_GENERAL;
     }
     file = make_filename (path, "secring", "gpg");
     if (file_exist_check (file) == 0) {
-	id = msg_box (hwnd, _("Overwrite old secret keyring?"), "WinPT", MB_INFO|MB_YESNO);
-	if( id == IDNO )
+	id = msg_box (hwnd, _("Overwrite old secret keyring?"),
+		      "WinPT", MB_INFO|MB_YESNO);
+	if (id == IDNO)
 	    goto fail;
     }
     if (!CopyFile (sring, file, FALSE)) {
-	msg_box( NULL, _("Could not copy file."), _("WinPT Error"), MB_ERR);
+	msg_box (NULL, _("Could not copy file."), _("WinPT Error"), MB_ERR);
 	rc = WPTERR_FILE_READ;
     }
 
@@ -956,7 +941,7 @@
     free_if_alloc (file);
     free_if_alloc (path);
     return rc;
-} /* gnupg_import_keyrings */
+}
 
 
 /* Backup the gpg.conf file. */
@@ -979,7 +964,7 @@
 backup_one_file (const char *srcpath, const char *srcn,
 		 const char *dstpath, const char *dstn)
 {
-    char * src, * dst;
+    char *src, *dst;
     BOOL rc;
 
     src = make_filename (srcpath, srcn, "gpg");
@@ -991,13 +976,12 @@
     rc = CopyFile (src, dst, FALSE);
     free_if_alloc (src);
     free_if_alloc (dst);
-    if (!rc)
-    {
+    if (!rc) {
 	log_box (_("Backup"), MB_ERR, _("Backup keyring \"%s\" failed"), srcn);
         return WPTERR_GENERAL;
     }
     return 0;
-} /* backup_one_file */
+}
 
 
 /* Figure out first public keyring which is not empty.
@@ -1058,22 +1042,21 @@
 /* Make backups of all keyrings. The public key ring is
    rotated like this pubring-%d.gpg. */
 void
-gnupg_backup_keyrings (void)
+gnupg_backup_keyrings (int auto_backup, int backup_mode)
 {
     char *srcpath = NULL, *dstpath = NULL;
     char *name=NULL;
-    int rc, bakmode=0;
+    int rc;
 
-    if (!reg_prefs.auto_backup)
+    if (!auto_backup)
 	return;
-    bakmode = reg_prefs.backup.mode;
     srcpath = get_gnupg_path ();
     check_keyring (&srcpath);
-    if (bakmode == 1) {
+    if (backup_mode == 1) {
 	dstpath = multi_gnupg_path (1);
 	check_keyring (&dstpath);
     }
-    else if (bakmode == 2) {
+    else if (backup_mode == 2) {
 	char *tmpfile;
 	FILE *fp;
 
@@ -1096,7 +1079,7 @@
 	    return;
     }
     else {
-	log_box (_("Backup"), MB_ERR, _("Invalid backup mode %d"), bakmode);
+	log_box (_("Backup"), MB_ERR, _("Invalid backup mode %d"), backup_mode);
 	return;
     }
     name = get_backup_name ("pubring-bak");

Modified: trunk/Src/wptGPGMEData.cpp
===================================================================
--- trunk/Src/wptGPGMEData.cpp	2006-04-11 06:38:11 UTC (rev 199)
+++ trunk/Src/wptGPGMEData.cpp	2006-04-17 09:12:50 UTC (rev 200)
@@ -1,5 +1,5 @@
 /* wptGPGMEData.cpp - WinPT specifc data extensions
- *	Copyright (C) 2001-2005 Timo Schulz
+ *	Copyright (C) 2001-2006 Timo Schulz
  *
  * This file is part of WinPT.
  *
@@ -30,6 +30,7 @@
 #include "wptUtil.h"
 #include "wptGPG.h"
 
+
 /* Implement a word based line break. @inp is the input buffer
    and @wraplen is the maximal line length.
    Return value: the wrapped buffer on success. */
@@ -143,6 +144,28 @@
 }
 
 
+static int
+is_armor_header (const char *line)
+{
+    const char *header[] = {
+	"Version:",
+        "Comment:",
+	"Charset:",
+        "Hash:",
+	"MessageID",
+	NULL
+    };
+    int i;
+
+    for (i=0; header[i] != NULL; i++) {
+	if (!strncmp (line, header[i], strlen (header[i])))
+	    return -1;
+    }
+    return 0;
+}
+
+
+
 /* Extract the plaintext data from the escaped data object @sig.
    The plaintxt is stored in @r_plain.
    Return value: 0 on success. */
@@ -162,16 +185,13 @@
     
     while (gpg_data_readline (sig, line, 128) > 0) {
         if (!strncmp (line, "-----BEGIN PGP SIGNED MESSAGE", 29) ||
-            !strncmp (line, "Version:", 8) ||
-            !strncmp (line, "Comment:", 8) ||
-            !strncmp (line, "Charset:", 8) ||
-            !strncmp (line, "Hash:", 5) ||
-	    !strncmp (line, "MessageID", 9))
+            is_armor_header (line))
             continue;
         if (strlen (line) <= 2)
             break; /* parsed all headers, now we reached the body */
     }
-    /* XXX handle multi dash escaped sequences */
+
+    /* We just support 1 nesting level. */
     while (gpg_data_readline (sig, line, 128) > 0 ) {
         if (!strncmp( line, "-----BEGIN PGP SIGNATURE", 24))
             break; /* end of plaintext */

Modified: trunk/Src/wptGPGUtil.cpp
===================================================================
--- trunk/Src/wptGPGUtil.cpp	2006-04-11 06:38:11 UTC (rev 199)
+++ trunk/Src/wptGPGUtil.cpp	2006-04-17 09:12:50 UTC (rev 200)
@@ -172,7 +172,7 @@
     p = (char*)xcalloc (1, len+1);
     len = ExpandEnvironmentStrings (path, p, len);
     if (!len) {
-	free (p);
+	safe_free (p);
 	return NULL;
     }
     return p; 
@@ -197,13 +197,13 @@
         goto leave;
     result = (char*)xcalloc (1, (n1=nbytes+1));    
     if (RegQueryValueEx (key_handle, name, 0, &type, (BYTE*)result, &n1)) {
-        free (result); 
+        safe_free (result); 
 	result = NULL;
         goto leave;
     }
     if (type == REG_EXPAND_SZ && strchr (result, '%')) {
 	char *p = expand_path (result);
-	free (result);
+	safe_free (result);
 	result = p;
     }
     
@@ -335,24 +335,25 @@
 {
     gpgme_error_t err = gpg_error (GPG_ERR_NO_ERROR);
     struct stat st;
+    const char *fmt;
     char *p;
     char *cmd;
 
     p = read_gpg_program ();
     if (!p)
 	return gpg_error (GPG_ERR_INV_ARG);
+    fmt = "%s --armor --yes --output \"%s\" --export-secret-key %s";
     cmd = (char*)xcalloc (1, strlen (p) + strlen (keyid) 
-			    + strlen (outfile) + 64 + 2);
-    sprintf (cmd, "%s --yes --output \"%s\" --export-secret-key %s", 
-	     p, outfile, keyid);
+			    + strlen (outfile) + strlen (fmt) + 2);
+    sprintf (cmd, fmt, p, outfile, keyid);
     if (create_process (cmd, NULL, NULL, NULL))
 	err = gpg_error (GPG_ERR_INTERNAL);
 
     if (stat (outfile, &st) == -1 || st.st_size == 0)
 	err = gpg_error (GPG_ERR_NO_DATA);
 
-    free (p);
-    free (cmd);
+    safe_free (p);
+    safe_free (cmd);
     return err;
 }
 
@@ -388,8 +389,8 @@
     if (create_process (cmd, in, out, NULL))
 	err = gpg_error (GPG_ERR_INTERNAL);
 
-    free (p);
-    free (cmd);
+    safe_free (p);
+    safe_free (cmd);
 
     if (in)
 	CloseHandle (in);
@@ -429,8 +430,8 @@
 	*r_inf = map_tmpfile (out, NULL);
     if (out)
 	CloseHandle (out);
-    free (p);
-    free (cmd);
+    safe_free (p);
+    safe_free (cmd);
     return 0;
 }
 
@@ -453,8 +454,8 @@
     if (create_process (cmd, NULL, out, NULL))
 	err = gpg_error (GPG_ERR_INTERNAL);
 
-    free (p);
-    free (cmd);
+    safe_free (p);
+    safe_free (cmd);
 
     *r_inf = map_tmpfile (out, NULL);
     CloseHandle (out);    
@@ -468,6 +469,7 @@
 gpg_import_key_list (const char *fname, char **r_out)
 {
     gpgme_error_t err = gpg_error (GPG_ERR_NO_ERROR);
+    const char *fmt;
     char *cmd, *p;
     HANDLE out;
 
@@ -475,15 +477,16 @@
     if (!p)
 	return gpg_error (GPG_ERR_INV_ARG);
 
-    cmd = (char*)xcalloc (1, strlen (p) + strlen (fname) + 2+2 + 64);
-    sprintf (cmd, "%s --fixed-list-mode --with-colons \"%s\"", p, fname);
+    fmt = "%s --fixed-list-mode --with-colons \"%s\"";
+    cmd = (char*)xcalloc (1, strlen (p) + strlen (fname) + strlen (fmt) + 2);
+    sprintf (cmd, fmt, p, fname);
 
     out = create_tmpfile ("gpg_keys");
     if (create_process (cmd, NULL, out, NULL))
 	err = gpg_error (GPG_ERR_INTERNAL);
 
-    free (p);
-    free (cmd);
+    safe_free (p);
+    safe_free (cmd);
 
     *r_out = map_tmpfile (out, NULL);
     CloseHandle (out);
@@ -524,6 +527,7 @@
 gpg_revoke_cert (const char *inp_data, const char *keyid, char **r_revcert)
 {
     gpgme_error_t err = gpg_error (GPG_ERR_NO_ERROR);
+    const char *fmt;
     char *rcrt;
     char *cmd, *p;
     HANDLE in, out;
@@ -532,9 +536,9 @@
     if (!p)
 	return gpg_error (GPG_ERR_INV_ARG);
 
-    cmd = (char*)xcalloc (1, strlen (p) + strlen (keyid)+1 + 128);
-    sprintf (cmd, "%s --pgp7 --command-fd=0 --status-fd=2 --gen-revoke %s", 
-	     p, keyid);
+    fmt = "%s --pgp7 --command-fd=0 --status-fd=2 --gen-revoke %s";
+    cmd = (char*)xcalloc (1, strlen (p) + strlen (keyid) + strlen (fmt) + 2);
+    sprintf (cmd, fmt, p, keyid);
 
     in = create_in_pipe (inp_data);
     out = create_tmpfile ("gpg_revcert");
@@ -549,8 +553,8 @@
 	    err = gpg_error (GPG_ERR_BAD_PASSPHRASE);
     }
 
-    free (p);
-    free (cmd);
+    safe_free (p);
+    safe_free (cmd);
 
     CloseHandle (in);
     CloseHandle (out);
@@ -568,6 +572,7 @@
 {
     gpgme_error_t err = gpg_error (GPG_ERR_NO_ERROR);
     HANDLE herr, hdat;
+    const char *fmt;
     char *p, *cmd;
     DWORD n;
 
@@ -576,21 +581,21 @@
     p = read_gpg_program ();
     if (!p)
 	return gpg_error (GPG_ERR_INV_ARG);
-    n = strlen (p) + 128;
+    fmt = "%s --attribute-fd=%d --status-fd=2 --list-keys %s";
+    n = strlen (p) + strlen (fmt) + 1;
     if (keyid)
 	n += strlen (keyid) + 1;
     cmd = (char*)xcalloc (1, n+1);
+    /* XXX: add --list-options show-unsuable-uid to display
+	    revoked attribute IDs */
     hdat = create_tmpfile ("gpg_uat_data");
     herr = create_tmpfile ("gpg_uat_status");
-    /* XXX: add --list-options show-unsuable-uid to display
-	    revoked attribute IDs */
-    sprintf (cmd, "%s --attribute-fd=%d --status-fd=2 --list-keys %s",
-	     p, (int)hdat, keyid? keyid : "");
+    sprintf (cmd, fmt, p, (int)hdat, keyid? keyid : "");
     if (create_process (cmd, NULL, NULL, herr))
 	err = gpg_error (GPG_ERR_INTERNAL);
 
-    free (p);
-    free (cmd);
+    safe_free (p);
+    safe_free (cmd);
 
     *r_data = (BYTE*)map_tmpfile (hdat, ndata);
     *r_status_data = map_tmpfile (herr, NULL);
@@ -661,6 +666,7 @@
 {
     gpgme_error_t err = gpg_error (GPG_ERR_NO_ERROR);
     HANDLE out;
+    const char *fmt;
     char *p, *cmd;
     char *uat;
 
@@ -669,9 +675,9 @@
     if (!p)
 	return gpg_error (GPG_ERR_INV_ARG);
 
-    cmd = (char*)xcalloc (1, strlen (p) + strlen (keyid)+1 + 128);
-    sprintf (cmd, "%s --with-colons --fixed-list-mode --list-keys \"%s\"",
-	     p, keyid);
+    fmt = "%s --with-colons --fixed-list-mode --list-keys \"%s\"";
+    cmd = (char*)xcalloc (1, strlen (p) + strlen (keyid) + strlen (fmt) + 2);
+    sprintf (cmd, fmt, p, keyid);
 
     out = create_tmpfile ("gpg_keys");
     if (create_process (cmd, NULL, out, NULL))
@@ -690,7 +696,7 @@
 	}
     }
 
-    free (p);    
+    safe_free (p);
     CloseHandle (out);
     return err;
 }
@@ -728,7 +734,7 @@
 	return gpgme_error (GPG_ERR_INV_ARG);
     }
 
-    *r_list=NULL;
+    *r_list = NULL;
     inp = gpg_iobuf_open (file);
     if (!inp)
 	return gpgme_err_code_from_errno (errno);
@@ -756,6 +762,7 @@
 
 	case PKT_ENCRYPTED:	
 	case PKT_ENCRYPTED_MDC:
+	case PKT_PLAINTEXT:
 	case PKT_COMPRESSED:
 	case PKT_PUBLIC_KEY:
 	case PKT_SECRET_KEY:
@@ -817,19 +824,20 @@
     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);
+    p = map_tmpfile (out, NULL);    
     if (p && (spk=strstr (p, "spk"))) {
 	char *end = strstr (spk, "\n");
+	
 	if (end) {
 	    *value = (char*)xcalloc (1, (end-spk)+1);
 	    memcpy (*value, spk, (end-spk)-1);
 	}
     }
 
-    free (p);
+    safe_free (p);
     CloseHandle (out);
     return err;
 }

Modified: trunk/Src/wptHTTP.cpp
===================================================================
--- trunk/Src/wptHTTP.cpp	2006-04-11 06:38:11 UTC (rev 199)
+++ trunk/Src/wptHTTP.cpp	2006-04-17 09:12:50 UTC (rev 200)
@@ -77,6 +77,7 @@
     fd = statcode = 0;
     method = HTTP_GET;
     nleft = -1;
+    error = 0;
 }
 
 
@@ -199,31 +200,39 @@
     
     if (isalpha (*_host)) {
 	hp = gethostbyname (_host);
-	if (!hp)
+	if (!hp) {
+	    this->error = (int)WSAGetLastError ();
 	    return WPTERR_WINSOCK_CONNECT;
+	}
 	memcpy (&srv.sin_addr, hp->h_addr, hp->h_length);
     }
     else {
 	addr = inet_addr (_host);
-	if (addr == INADDR_NONE)
+	if (addr == INADDR_NONE) {
+	    this->error = (int)WSAGetLastError ();
 	    return WPTERR_WINSOCK_CONNECT;
+	}
 	memcpy (&srv.sin_addr, &addr, sizeof addr);
     }
 	    
     fd = socket (AF_INET, SOCK_STREAM, 0);
-    if (fd < 0)
+    if (fd < 0) {
+	this->error = (int)WSAGetLastError ();
 	return WPTERR_WINSOCK_SOCKET;
+    }
 
     if (setsockopt (fd, SOL_SOCKET, SO_REUSEADDR, 
 		    (const char*)&i, sizeof i)) {
 	closesocket (fd);
 	fd = 0;
+	this->error = (int)WSAGetLastError ();
 	return WPTERR_WINSOCK_SOCKET;
     }
     
     if (::connect (fd, (struct sockaddr *)&srv, sizeof srv)) {
 	closesocket (fd);
 	fd = 0;
+	this->error = (int)WSAGetLastError ();
 	return WPTERR_WINSOCK_CONNECT;
     }
 
@@ -550,11 +559,14 @@
     }
     free_if_malloc (url);
     free_if_malloc (host);
-    if (fd != 0)
+    if (fd != 0) {
 	closesocket (fd);
+	fd = 0;
+    }
 }
 
 
+/* Read @buflen bytes from the http stream into the buffer @buf. */
 int
 wHTTP::read (void *buf, unsigned int buflen)
 {
@@ -581,6 +593,7 @@
 }
 
 
+/* Write the buffer @buf to the http stream. */
 int
 wHTTP::write (const void *buf, unsigned buflen)
 {
@@ -590,3 +603,10 @@
 	return -1;
     return send (fd, (const char*)buf, (int)buflen, 0);
 }
+
+
+/* Return the winsock specific error code. */
+int wHTTP::getErrorCode (void)
+{
+    return error;
+}

Modified: trunk/Src/wptImportList.cpp
===================================================================
--- trunk/Src/wptImportList.cpp	2006-04-11 06:38:11 UTC (rev 199)
+++ trunk/Src/wptImportList.cpp	2006-04-17 09:12:50 UTC (rev 200)
@@ -1,5 +1,5 @@
 /* wptImportList.cpp
- *	Copyright (C) 2001-2005 Timo Schulz
+ *	Copyright (C) 2001-2006 Timo Schulz
  *	Copyright (C) 2005 g10 Code GmbH
  *
  * This file is part of WinPT.
@@ -82,9 +82,8 @@
 {
     if (!c)
 	return;
-    if (c->uid)
-	free (c->uid);
-    free (c);
+    safe_free (c->uid);
+    safe_free (c);
 }
 
 
@@ -306,7 +305,7 @@
 	uid = utf8_to_native (t);
 	if (uid) {
 	    listview_add_sub_item (lv, pos, IMPL_COL_UID, uid);
-	    free (uid);
+	    safe_free (uid);
 	}
     }
 
@@ -358,7 +357,7 @@
     int j, rc = 0;
 	
     rc = listview_new (&c);
-    if( rc )
+    if (rc)
 	return rc;
     c->ctrl = ctrl;
     for (j = 0; implist[j].fieldname != NULL; j++)
@@ -441,7 +440,7 @@
     }
 
     err = gpgme_data_new_from_mem (&list, out, strlen (out), 1);
-    free (out);
+    safe_free (out);
     if (err) {
 	msg_box (NULL, gpgme_strerror (err), _("Import"), MB_ERR);
 	if (is_tmp) 

Modified: trunk/Src/wptKeyEdit.cpp
===================================================================
--- trunk/Src/wptKeyEdit.cpp	2006-04-11 06:38:11 UTC (rev 199)
+++ trunk/Src/wptKeyEdit.cpp	2006-04-17 09:12:50 UTC (rev 200)
@@ -481,6 +481,25 @@
     return type;
 }
 
+
+/* Add the notation data from @notation to the user ID
+   with the index @_uid_idx.
+   Return value: 0 on success.  */
+gpgme_error_t 
+GpgKeyEdit::addNotation (int _uid_idx, const char *_notation)
+{
+    if (!key)
+	return gpg_error (GPG_ERR_INV_OBJ);
+    if (key_has_passwd && !this->pass)
+	return gpg_error (GPG_ERR_INV_PASSPHRASE);
+
+    type = GPG_EDITKEY_NOTATION;
+    this->uid_index = _uid_idx;
+    this->notation = (char*)_notation;
+    return gpg_editkey (this->ctx, this->key, this);
+}
+
+
 /* Sign the key stored in the object with the 
    signing mode @mode and the signature class @sig_class.
    Return value: 0 on success. */

Modified: trunk/Src/wptKeyEditCB.cpp
===================================================================
--- trunk/Src/wptKeyEditCB.cpp	2006-04-11 06:38:11 UTC (rev 199)
+++ trunk/Src/wptKeyEditCB.cpp	2006-04-17 09:12:50 UTC (rev 200)
@@ -1,5 +1,5 @@
 /* wptKeyEditCB.cpp - Key edit callback handling
- *	Copyright (C) 2005 Timo Schulz
+ *	Copyright (C) 2005, 2006 Timo Schulz
  *	Copyright (C) 2005 g10 Code GmbH
  *
  * This file is part of WinPT.
@@ -41,6 +41,35 @@
     EDITKEY_ERR_BAD_PASSPHRASE = 2
 };
 
+typedef gpgme_status_code_t status_code_t;
+
+/* 'notation' command handler. */
+static const char*
+cmd_notation_handler (GpgKeyEdit *ctx, status_code_t code, const char *key)
+{
+    static char buf[32];
+
+    if (!ctx->cmd_sent && !strcmp (key, "keyedit.prompt")) {
+	int uid = ctx->getUseridIndex ();
+	ctx->cmd_sent = 1;
+	if (uid != -1) {
+	    sprintf (buf, "uid %d", ctx->getUseridIndex ());
+	    return buf;
+	}
+    }
+    if (!strcmp (key, "keyedit.prompt") && ctx->cnt == 0) {
+	ctx->cnt = 1;
+	return "notation";
+    }
+    if (!strcmp (key, "keyedit.add_notation"))
+	return ctx->notation;
+    if (!strcmp (key, "passphrase.enter"))
+	return ctx->pass;
+
+    return NULL;
+}
+
+
 /* 'keyserver' command handler. */
 static const char*
 cmd_keyserv_handler (GpgKeyEdit *ctx, gpgme_status_code_t code, const char *key)
@@ -55,7 +84,7 @@
 	    return buf;
 	}
     }
-    if (!strcmp (key, "keyedit.prompt") && !ctx->cnt) {
+    if (!strcmp (key, "keyedit.prompt") && ctx->cnt == 0) {
 	ctx->cnt = 1;
 	return "keyserver";
     }
@@ -90,11 +119,11 @@
     if (!ctx->cmd_sent && !strcmp (key, "keyedit.prompt")) {
 	ctx->cmd_sent = 1;
 	switch (ctx->getType ()) {
-	case GPG_EDITKEY_SIGN: return "sign";
-	case GPG_EDITKEY_TSIGN: return "tsign";
-	case GPG_EDITKEY_LSIGN: return "lsign";
-	case GPG_EDITKEY_NRSIGN: return"nrsign";
-	case GPG_EDITKEY_NRLSIGN: return "nrlsign";
+	case GPG_EDITKEY_SIGN:	    return "sign";
+	case GPG_EDITKEY_TSIGN:	    return "tsign";
+	case GPG_EDITKEY_LSIGN:	    return "lsign";
+	case GPG_EDITKEY_NRSIGN:    return"nrsign";
+	case GPG_EDITKEY_NRLSIGN:   return "nrlsign";
 	}
     }
     if (!strcmp (key, "sign_uid.class")) {
@@ -180,27 +209,25 @@
 
 
 static const char*
-cmd_deluid_handler (GpgKeyEdit *ctx, gpgme_status_code_t code, const char *key,
-		    int *r_step)
+cmd_deluid_handler (GpgKeyEdit *ctx, gpgme_status_code_t code, 
+		    const char *key)
 {
     static char buf[64];
-    int step = *r_step;
 
-    if (step == 0 && !strcmp (key, "keyedit.prompt")) {
+    if (ctx->cnt == 0 && !strcmp (key, "keyedit.prompt")) {
         sprintf (buf, "uid %d", ctx->getUseridIndex ());
-	*r_step = step = 1;
+	ctx->cnt = 1;
 	return buf;
     }
-    if (step == 1 && !strcmp (key, "keyedit.prompt")) {
-        *r_step = step = 2;
+    if (ctx->cnt == 1 && !strcmp (key, "keyedit.prompt")) {
+        ctx->cnt = 2;
 	return "deluid";
     }
-    if (step == 2 && !strcmp (key, "keyedit.remove.uid.okay")) {
-        *r_step = step = 3;
+    if (ctx->cnt == 2 && !strcmp (key, "keyedit.remove.uid.okay")) {
+        ctx->cnt = 3;
 	return "Y";
     }
-    if (step == 3 && !strcmp (key, "keyedit.prompt" )) {
-        *r_step = step = 0;
+    if (ctx->cnt == 3 && !strcmp (key, "keyedit.prompt" )) {
 	ctx->reset ();
 	return "save";
     }
@@ -210,32 +237,31 @@
 
 
 static const char*
-cmd_delsig_handler (GpgKeyEdit *ctx, gpgme_status_code_t code, const char *key,
-		    int *r_step)
+cmd_delsig_handler (GpgKeyEdit *ctx, gpgme_status_code_t code, const char *key)
 {
     static char buf[64];
-    int step = *r_step;
+    static int sig_cnt = 0;
 
-    if (step == 0 && !strcmp (key, "keyedit.prompt")) {
+    if (ctx->cnt == 0 && !strcmp (key, "keyedit.prompt")) {
 	sprintf (buf, "uid %d", ctx->getUseridIndex ());
-	*r_step = step = 1;
+	ctx->cnt = 1;
 	return buf;
     }
-    if (step == 1 && !strcmp (key, "keyedit.prompt")) {
-	*r_step = step = 2;
+    if (ctx->cnt == 1 && !strcmp (key, "keyedit.prompt")) {
+	ctx->cnt = 2;
 	return "delsig";
     }
     if (!strcmp (key, "keyedit.delsig.unknown") ||
 	!strcmp (key, "keyedit.delsig.valid")) {
-	if (++ctx->cnt == ctx->getSigIndex ())
+	if (++sig_cnt == ctx->getSigIndex ())
 	    return "Y";
 	else
 	    return "N";
     }
     if (!strcmp (key, "keyedit.delsig.selfsig"))
 	return "Y";
-    if (step == 2 && !strcmp (key, "keyedit.prompt")) {
-	*r_step = step = 0;
+    if (ctx->cnt == 2 && !strcmp (key, "keyedit.prompt")) {
+	sig_cnt = 0;
 	ctx->reset ();
 	return "save";
     }
@@ -246,26 +272,24 @@
 /* 'delkey' command handler. */
 static const char*
 cmd_delkey_handler (GpgKeyEdit *ctx, gpgme_status_code_t code, 
-		    const char *key, int *r_step )
+		    const char *key)
 {
     static char buf[64];
-    int step = *r_step;
 
-    if (step == 0 && !strcmp (key, "keyedit.prompt")) {
+    if (ctx->cnt == 0 && !strcmp (key, "keyedit.prompt")) {
 	sprintf (buf, "key %d", ctx->getKeyIndex ());
-	*r_step = step = 1;
+	ctx->cnt = 1;
 	return buf;
     }
-    if (step == 1 && !strcmp (key, "keyedit.prompt")) {
-        *r_step = step = 2;
+    if (ctx->cnt == 1 && !strcmp (key, "keyedit.prompt")) {
+        ctx->cnt = 2;
 	return "delkey";
     }
-    if (step == 2 && !strcmp (key, "keyedit.remove.subkey.okay")) {
-        *r_step = step = 3;
+    if (ctx->cnt == 2 && !strcmp (key, "keyedit.remove.subkey.okay")) {
+        ctx->cnt = 3;
 	return "Y";
     }
-    if (step == 3 && !strcmp (key, "keyedit.prompt")) {
-        *r_step = step = 0;
+    if (ctx->cnt == 3 && !strcmp (key, "keyedit.prompt")) {
 	ctx->reset ();
 	return "save";
     }
@@ -306,6 +330,7 @@
     return NULL;
 }
 
+
 /* 'passwd' command handler. */
 static const char*
 cmd_passwd_handler (GpgKeyEdit *ctx, gpgme_status_code_t code, const char *key)
@@ -314,7 +339,7 @@
 	ctx->cmd_sent = 1;
 	return "passwd";
     }
-    if (!ctx->cnt && !strcmp (key, "passphrase.enter")) {
+    if (ctx->cnt == 0 && !strcmp (key, "passphrase.enter")) {
         ctx->cnt = 1;
 	return ctx->pass;
     }
@@ -342,16 +367,16 @@
 	ctx->cmd_sent = 1;
 	return "";
     }
-    if (!strcmp ( key, "keyedit.prompt") && ctx->u.pref.id == 0) {
+    if (!strcmp (key, "keyedit.prompt") && ctx->u.pref.id == 0) {
 	ctx->u.pref.id++;
 	_snprintf (buf, sizeof buf-1, "setpref %s", ctx->u.pref.new_prefs);
 	return buf;
     }
-    if (!strcmp ( key, "keyedit.prompt") && ctx->u.pref.id == 1) {
+    if (!strcmp (key, "keyedit.prompt") && ctx->u.pref.id == 1) {
 	ctx->u.pref.id++;
 	return "updpref";
     }
-    if (!strcmp ( key, "keyedit.updpref.okay"))
+    if (!strcmp (key, "keyedit.updpref.okay"))
 	return "Y";
     if (!strcmp (key, "passphrase.enter"))
 	return ctx->u.pref.passwd;
@@ -367,61 +392,58 @@
 
 /* 'primary' command handler. */
 static const char*
-cmd_primary_handler (GpgKeyEdit *ctx, gpgme_status_code_t code, 
-		     const char *key, int *r_step )
+cmd_primary_handler (GpgKeyEdit *ctx, gpgme_status_code_t code,
+		     const char *key)
 {
     static char buf[64];
-    int step = *r_step;
 
-    if (step == 0 && !strcmp (key, "keyedit.prompt")) {
+    if (ctx->cnt == 0 && !strcmp (key, "keyedit.prompt")) {
 	sprintf (buf, "uid %d", ctx->getUseridIndex ());
-	*r_step = step = 1;
+	ctx->cnt = 1;
 	return buf;
     }
-    if (step == 1 && !strcmp (key, "keyedit.prompt" )) {
-        *r_step = step = 2;
+    if (ctx->cnt == 1 && !strcmp (key, "keyedit.prompt" )) {
+        ctx->cnt = 2;
 	return "primary";
     }
-    if (step == 2 && !strcmp (key, "passphrase.enter")) {
-	*r_step = step = 3;
+    if (ctx->cnt == 2 && !strcmp (key, "passphrase.enter")) {
+	ctx->cnt = 3;
 	return ctx->pass;
     }
-    if (step == 3 && !strcmp (key, "keyedit.prompt")) {
-        *r_step = step = 0;
+    if (ctx->cnt == 3 && !strcmp (key, "keyedit.prompt")) {
 	ctx->reset ();
 	return "save";
     }
     return NULL;
 }
 
+
 /* 'expire' command handler. */
 static const char*
 cmd_expire_handler (GpgKeyEdit *ctx, gpgme_status_code_t code, 
-		    const char *key, int *r_step )
+		    const char *key)
 {
     static char buf[64];
-    int step = *r_step;
 
-    if (step == 0 && !strcmp (key, "keyedit.prompt")) {
+    if (ctx->cnt == 0 && !strcmp (key, "keyedit.prompt")) {
 	sprintf (buf, "key %d", ctx->getKeyIndex ());
-	*r_step = step = 1;
+	ctx->cnt = 1;
 	return buf;
     }
-    if (step == 1 && !strcmp (key, "keyedit.prompt")) {
-        *r_step = step = 2;
+    if (ctx->cnt == 1 && !strcmp (key, "keyedit.prompt")) {
+        ctx->cnt = 2;
 	return "expire";
     }
-    if( step == 2 && !strcmp ( key, "keygen.valid" ) ) {
-	*r_step = step = 3;
+    if (ctx->cnt == 2 && !strcmp (key, "keygen.valid" )) {
+	ctx->cnt = 3;
 	sprintf (buf, "%d", ctx->getValidDays ());
 	return buf;
     }
-    if (step == 3 && !strcmp (key, "passphrase.enter")) {
-        *r_step = step = 4; 
+    if (ctx->cnt == 3 && !strcmp (key, "passphrase.enter")) {
+        ctx->cnt = 4; 
 	return ctx->pass;
     }
-    if (step == 4 && !strcmp (key, "keyedit.prompt")) {
-        *r_step = step = 0;
+    if (ctx->cnt == 4 && !strcmp (key, "keyedit.prompt")) {
 	ctx->reset ();
 	return "save";
     }
@@ -433,42 +455,40 @@
 /* 'revuid' command handler. */
 const char*
 cmd_revuid_handler (GpgKeyEdit *ctx, gpgme_status_code_t code,
-		    const char *key, int *r_step)
+		    const char *key)
 {
     static char buf[32];
-    int step = *r_step;
     
-    if (step == 0 && !strcmp (key, "keyedit.prompt")) {
-	*r_step = step = 1;
+    if (ctx->cnt == 0 && !strcmp (key, "keyedit.prompt")) {
+	ctx->cnt = 1;
 	sprintf (buf, "uid %d", ctx->getUseridIndex ());
 	return buf;
     }
-    else if (step == 1 && !strcmp (key, "keyedit.prompt")) {
-	*r_step = step = 2;
+    else if (ctx->cnt == 1 && !strcmp (key, "keyedit.prompt")) {
+	ctx->cnt = 2;
 	return "revuid";
     }
-    else if (step == 2 && !strcmp (key, "keyedit.revoke.uid.okay")) {
-	*r_step = step = 3;
+    else if (ctx->cnt == 2 && !strcmp (key, "keyedit.revoke.uid.okay")) {
+	ctx->cnt = 3;
 	return "Y";
     }
-    else if (step == 3 && !strcmp (key, "ask_revocation_reason.code")) {
-	*r_step = step = 4;
+    else if (ctx->cnt == 3 && !strcmp (key, "ask_revocation_reason.code")) {
+	ctx->cnt = 4;
 	return "4";
     }
-    else if (step == 4 && !strcmp (key, "ask_revocation_reason.text")) {
-	*r_step = step = 5;
+    else if (ctx->cnt == 4 && !strcmp (key, "ask_revocation_reason.text")) {
+	ctx->cnt = 5;
 	return "";
     }
-    else if (step == 5 && !strcmp (key, "ask_revocation_reason.okay")) {
-	*r_step = step = 6;
+    else if (ctx->cnt == 5 && !strcmp (key, "ask_revocation_reason.okay")) {
+	ctx->cnt = 6;
 	return "Y";
     }
-    else if (step == 6 && !strcmp (key, "passphrase.enter")) {
-	*r_step = step = 7;
+    else if (ctx->cnt == 6 && !strcmp (key, "passphrase.enter")) {
+	ctx->cnt = 7;
 	return ctx->pass;
     }
-    else if (step == 7 && !strcmp (key, "keyedit.prompt")) {
-	*r_step = step = 0;
+    else if (ctx->cnt == 7 && !strcmp (key, "keyedit.prompt")) {
 	ctx->reset ();
 	return "save";
     }
@@ -478,46 +498,44 @@
 
 const char*
 cmd_revsig_handler (GpgKeyEdit *ctx, gpgme_status_code_t code, 
-		    const char *key, int *r_step)
+		    const char *key)
 {
     static char buf[64];
-    int step = *r_step;
     
-    if( step == 0 && !strcmp ( key, "keyedit.prompt" ) ) {
+    if (ctx->cnt == 0 && !strcmp (key, "keyedit.prompt" )) {
 	sprintf( buf, "uid %d", ctx->getUseridIndex ());
-	*r_step = step = 1;
+	ctx->cnt = 1;
 	return buf;
     }
-    if( step == 1 && !strcmp ( key, "keyedit.prompt" ) ) {
-	*r_step = step = 2;
+    if (ctx->cnt == 1 && !strcmp ( key, "keyedit.prompt" ) ) {
+	ctx->cnt = 2;
 	return "revsig";
     }
-    if( step == 2 && !strcmp (key, "ask_revoke_sig.one" ) ) {
-	*r_step = step = 3;
+    if (ctx->cnt == 2 && !strcmp (key, "ask_revoke_sig.one" ) ) {
+	ctx->cnt = 3;
 	return "Y";
     }
-    if( step == 3 && !strcmp (key, "ask_revoke_sig.okay" ) ) {
-	*r_step = step = 4;
+    if (ctx->cnt == 3 && !strcmp (key, "ask_revoke_sig.okay" ) ) {
+	ctx->cnt = 4;
 	return "Y";
     }
-    if( step == 4 && !strcmp ( key, "ask_revocation_reason.code" ) ) {
-	*r_step = step = 5;
+    if (ctx->cnt == 4 && !strcmp ( key, "ask_revocation_reason.code" ) ) {
+	ctx->cnt = 5;
 	return "0";
     }
-    if( step == 5 && !strcmp ( key, "ask_revocation_reason.text" ) ) {
-	*r_step = step = 6;
+    if (ctx->cnt == 5 && !strcmp ( key, "ask_revocation_reason.text" ) ) {
+	ctx->cnt = 6;
 	return "";
     }
-    if( step == 6 && !strcmp (key, "ask_revocation_reason.okay" ) ) {
-	*r_step = step = 7;
+    if (ctx->cnt == 6 && !strcmp (key, "ask_revocation_reason.okay" ) ) {
+	ctx->cnt = 7;
 	return "Y";
     }
-    if( step == 7 && !strcmp (key, "passphrase.enter" ) ) {
-	*r_step = step = 8;
+    if (ctx->cnt == 7 && !strcmp (key, "passphrase.enter" ) ) {
+	ctx->cnt = 8;
 	return ctx->pass;
     }
-    if( step == 8 && !strcmp ( key, "keyedit.prompt" ) ) {
-	*r_step = step = 0;
+    if (ctx->cnt == 8 && !strcmp ( key, "keyedit.prompt" ) ) {
 	ctx->reset ();
 	return "save";
     }
@@ -529,43 +547,41 @@
 /* 'revoke' command handler. */
 static const char *
 cmd_revkey_handler (GpgKeyEdit *ctx, gpgme_status_code_t code, 
-		    const char * key, int *r_step)
+		    const char *key)
 {
-    int step = *r_step;
     static char buf[64];
 
-    if( step == 0 && !strcmp ( key, "keyedit.prompt" ) ) {
+    if (ctx->cnt == 0 && !strcmp ( key, "keyedit.prompt" ) ) {
 	sprintf( buf, "key %d", ctx->getKeyIndex ());
-	*r_step = step = 1;
+	ctx->cnt = 1;
 	return buf;
     }
-    if( step == 1 && !strcmp ( key, "keyedit.prompt" ) ) {
-	*r_step = step = 2;
+    if (ctx->cnt == 1 && !strcmp (key, "keyedit.prompt")) {
+	ctx->cnt = 2;
 	return "revkey";
     }
-    if( step == 2 && !strcmp (key, "keyedit.revoke.subkey.okay" ) ) {
-	*r_step = step = 3;
+    if (ctx->cnt == 2 && !strcmp (key, "keyedit.revoke.subkey.okay")) {
+	ctx->cnt = 3;
 	return "Y";
     }
-    if( step == 3 &&  !strcmp ( key, "ask_revocation_reason.code" ) ) {
+    if (ctx->cnt == 3 &&  !strcmp ( key, "ask_revocation_reason.code")) {
 	sprintf( buf, "%d", ctx->reason);
-	*r_step = step = 4;
+	ctx->cnt = 4;
 	return buf;
     }
-    if( step == 4 && !strcmp ( key, "ask_revocation_reason.text" ) ) {
-	*r_step = step = 5;
+    if (ctx->cnt == 4 && !strcmp (key, "ask_revocation_reason.text")) {
+	ctx->cnt = 5;
 	return "";
     }
-    if( step == 5 && !strcmp (key, "ask_revocation_reason.okay" ) ) {
-	*r_step = step = 6;
+    if (ctx->cnt == 5 && !strcmp (key, "ask_revocation_reason.okay")) {
+	ctx->cnt = 6;
 	return "Y";
     }
-    if( step == 6 && !strcmp (key, "passphrase.enter" ) ) {
-	*r_step = step = 7;
+    if (ctx->cnt == 6 && !strcmp (key, "passphrase.enter")) {
+	ctx->cnt = 7;
 	return ctx->pass;
     }
-    if( step == 7 && !strcmp ( key, "keyedit.prompt" ) ) {
-	*r_step = step = 0;
+    if (ctx->cnt == 7 && !strcmp ( key, "keyedit.prompt")) {
 	ctx->reset ();
 	return "save";
     }
@@ -576,39 +592,37 @@
 /* 'addrevoker' command handler. */
 static const char *
 cmd_addrev_handler (GpgKeyEdit *ctx, gpgme_status_code_t code, 
-		    const char *key, int *r_step)
+		    const char *key)
 {
-    int step = *r_step;
 
     /* If the isuser already signed the key, send an empty
 	   string and jump to quit. */
     if (ctx->getResult () & EDITKEY_ERR_ALREADY_SIGNED 
-	&& *r_step != -1 && *r_step != 4) {
-	*r_step = step = -1;
+	&& ctx->cnt != -1 && ctx->cnt != 4) {
+	ctx->cnt = -1;
 	return "";
     }
-    if (*r_step == -1) {
-	*r_step = step = 4;
+    if (ctx->cnt == -1) {
+	ctx->cnt = 4;
 	return ""; /* empty value to abort. */
     }
-    if (step == 0 && !strcmp (key, "keyedit.prompt")) {
-	*r_step = step = 1;
+    if (ctx->cnt == 0 && !strcmp (key, "keyedit.prompt")) {
+	ctx->cnt = 1;
 	return "addrevoker";
     }
-    if (step == 1 && !strcmp (key, "keyedit.add_revoker")) {
-	*r_step = step = 2;
+    if (ctx->cnt == 1 && !strcmp (key, "keyedit.add_revoker")) {
+	ctx->cnt = 2;
 	return ctx->name;
     }
-    if (step == 2 && !strcmp (key, "keyedit.add_revoker.okay")) {
-	*r_step = step = 3;
+    if (ctx->cnt == 2 && !strcmp (key, "keyedit.add_revoker.okay")) {
+	ctx->cnt = 3;
 	return "Y";
     }
-    if (step == 3 && !strcmp (key, "passphrase.enter")) {
-	*r_step = step = 4;
+    if (ctx->cnt == 3 && !strcmp (key, "passphrase.enter")) {
+	ctx->cnt = 4;
 	return ctx->pass;
     }
-    if (step == 4 && !strcmp (key, "keyedit.prompt")) {
-	*r_step = step = 0;
+    if (ctx->cnt == 4 && !strcmp (key, "keyedit.prompt")) {
 	ctx->reset ();
 	return "save";
     }
@@ -662,9 +676,7 @@
 {
     if (!strcmp (key, "keyedit.prompt") && !ctx->cmd_sent) {
 	ctx->cmd_sent = 1;
-	if (mode)
-	    return "disable";
-	return "enable";
+	return mode? "disable": "enable";
     }
     if (!strcmp (key, "keyedit.prompt")) {
 	ctx->reset ();
@@ -679,7 +691,6 @@
 editkey_command_handler (void *opaque, gpgme_status_code_t code, 
 			 const char *key, int fd)
 {
-    static int step = 0; /* XXX use ke->cnt */
     const char *out = NULL;
     GpgKeyEdit *ke = (GpgKeyEdit *)opaque;
     HANDLE hd = (HANDLE)fd;
@@ -710,7 +721,6 @@
 	if (!strcmp (key, "keyedit.prompt"))
 	    WriteFile (hd, "quit\n", 5, &n, NULL);
 	ke->reset ();
-	step = 0;
 	return 0;
     }
     
@@ -732,15 +742,15 @@
 	break;
         
     case GPG_EDITKEY_DELUID:
-        out =  cmd_deluid_handler (ke, code, key, &step);
+        out =  cmd_deluid_handler (ke, code, key);
 	break;
         
     case GPG_EDITKEY_DELSIG:
-	out =  cmd_delsig_handler (ke, code, key, &step);
+	out =  cmd_delsig_handler (ke, code, key);
 	break;
 
     case GPG_EDITKEY_DELKEY:
-        out =  cmd_delkey_handler(ke, code, key, &step );
+        out =  cmd_delkey_handler(ke, code, key);
 	break;
         
     case GPG_EDITKEY_ADDKEY:
@@ -752,41 +762,45 @@
 	break;
         
     case GPG_EDITKEY_PRIMARY:
-        out =  cmd_primary_handler (ke, code, key, &step);
+        out =  cmd_primary_handler (ke, code, key);
 	break;
         
     case GPG_EDITKEY_EXPIRE:
-        out =  cmd_expire_handler (ke, code, key, &step);
+        out =  cmd_expire_handler (ke, code, key);
 	break;
 
     case GPG_EDITKEY_REVSIG:
-	out =  cmd_revsig_handler (ke, code, key, &step);
+	out =  cmd_revsig_handler (ke, code, key);
 	break;
 
     case GPG_EDITKEY_REVKEY:
-	out =  cmd_revkey_handler (ke, code, key, &step);
+	out =  cmd_revkey_handler (ke, code, key);
 	break;
 	    
     case GPG_EDITKEY_REVUID:
-	out = cmd_revuid_handler (ke, code, key, &step);
+	out = cmd_revuid_handler (ke, code, key);
 	break;
 
     case GPG_EDITKEY_ADDREV:
-	out =  cmd_addrev_handler (ke, code, key, &step);
+	out =  cmd_addrev_handler (ke, code, key);
 	break;
 
     case GPG_EDITKEY_ADDPHOTO:
 	out =  cmd_addphoto_handler (ke, code, key);
 	break;
 
+    case GPG_EDITKEY_NOTATION:
+	out = cmd_notation_handler (ke, code, key);
+	break;
+
     case GPG_EDITKEY_CLEAN:
 	out = cmd_clean_handler (ke, code, key);
 	break;
 
     case GPG_EDITKEY_ENABLE:
     case GPG_EDITKEY_DISABLE:
-	out = cmd_enable_disable_handler (ke, code, key, 
-					  ke->getType () == GPG_EDITKEY_DISABLE? 1: 0);
+	n = ke->getType () == GPG_EDITKEY_DISABLE? 1: 0;
+	out = cmd_enable_disable_handler (ke, code, key, n);
 	break; 
 
     case GPG_EDITKEY_SETPREF:
@@ -799,7 +813,6 @@
     }
 
     if (out != NULL) {
-	/* XXX: check return codes. */
 	WriteFile (hd, out, strlen (out), &n, NULL);
 	WriteFile (hd, "\n", 1, &n, NULL);
     }

Modified: trunk/Src/wptKeyEditDlgs.cpp
===================================================================
--- trunk/Src/wptKeyEditDlgs.cpp	2006-04-11 06:38:11 UTC (rev 199)
+++ trunk/Src/wptKeyEditDlgs.cpp	2006-04-17 09:12:50 UTC (rev 200)
@@ -24,8 +24,9 @@
 #include <windows.h>
 #include <commctrl.h>
 #include <time.h>
+#include <assert.h>
+
 #include "resource.h"
-
 #include "wptTypes.h"
 #include "wptW32API.h"
 #include "wptVersion.h"
@@ -62,7 +63,7 @@
     CMD_SIGN,
     CMD_LSIGN,
     CMD_CHECK,
-    CMD_CLEAN
+    CMD_CLEAN,
 };
 
 struct cmdlist_s {
@@ -133,11 +134,16 @@
     int	  algo;
     u32	  expire;
     char *fpr;
+    char *name;
+    char *comment;
+    char *email;
 };
 typedef struct keygen_cb_s *keygen_cb_t;
 
+/* Subclass context for the subkey list. */
+static subclass_s keyedit_subkey_proc;
 
-static subclass_s keyedit_subkey_proc;
+/* Subclass context for the user-id list. */
 static subclass_s keyedit_uid_proc;
 
 int keygen_check_date (SYSTEMTIME *st);
@@ -145,10 +151,22 @@
 char* get_subkey_keyid (const char *keyid);
 
 
+static GpgKeyEdit*
+create_GpgKeyEdit (const char *keyid)
+{
+    GpgKeyEdit *ke;
+
+    ke = new GpgKeyEdit (keyid);
+    if (!ke)
+	BUG (NULL);
+    return ke;
+}
+
+
 /* Associate each key with a combo box entry. 
    Skip the key in @k. */
 static void
-do_init_keylist (HWND dlg, winpt_key_t k)
+do_init_keylist (HWND dlg, const char *keyid)
 {
     gpg_keycache_t pub;
     gpgme_key_t key;
@@ -167,7 +185,7 @@
 	    continue;
 	s = key->uids->uid;
 	kid = key->subkeys->keyid;
-	if (!s || !strcmp (kid+8, k->keyid))
+	if (!s || !strcmp (kid+8, keyid))
 	    continue;
 	u = utf8_to_native (s);
 	SendDlgItemMessage (dlg, IDC_ADDREV_KEYLIST, CB_ADDSTRING, 
@@ -219,7 +237,7 @@
 do_add_new_subkey (listview_ctrl_t lv, keygen_cb_t keygen, unsigned int flags)
 {
     char info[128], keyid[32];
-    const char * expdate, * s;
+    const char *expdate, *s;
     int n;
     
     expdate = keygen->expire? get_key_expire_date (keygen->expire) : _("Never");
@@ -257,9 +275,7 @@
     char *ui_name = NULL;
     int pos = -1;
 
-    ke = new GpgKeyEdit (keyid);
-    if (!ke)
-	BUG (NULL);
+    ke = create_GpgKeyEdit (keyid);
     err = ke->getUseridInfo (&inf);
     delete ke;
     if (err) {
@@ -327,17 +343,17 @@
 BOOL CALLBACK
 keyedit_addphoto_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)
 {
-    static winpt_key_t k;        
+    static keyedit_cb_t cb;
     GpgKeyEdit *ke;
-    gpgme_error_t ec;    
-    const char * s;    
-    char pwd[128], file[128];
+    gpgme_error_t err;
+    const char *s;    
+    char file[128];
     int id;
 
     switch( msg ) {
     case WM_INITDIALOG:
-	k = (winpt_key_t)lparam;
-	if (!k)
+	cb = (keyedit_cb_t)lparam;
+	if (!cb)
 	    BUG (NULL);
 	SetDlgItemText (dlg, IDC_ADDPHOTO_INF, _("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 close to 240x288 is a good size to use."));
 	SetDlgItemText (dlg, IDC_ADDPHOTO_FILEINF, _("Pick an image to use for your photo ID.\nThe image must be a JPEG file."));
@@ -356,8 +372,7 @@
 	break;
 
     case WM_COMMAND:
-	switch( LOWORD( wparam ) ) {
-
+	switch( LOWORD (wparam)) {
 	case IDC_ADDPHOTO_SELFILE:
 	    s = get_fileopen_dlg (dlg, _("Select Image File"), 
 				  "JPEG Files (*.jpg, *.jpeg)\0*.jpg;*.jpeg\0\0",
@@ -383,27 +398,19 @@
 		if (id == IDNO)
 		    return TRUE;
 	    }
-	    if (k->is_protected &&
-		!GetDlgItemText (dlg, IDC_ADDPHOTO_PASS, pwd, sizeof (pwd)-1)) {
-		msg_box (dlg, _("Please enter a passphrase."), _("Add Photo"), MB_ERR);
-		return FALSE;
-	    }
-	    ke = new GpgKeyEdit (k->keyid);
-	    if (!ke)
-		BUG (NULL);
-	    if (k->is_protected)
-		ke->setPassphrase (pwd);
+	    ke = create_GpgKeyEdit (cb->keyid);
+	    if (cb->pass)
+		ke->setPassphrase (cb->pass);
 	    else
 		ke->setNoPassphrase (true);
-	    ec = ke->addPhotoid (file);
+	    err = ke->addPhotoid (file);
 	    delete ke;
-	    wipememory (pwd, sizeof (pwd));
-	    if (ec) {
-		msg_box (dlg, gpgme_strerror (ec), _("Add Photo"), MB_ERR );
+	    if (err) {
+		msg_box (dlg, gpgme_strerror (err), _("Add Photo"), MB_ERR);
 		return FALSE;
 	    }
 	    else {
-		k->update = 1;
+		cb->finished = 1;
 		msg_box (dlg, _("Photo successfully added."), 
 			 _("GnuPG Status"), MB_OK);
 	    }
@@ -424,22 +431,17 @@
 BOOL CALLBACK
 keyedit_addrevoker_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)
 {
-    static winpt_key_t k;
-    static gpgme_key_t seckey;
+    static keyedit_cb_t cb;
     gpgme_error_t err;
     GpgKeyEdit *ke;
-    char uid[128], pwd[128];
+    char uid[128];
 
     switch (msg) {
     case WM_INITDIALOG:
-	k = (winpt_key_t)lparam;
-	if (!k)
+	cb = (keyedit_cb_t)lparam;
+	if (!cb)
 	    BUG (NULL);
-	if (get_seckey (k->keyid, &seckey))
-	    BUG (NULL);
-	if (!k->is_protected)
-	    EnableWindow (GetDlgItem (dlg, IDC_ADDREV_PASS), FALSE);
-	do_init_keylist (dlg, k);
+	do_init_keylist (dlg, cb->keyid);
 	SetDlgItemText (dlg, IDC_ADDREV_INF, 
 			_("Appointing a key as designated revoker cannot be undone."));
 	SetDlgItemText (dlg, IDC_ADDREV_KEYINF, _("Public key"));
@@ -453,38 +455,31 @@
 	break;
 
     case WM_SYSCOMMAND:
-        if( LOWORD (wparam) == SC_CLOSE )
-            EndDialog( dlg, TRUE );
+        if (LOWORD (wparam) == SC_CLOSE)
+            EndDialog (dlg, FALSE);
 	break;
 
     case WM_COMMAND:
-	switch( LOWORD( wparam ) ) {
+	switch (LOWORD (wparam)) {
 	case IDOK:	    
 	    if( !GetDlgItemText( dlg, IDC_ADDREV_KEYLIST, uid, sizeof uid-1 ) ) {
 		msg_box( dlg, _("Please select a user ID."), _("Add Revoker"), MB_ERR );
 		return FALSE;
 	    }
 	
-	    if( k->is_protected ) {
-		if( !GetDlgItemText( dlg, IDC_ADDREV_PASS, pwd, sizeof pwd-1 ) ) {
-		    msg_box( dlg, _("Please enter the passphrase."), _("Add Revoker"), MB_ERR );
-		    return FALSE;
-		}
-	    }
-	    ke = new GpgKeyEdit (k->keyid);
-	    if (k->is_protected)
-		ke->setPassphrase (pwd);
+	    ke = create_GpgKeyEdit (cb->keyid);
+	    if (cb->pass)
+		ke->setPassphrase (cb->pass);
 	    else
 		ke->setNoPassphrase (true);
 	    err = ke->addDesignatedRevoker (uid);
 	    delete ke;
-	    wipememory (pwd, sizeof (pwd));
 	    if (err) {
 		msg_box (dlg, gpgme_strerror (err), _("Add Revoker"), MB_ERR);
 		return TRUE;
 	    }
 	    else {
-		k->update = 1;
+		cb->finished = 1;
 		msg_box (dlg, _("Revoker successfully addded."), 
 			 _("GnuPG Status"), MB_OK);
 	    }
@@ -506,6 +501,7 @@
 keyedit_adduid_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)
 {
     static keyedit_cb_t ctx;
+    keygen_cb_t keygen;
     gpgme_error_t err;
     GpgKeyEdit *ke;
     char *utf8_name = NULL;
@@ -515,7 +511,7 @@
     switch (msg) {
     case WM_INITDIALOG:
         ctx = (keyedit_cb_t)lparam;
-        if( !ctx )
+        if (!ctx)
             dlg_fatal_error(dlg, "Could not get dialog param!");
         SetWindowText (dlg, _("Add new User ID"));
         SetDlgItemText (dlg, IDC_ADDUID_INFNAME, _("&Name"));
@@ -533,7 +529,8 @@
     case WM_COMMAND:
         switch ( LOWORD( wparam ) )  {
         case IDOK:
-            rc = GetDlgItemText( dlg, IDC_ADDUID_NAME, name, sizeof name-1 );
+	    keygen = (keygen_cb_t)ctx->opaque;
+            rc = GetDlgItemText (dlg, IDC_ADDUID_NAME, name, sizeof name-1);
             if (!rc || rc < 5) {
                 msg_box( dlg, _("Please enter a name (min. 5 chars.)"), _("UserID"), MB_ERR );
                 return FALSE;
@@ -556,24 +553,22 @@
 				 comment, sizeof comment -1);
 	    utf8_name = native_to_utf8 (name);
 
-	    ke = new GpgKeyEdit (ctx->keyid);
-	    if (!ke)
-		BUG (NULL);
+	    ke = create_GpgKeyEdit (ctx->keyid);
 	    if (ctx->is_protected)
 		ke->setPassphrase (ctx->pass);
 	    else
 		ke->setNoPassphrase (true);
-	    err = ke->addUserid (utf8_name? utf8_name : name, 
-				 rc > 0? comment : NULL, email);
+	    err = ke->addUserid (utf8_name, rc > 0? comment : NULL, email);
 	    if (err)
 		msg_box (dlg, gpgme_strerror (err), _("UserID"), MB_ERR);
 	    else {
 		msg_box (dlg, _("user ID successfully added."), _("GnuPG Status"), MB_OK);
 		ctx->finished = 1;
+		keygen->name = m_strdup (utf8_name);
+		keygen->comment = rc > 0? m_strdup (comment) : NULL;
+		keygen->email = m_strdup (email);
 	    }
-	    delete ke;	    
-	    if (!err && ctx->lv)
-		do_add_new_userid (ctx->lv, utf8_name, email, rc?comment : NULL);
+	    delete ke;
 	    free (utf8_name);
             EndDialog (dlg, TRUE);
             return TRUE;
@@ -593,14 +588,20 @@
 init_keysize_box (HWND dlg, int ctlid)
 {
     const char *sizelist[] = {
-	"1024", "1536", "2048", "2560", "3072", "3854", "4096", NULL
+	"1024", "1536", 
+	"2048", "2560", 
+	"3072", "3854", 
+	"4096", NULL
     };
     int i;
+
     for (i=0; sizelist[i] != NULL; i++)
-	SendDlgItemMessage (dlg, ctlid, CB_ADDSTRING, 0, (LPARAM)(char*)sizelist[i]);
+	SendDlgItemMessage (dlg, ctlid, CB_ADDSTRING, 0, 
+			    (LPARAM)(char*)sizelist[i]);
     SendDlgItemMessage (dlg, ctlid, CB_SETCURSEL, (WPARAM)2, 0);
 }
 
+
 static int
 get_keysize_from_box (HWND dlg, int ctlid)
 {
@@ -634,11 +635,11 @@
 keyedit_addsubkey_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)
 {
     static keyedit_cb_t ctx;
-    static keygen_cb_t keygen;
+    keygen_cb_t keygen;
     GpgKeyEdit *ke;
     gpgme_error_t err;
     SYSTEMTIME st;
-    HWND lb;
+    HWND hwnd;
     int index, size, valid;
     
     switch (msg) {
@@ -646,7 +647,6 @@
         ctx = (keyedit_cb_t)lparam;
         if (!ctx)
             dlg_fatal_error (dlg, "Could not get dialog param!");
-	keygen = (keygen_cb_t)ctx->opaque;
 
         SetWindowText (dlg, _("Add new Subkey"));
         SetDlgItemText (dlg, IDC_ADDSUBKEY_INFALGO, _("Key type"));
@@ -655,11 +655,11 @@
 	SetDlgItemText (dlg, IDC_ADDSUBKEY_EXPIRE, _("&Never"));
 	SetDlgItemText (dlg, IDCANCEL, _("&Cancel"));
 
-        lb = GetDlgItem (dlg, IDC_ADDSUBKEY_ALGO);
-        listbox_add_string (lb, "DSA (sign only)");
-        listbox_add_string (lb, "ElGamal (encrypt only)");
-        listbox_add_string (lb, "RSA (sign only)");
-        listbox_add_string (lb, "RSA (encrypt only)");
+        hwnd = GetDlgItem (dlg, IDC_ADDSUBKEY_ALGO);
+        listbox_add_string (hwnd, "DSA (sign only)");
+        listbox_add_string (hwnd, "ElGamal (encrypt only)");
+        listbox_add_string (hwnd, "RSA (sign only)");
+        listbox_add_string (hwnd, "RSA (encrypt only)");
 	CheckDlgButton (dlg, IDC_ADDSUBKEY_EXPIRE, BST_CHECKED);
 	EnableWindow (GetDlgItem (dlg, IDC_ADDSUBKEY_EXPDATE), FALSE);
 	init_keysize_box (dlg, IDC_ADDSUBKEY_SIZE);
@@ -667,9 +667,8 @@
         return FALSE;
         
     case WM_SYSCOMMAND:
-        if (LOWORD (wparam) == SC_CLOSE) {
+        if (LOWORD (wparam) == SC_CLOSE)
             EndDialog (dlg, TRUE);
-        }
         return FALSE;
         
     case WM_COMMAND:
@@ -689,24 +688,28 @@
 
         switch (LOWORD (wparam)) {
         case IDOK:
-            lb = GetDlgItem (dlg, IDC_ADDSUBKEY_ALGO);
-	    switch (listbox_get_cursel (lb)) {
+	    keygen = (keygen_cb_t)ctx->opaque;
+	    assert (keygen);
+            hwnd = GetDlgItem (dlg, IDC_ADDSUBKEY_ALGO);
+	    switch (listbox_get_cursel (hwnd)) {
 	    case 0: index = 2; break;
 	    case 1: index = 4; break;
 	    case 2: index = 5; break;
 	    case 3: index = 6; break;
 	    default:
-                msg_box (dlg, _("Please select one entry."), _("Add Subkey"), MB_ERR);
+                msg_box (dlg, _("Please select one entry."), 
+			 _("Add Subkey"), MB_ERR);
                 return FALSE;
             }
 	    size = get_keysize_from_box (dlg, IDC_ADDSUBKEY_SIZE);
             if (index == 2 && size != 1024) {
-                msg_box (dlg,_("DSS uses a fixed keysize of 1024. Size changed."), 
+                msg_box (dlg,_("DSS uses a fixed keysize of 1024. Size changed."),
 			 _("Add Subkey"), MB_INFO);
                 size = 1024;
             }
 
-	    DateTime_GetSystemtime (GetDlgItem (dlg, IDC_ADDSUBKEY_EXPDATE), &st);
+	    hwnd = GetDlgItem (dlg, IDC_ADDSUBKEY_EXPDATE);
+	    DateTime_GetSystemtime (hwnd, &st);
 	    valid = w32_mktime (&st) - time (NULL);
 	    valid /= 86400;
 
@@ -720,9 +723,7 @@
 	    if (valid > 0)
 		keygen->expire = time (NULL) + valid*24*60*60;
 
-	    ke = new GpgKeyEdit (ctx->keyid);
-	    if (!ke)
-		BUG (NULL);
+	    ke = create_GpgKeyEdit (ctx->keyid);
 	    ke->setCallback (keygen_cb, NULL);
 	    if (ctx->is_protected)
 		ke->setPassphrase (ctx->pass);
@@ -737,9 +738,8 @@
 	    if (err)
 		msg_box (dlg, gpgme_strerror (err), _("Add Subkey"), MB_ERR);
 	    else {
-		msg_box (dlg, _("Subkey successfully added."), _("GnuPG Status"), MB_OK);
-		if (ctx->lv)
-		    do_add_new_subkey (ctx->lv, keygen, 0);
+		msg_box (dlg, _("Subkey successfully added."), 
+			 _("GnuPG Status"), MB_OK);
 		ctx->finished = 1;
 	    }
 	    delete ke;
@@ -761,38 +761,46 @@
 keyedit_add_userid (winpt_key_t k, HWND dlg, listview_ctrl_t lv)
 {
     keyedit_cb_s cb;
+    keygen_cb_s keygen;
     char *pass = NULL;
     int cancel = 0;
 
     if (!k->key_pair) {
-	msg_box( dlg, _("There is no secret key available!"), _("Add user ID"), MB_ERR );
+	msg_box (dlg, _("There is no secret key available!"), 
+		 _("Add user ID"), MB_ERR);
         return FALSE;
     }
 
     if (k->is_protected) {
-	pass = request_passphrase( _("Key Edit"), 1, &cancel );
+	pass = request_passphrase (_("Key Edit"), 1, &cancel);
 	if (cancel)
 	    return FALSE;
     }
-	   
+
+    memset (&keygen, 0, sizeof (keygen));
     memset (&cb, 0, sizeof cb);
+    cb.opaque = &keygen;
     cb.is_protected = k->is_protected;
     cb.pass = pass;
-    cb.lv = lv;
     cb.keyid = k->keyid;
     dialog_box_param (glob_hinst, (LPCSTR)IDD_WINPT_KEYEDIT_ADDUID,
 		      dlg, keyedit_adduid_dlg_proc,         
 		      (LPARAM)&cb, _("Add user ID"),
 		      IDS_WINPT_KEYEDIT_ADDUID);
-
+    if (lv != NULL && cb.finished)
+	do_add_new_userid (lv, keygen.name, keygen.email, keygen.comment);
     if (cb.finished)
 	k->update = 1;
 
+    free_if_alloc (keygen.name);
+    free_if_alloc (keygen.email);
+    free_if_alloc (keygen.comment);
     sfree_if_alloc (pass);
     return TRUE;
 }
 
 
+/* Return the keyID of the last subkey. */
 char*
 get_subkey_keyid (const char *keyid)
 {
@@ -800,7 +808,7 @@
     gpgme_key_t key;
     gpgme_ctx_t ctx;
     gpgme_subkey_t subk;
-    char *kid;
+    char *kid = NULL;
 
     err = gpgme_new (&ctx);
     if (err)
@@ -810,7 +818,8 @@
     if (err)
 	return NULL;
     subk = get_nth_key (key, count_subkeys (key));
-    kid = strdup (subk->keyid);
+    if (subk != NULL)
+	kid = strdup (subk->keyid);
     gpgme_key_release (key);
     return kid;
 }
@@ -825,7 +834,8 @@
     int cancel = 0;
 
     if (!k->key_pair) {
-	msg_box (dlg, _("There is no secret key available!"), _("Add Subkey"), MB_ERR);
+	msg_box (dlg, _("There is no secret key available!"), 
+		 _("Add Subkey"), MB_ERR);
         return FALSE;
     }
     if (k->is_protected) {
@@ -836,7 +846,6 @@
 
     memset (&keygen, 0, sizeof (keygen));
     memset (&cb, 0, sizeof (cb));
-    cb.lv = lv;
     cb.keyid = k->keyid;
     cb.is_protected = k->is_protected;
     cb.pass = pass;
@@ -845,11 +854,13 @@
 		      dlg, keyedit_addsubkey_dlg_proc,
 		      (LPARAM)&cb, _("Add new Subkey"),
 		      IDS_WINPT_KEYEDIT_ADDSUBKEY);
-    safe_free (keygen.fpr);
+    if (lv != NULL && cb.finished)
+	do_add_new_subkey (lv, &keygen, 0);
     if (cb.finished)
 	k->update = 1;
 
-    sfree_if_alloc (pass);    
+    safe_free (keygen.fpr);
+    sfree_if_alloc (pass);
     return cb.finished? TRUE: FALSE;
 }
 
@@ -860,7 +871,7 @@
     GpgKeyEdit *ke;
     gpgme_error_t err;
     struct URL_ctx_s *url;
-    char *pass;
+    char *pass = NULL;
 
     url = (struct URL_ctx_s *)get_keyserver_URL_dlg (dlg);
     if (url->cancel == 1) {
@@ -874,9 +885,7 @@
 	return FALSE;
     }
 
-    ke = new GpgKeyEdit (k->keyid);
-    if (!ke)
-	BUG (NULL);
+    ke = create_GpgKeyEdit (k->keyid);
     if (k->is_protected)
 	ke->setPassphrase (pass);
     else
@@ -899,13 +908,31 @@
 BOOL
 keyedit_add_photo (winpt_key_t k, HWND dlg)
 {
+    keyedit_cb_s cb;
+    char *pass = NULL;
+    int cancel;
+    
     if (!k->key_pair) {
 	msg_box (dlg, _("There is no secret key available!"), 
 		 _("Add Photo"), MB_ERR);
         return FALSE;
     }
+
+    memset (&cb, 0, sizeof (cb));
+    if (k->is_protected) {
+	pass = request_passphrase (_("Key Edit"), 1, &cancel);
+	if (cancel)
+	    return FALSE;
+    }
+    cb.pass = pass;
+    cb.keyid = k->keyid;
+
     DialogBoxParam (glob_hinst, (LPCTSTR)IDD_WINPT_KEYEDIT_ADDPHOTO, dlg,
-		    keyedit_addphoto_dlg_proc, (LPARAM)k);
+		    keyedit_addphoto_dlg_proc, (LPARAM)&cb);
+
+    if (cb.finished)
+	k->update = 1;
+    sfree_if_alloc (pass);    
     return TRUE;
 }
 
@@ -913,12 +940,31 @@
 BOOL
 keyedit_add_revoker (winpt_key_t k, HWND dlg)
 {
+    keyedit_cb_s cb;
+    char *pass = NULL;
+    int cancel;
+
     if (!k->key_pair) {
 	msg_box (dlg, _("There is no secret key available!"), _("Add Revoker"), MB_ERR);
         return FALSE;
     }
+
+    if (k->is_protected) {
+	pass = request_passphrase (_("Key Edit"), 1, &cancel);
+	if (cancel)
+	    return FALSE;
+    }
+
+    memset (&cb, 0, sizeof (cb));
+    cb.is_protected = k->is_protected;
+    cb.keyid = k->keyid;
+    cb.pass = pass;
     DialogBoxParam (glob_hinst, (LPCTSTR)IDD_WINPT_KEYEDIT_ADDREV, dlg,
-		    keyedit_addrevoker_dlg_proc, (LPARAM)k);
+		    keyedit_addrevoker_dlg_proc, (LPARAM)&cb);
+
+    if (cb.finished)
+	k->update = 1;
+    sfree_if_alloc (pass);
     return TRUE;
 }
 
@@ -972,7 +1018,7 @@
 BOOL
 keyedit_change_passwd (winpt_key_t k, HWND dlg)
 {
-    gpgme_error_t ec;
+    gpgme_error_t err;
     GpgKeyEdit *ke;
     char *old_pass = NULL;
     char *new_pass = NULL;
@@ -1011,14 +1057,11 @@
 	return FALSE;
     }
 
-    ke = new GpgKeyEdit (k->keyid);
-    if (!ke)
-	BUG (NULL);
-
+    ke = create_GpgKeyEdit (k->keyid);
     ke->setPassphrase (k->is_protected? old_pass : NULL);
-    ec = ke->changePassphrase (new_pass, 0);
-    if( ec )
-	msg_box (dlg, gpgme_strerror (ec), _("Change Passwd"), MB_ERR);
+    err = ke->changePassphrase (new_pass, 0);
+    if (err)
+	msg_box (dlg, gpgme_strerror (err), _("Change Passwd"), MB_ERR);
     else
 	msg_box (dlg, _("Passphrase successfully changed."),  _("GnuPG status"), MB_OK);
     sfree_if_alloc (old_pass);
@@ -1053,8 +1096,8 @@
     const char *t;
     int nkeys = 0, rc = 0, i, bits;    
 
-    if( get_pubkey( k->keyid, &key ) ) {
-	msg_box( dlg, _("Could not find key."), _("Key Edit"), MB_ERR );
+    if (get_pubkey (k->keyid, &key)) {
+	msg_box (dlg, _("Could not find key."), _("Key Edit"), MB_ERR);
 	return NULL;
     }
     if (!k->ctx)
@@ -1131,7 +1174,7 @@
 	listview_add_sub_item (lv, i, 8, t);
     }
     return lv;
-} /* subkey_list_init */
+}
 
 
 static listview_ctrl_t
@@ -1208,7 +1251,7 @@
 	CheckDlgButton( dlg, IDC_KEYUID_REVOKE, BST_INDETERMINATE );	
     }
     return lv;
-} /* userid_list_init */
+}
 
 
 static void
@@ -1301,13 +1344,15 @@
         return FALSE;
     }
      
-    listview_get_item_text( lv, j, 0, tmp, sizeof tmp -1 );
-    id = log_box( _("Key Edit"), MB_YESNO|MB_ICONWARNING,
+    /* XXX: change the warning to make clear that verification won't work
+	    any longer if this is a sign-only key. */
+    listview_get_item_text (lv, j, 0, tmp, sizeof (tmp) -1);
+    id = log_box (_("Key Edit"), MB_YESNO|MB_ICONWARNING,
 		    _("\"Subkey %s.\"\n\n"
 		      "Anything encrypted to the selected subkey will no longer\n"
 		      "be able to be decrypted.\n\n"
-		      "Do you really want to delete this subkey?"), tmp );
-    if( id == IDNO )
+		      "Do you really want to delete this subkey?"), tmp);
+    if (id == IDNO)
 	return FALSE;
 
     ke = new GpgKeyEdit (k->keyid);
@@ -1323,10 +1368,9 @@
     }
     delete ke;
     return err? FALSE : TRUE;
-} /* do_editkey_delkey */
+}
 
 
-
 /* Set the expiration date for the selected key in list view @lv.
    Return value: TRUE on success. */
 static int
@@ -1675,19 +1719,20 @@
 {
     static keyedit_cb_t cb = NULL;
     gpg_uid_info_t inf=NULL;
+    gpgme_key_t key;
     char buf[128];
     int pos;
 
     switch (msg) {
     case WM_INITDIALOG:
 	cb = (keyedit_cb_t)lparam;
-	if (cb == NULL)
-	    BUG (dlg);
-	pos = listview_get_curr_pos (cb->lv);
-	listview_get_item_text (cb->lv, pos, 2, buf, DIM (buf)-1);
+	if (!cb)
+	    BUG (NULL);
+	key = (gpgme_key_t)cb->opaque;
+	_snprintf (buf, sizeof (buf)-1, "%s <%s>",
+		    key->uids->name, key->uids->email);
 	SetDlgItemText (dlg, IDC_SHOWPREF_INFO, buf);
-	pos = do_find_userid (((winpt_key_t)cb->opaque)->keyid, 
-			      buf, NULL, &inf);
+	pos = do_find_userid (cb->keyid, key->uids->email, NULL, &inf);
 	if (inf) {
 	    const char *prefs = inf->prefs;
 	    if (prefs && *prefs) {
@@ -1706,6 +1751,7 @@
 	}
 	SetDlgItemText (dlg, IDC_SHOWPREF_MDC, _("MDC feature"));
 	SetDlgItemText (dlg, IDC_SHOWPREF_PREFINF, _("Preferences"));
+	SetDlgItemText (dlg, IDC_SHOWPREF_UIDHINT, _("user ID:"));
 	SetWindowText (dlg, _("Key Preferences"));
 	SetForegroundWindow (dlg);
 	break;
@@ -1736,8 +1782,8 @@
     }
 
     memset (&cb, 0, sizeof (cb));
-    cb.lv = lv;
-    cb.opaque = k;
+    cb.opaque = k->ctx;
+    cb.keyid = k->keyid;
     DialogBoxParam (glob_hinst, (LPCTSTR)IDD_WINPT_KEYEDIT_SHOWPREF, dlg,
 		    showpref_dlg_proc, (LPARAM)&cb);
     return TRUE;
@@ -1821,9 +1867,9 @@
 	    break;
 
 	case VK_INSERT:
-	    SendDlgItemMessage( keyedit_subkey_proc.dlg, IDC_KEYEDIT_CMD, 
-				CB_SETCURSEL, CMD_ADDKEY, 0 );
-	    send_cmd_id( keyedit_subkey_proc.dlg, IDOK );
+	    SendDlgItemMessage (keyedit_subkey_proc.dlg, IDC_KEYEDIT_CMD, 
+				CB_SETCURSEL, CMD_ADDKEY, 0);
+	    send_cmd_id (keyedit_subkey_proc.dlg, IDOK);
 	    break;
 	}
     }
@@ -1892,9 +1938,7 @@
     gpgme_error_t err;
     GpgKeyEdit *ke;
     
-    ke = new GpgKeyEdit (k->keyid);
-    if (!ke)
-	BUG (0);
+    ke = create_GpgKeyEdit (k->keyid);
     err = ke->cleanKey ();
     if (err)
 	msg_box (dlg, gpgme_strerror (err), _("Key Edit"), MB_ERR);   
@@ -1950,7 +1994,7 @@
 	if (cancel)
 	    return FALSE;
     }
-    ke = new GpgKeyEdit (k->keyid);
+    ke = create_GpgKeyEdit (k->keyid);
     if (k->is_protected)
 	ke->setPassphrase (pass);
     else

Modified: trunk/Src/wptKeyManager.cpp
===================================================================
--- trunk/Src/wptKeyManager.cpp	2006-04-11 06:38:11 UTC (rev 199)
+++ trunk/Src/wptKeyManager.cpp	2006-04-17 09:12:50 UTC (rev 200)
@@ -25,6 +25,7 @@
 
 #include <windows.h>
 #include <commctrl.h>
+#include <assert.h>
 #include <stdio.h>
 
 #include "gpgme.h"
@@ -1006,3 +1007,69 @@
     safe_free (uid);
     return p;
 }
+
+
+/* Retrieve the GPGME pointer from the selected list view
+   item and return the WinPT specific key context. */
+int
+km_get_key (listview_ctrl_t lv, int pos, winpt_key_t k)
+{
+    gpgme_key_t key;
+
+    if (pos == -1)
+	return -1;
+    key = (gpgme_key_t)listview_get_item2 (lv, pos);
+    if (!key)
+	BUG (NULL);
+    memset (k, 0, sizeof (*k));
+    strncpy (k->tmp_keyid, key->subkeys->keyid+8, 8);
+    k->keyid = k->tmp_keyid;
+    k->is_protected = km_check_if_protected (lv, pos);
+    k->key_pair = km_check_for_seckey (lv, pos, NULL);
+    k->is_v3 = km_key_is_v3 (lv, pos);
+    k->flags = km_get_key_status (lv, pos);
+    k->ctx = key;
+    k->uid = key->uids->uid;
+    return 0;
+}
+
+
+/* Show details of the revocation of the key @k. */
+void
+km_key_show_revoc_info (winpt_key_t k)
+{
+    const char *desc;
+    char *val=NULL, *p;
+    int len, reason;
+    const char *reasons[] = {
+	_("0. No reason specified"),
+	_("1. Key has been compromised"),
+	_("2. Key is superseded"),
+	_("3. Key is no longer used"),
+	NULL
+    };
+
+    /* spk:29:1:19:%00This key is kaputt */
+    gpg_find_key_subpacket (k->keyid, 29, &val);    
+    if (!val || strlen (val) < 3) {
+	safe_free (val);
+	return;
+    }
+
+    len = atoi (val+9);
+    p = strchr (val+9, ':');
+    assert (p);
+    p++;
+    reason = atoi (p+1);
+    if (strlen (p+1) > 0)
+	desc = p+3;
+    else
+	desc = "none";
+    log_box (_("Key Manager"), MB_OK, 
+	     "Key revocation info for '%s':\n"
+	     "Reason for revocation: %s\n"
+	     "Description: %s\n",
+	     k->ctx->uids->name, reasons[reason % 4]+3,
+	     desc);
+    safe_free (val);
+}

Modified: trunk/Src/wptKeyManagerDlg.cpp
===================================================================
--- trunk/Src/wptKeyManagerDlg.cpp	2006-04-11 06:38:11 UTC (rev 199)
+++ trunk/Src/wptKeyManagerDlg.cpp	2006-04-17 09:12:50 UTC (rev 200)
@@ -1497,11 +1497,7 @@
             }
             if (km_check_key_status (kmi->lv, kmi->lv_idx))
                 return TRUE;
-	    key = (gpgme_key_t)listview_get_item2 (kmi->lv, kmi->lv_idx);
-	    memset (&k, 0, sizeof (k));
-	    strncpy (k.tmp_keyid, key->subkeys->keyid+8, 8);
-	    k.ctx = key;
-	    k.keyid = key->subkeys->keyid;
+	    km_get_key (kmi->lv, kmi->lv_idx, &k);
 	    dialog_box_param (glob_hinst, (LPCSTR)IDD_WINPT_KEYSIGN, dlg,
                               keysign_dlg_proc, (LPARAM)&k, 
                               _("Key Signing"), IDS_WINPT_KEYSIGN);
@@ -1514,15 +1510,7 @@
                 msg_box (dlg, _("Please select a key."), _("Key Manager"), MB_ERR);
                 return TRUE;
             }
-	    key = (gpgme_key_t)listview_get_item2 (kmi->lv, kmi->lv_idx);
-	    if (!key)
-		BUG (NULL);
-            if (!km_check_for_seckey (kmi->lv, kmi->lv_idx, NULL)) {
-                msg_box (dlg, _("There is no secret key available!"), 
-			_("Key Manager"), MB_ERR);
-                return TRUE;
-            }
-            
+                
             {
                 char state[64];
                 listview_get_item_text (kmi->lv, kmi->lv_idx, 5, 
@@ -1533,11 +1521,13 @@
                     return TRUE;
                 }
             }
-            
-	    memset (&k, 0, sizeof (k));
-            k.key_pair = 1;
-            k.keyid = key->subkeys->keyid+8;
-	    k.is_protected = km_check_if_protected (kmi->lv, kmi->lv_idx);
+
+	    km_get_key (kmi->lv, kmi->lv_idx, &k);
+	    if (!k.key_pair) {
+		msg_box (dlg, _("There is no secret key available!"), 
+			_("Key Manager"), MB_ERR);
+                return TRUE;
+            }
             dialog_box_param(glob_hinst, (LPCSTR)IDD_WINPT_KEYREVOKE, dlg,
                              key_revoke_dlg_proc, (LPARAM)&k,
                              _("Key Revocation Cert"), IDS_WINPT_KEYREVOKE);
@@ -1548,15 +1538,12 @@
                 msg_box (dlg, _("Please select a key."), _("Key Manager"), MB_ERR);
                 return TRUE;
             }
-	    key = (gpgme_key_t)listview_get_item2 (kmi->lv, kmi->lv_idx);
-            if (km_check_for_seckey (kmi->lv, kmi->lv_idx, NULL)) {
+	    km_get_key (kmi->lv, kmi->lv_idx, &k);
+	    if (!k.key_pair) {
                 msg_box (dlg, _("It does not make any sense with a key pair!"), 
 			 _("Key Manager"), MB_ERR);
                 return TRUE;
             }
-	    memset (&k, 0, sizeof (k));
-            k.keyid = key->subkeys->keyid+8;
-            k.uid = key->uids->uid;
             dialog_box_param (glob_hinst, (LPCSTR)IDD_WINPT_KEYTRUST, dlg, 
                               keytrust_dlg_proc, (LPARAM)&k, 
                               _("List Trust Path"), IDS_WINPT_KEYTRUST);
@@ -1567,14 +1554,7 @@
                 msg_box (dlg, _("Please select a key."), _("Key Manager"), MB_ERR);
                 return TRUE;
             }
-	    key = (gpgme_key_t)listview_get_item2 (kmi->lv, kmi->lv_idx);
-	    if (!key)
-		BUG (NULL);
-	    memset (&k, 0, sizeof (k));
-	    strncpy (k.tmp_keyid, key->subkeys->keyid+8, 8);
-            k.keyid = k.tmp_keyid;
-            k.uid = key->uids->uid;
-	    k.ctx = (gpgme_key_t)listview_get_item2 (kmi->lv, kmi->lv_idx);
+	    km_get_key (kmi->lv, kmi->lv_idx, &k);
             dialog_box_param (glob_hinst, (LPCSTR)IDD_WINPT_KEYSIG_TREE, dlg, 
                               sigtree_dlg_proc, (LPARAM)&k,
                               _("Key Signature List"), IDS_WINPT_KEYSIG);
@@ -1587,16 +1567,9 @@
                 msg_box (dlg, _("Please select a key."), _("Key Manager"), MB_ERR);
                 return TRUE;
             }
-	    key = (gpgme_key_t)listview_get_item2 (kmi->lv, kmi->lv_idx);
-	    if (!key)
-		BUG (NULL);
-	    memset (&k, 0, sizeof (k));
-	    strncpy (k.tmp_keyid, key->subkeys->keyid+8, 8);
-	    k.keyid = k.tmp_keyid;
-            k.key_pair = km_check_for_seckey (kmi->lv, kmi->lv_idx, NULL)? 1 : 0;
+	    km_get_key (kmi->lv, kmi->lv_idx, &k);
 	    k.callback.ctl = kmi->lv;
 	    k.callback.idx = kmi->lv_idx;
-	    k.is_v3 = km_key_is_v3 (kmi->lv, kmi->lv_idx);
             dialog_box_param (glob_hinst, (LPCSTR)IDD_WINPT_KEYPROPS, dlg,
                               keyprops_dlg_proc, (LPARAM)&k,
                               _("Key Properties"), IDS_WINPT_KEYPROPS);
@@ -1608,12 +1581,10 @@
             if (updated_keys_avail ())
                 l_idx = IDYES;
             else {
-                char inf[256];
-                _snprintf (inf, sizeof (inf) -1,
+                l_idx = log_box (_("Key Manager"), MB_YESNO,
                            _("This is only useful when the keyring has been "
                              "modified (sign a key...).\n"
                              "Do you really want to reload the keycache?"));
-                l_idx = msg_box (dlg, inf, _("Key Manager"), MB_YESNO);
             }
             if (l_idx == IDYES)
                 reload_keycache (kmi);
@@ -1772,19 +1743,8 @@
 	    break;
 
 	case ID_KEYMISC_EDITKEY:
-	    if (kmi->lv_idx == -1)
+	    if (km_get_key (kmi->lv, kmi->lv_idx, &k))
 		break;
-	    key = (gpgme_key_t)listview_get_item2 (kmi->lv, kmi->lv_idx);
-	    if (!key)
-		BUG (NULL);
-	    /* XXX: pub/crd = secret key does not work */
-	    memset (&k, 0, sizeof (k));
-	    strncpy (k.tmp_keyid, key->subkeys->keyid+8, 8);
-	    k.keyid = k.tmp_keyid;
-	    k.is_protected = km_check_if_protected (kmi->lv, kmi->lv_idx);
-	    k.key_pair = km_check_for_seckey (kmi->lv, kmi->lv_idx, NULL);
-	    k.is_v3 = km_key_is_v3 (kmi->lv, kmi->lv_idx);
-	    k.flags = km_get_key_status (kmi->lv, kmi->lv_idx);
 	    dialog_box_param (glob_hinst, (LPCTSTR)IDD_WINPT_KEYEDIT, dlg,
 			      keyedit_main_dlg_proc, (LPARAM)&k,
 			      _("Key Edit"), IDS_KEYCTX_EDIT);
@@ -1805,13 +1765,8 @@
             break;
             
 	case ID_KEYCTX_SETPREFKS:
-	    key = (gpgme_key_t)listview_get_item2 (kmi->lv, kmi->lv_idx);
-	    if (!key)
-		BUG (NULL);
-	    memset (&k, 0, sizeof (k));
-	    strncpy (k.tmp_keyid, key->subkeys->keyid+8, 8);
-	    k.keyid = k.tmp_keyid;
-	    k.is_protected = km_check_if_protected (kmi->lv, kmi->lv_idx);
+	    if (km_get_key (kmi->lv, kmi->lv_idx, &k))
+		break;
 	    keyedit_set_pref_keyserver (&k, dlg);
 	    break;
 
@@ -1859,56 +1814,28 @@
 	    break;
 
 	case ID_KEYCTX_ADDKEY:
-            key = (gpgme_key_t)listview_get_item2 (kmi->lv, kmi->lv_idx);
-	    if (!key)
-		BUG (NULL);
-	    memset (&k, 0, sizeof (k));
-	    strncpy (k.tmp_keyid, key->subkeys->keyid+8, 8);
-	    k.keyid = k.tmp_keyid;
-            k.key_pair = km_check_for_seckey (kmi->lv, kmi->lv_idx, NULL);
-	    k.is_protected = km_check_if_protected (kmi->lv, kmi->lv_idx);
+            km_get_key (kmi->lv, kmi->lv_idx, &k);
 	    keyedit_add_subkey (&k, dlg, NULL);
 	    if (k.update)
 		update_key (kmi->lv, kmi->lv_idx, k.tmp_keyid, 1);
 	    break;
 
 	case ID_KEYCTX_ADDUID:
-	    key = (gpgme_key_t)listview_get_item2 (kmi->lv, kmi->lv_idx);
-	    if (!key)
-		BUG (NULL);
-	    memset (&k, 0, sizeof (k));
-	    strncpy (k.tmp_keyid, key->subkeys->keyid+8, 8);
-	    k.keyid = k.tmp_keyid;
-	    k.key_pair = km_check_for_seckey (kmi->lv, kmi->lv_idx, NULL);
-	    k.is_protected = km_check_if_protected (kmi->lv, kmi->lv_idx);
+	    km_get_key (kmi->lv, kmi->lv_idx, &k);
 	    keyedit_add_userid (&k, dlg, NULL);
 	    if (k.update)
 		update_key (kmi->lv, kmi->lv_idx, k.tmp_keyid, 1);
 	    break;
 
 	case ID_KEYCTX_ADDREV:
-	    key = (gpgme_key_t)listview_get_item2 (kmi->lv, kmi->lv_idx);
-	    if (!key)
-		BUG (NULL);
-	    memset (&k, 0, sizeof (k));
-	    strncpy (k.tmp_keyid, key->subkeys->keyid+8, 8);
-	    k.keyid = k.tmp_keyid;
-	    k.is_protected = km_check_if_protected (kmi->lv, kmi->lv_idx);
-	    k.key_pair = km_check_for_seckey (kmi->lv, kmi->lv_idx, NULL);
+	    km_get_key (kmi->lv, kmi->lv_idx, &k);
 	    keyedit_add_revoker (&k, dlg);
 	    if (k.update)
 		update_key (kmi->lv, kmi->lv_idx, k.tmp_keyid, 1);
 	    break;
 
 	case ID_KEYCTX_ADDPHOTO:
-	    key = (gpgme_key_t)listview_get_item2 (kmi->lv, kmi->lv_idx);
-	    if (!key)
-		BUG (NULL);
-	    memset (&k, 0, sizeof (k));
-	    strncpy (k.tmp_keyid, key->subkeys->keyid+8, 8);
-	    k.keyid = k.tmp_keyid;
-	    k.is_protected = km_check_if_protected (kmi->lv, kmi->lv_idx);
-	    k.key_pair = km_check_for_seckey (kmi->lv, kmi->lv_idx, NULL);
+	    km_get_key (kmi->lv, kmi->lv_idx, &k);
 	    keyedit_add_photo (&k, dlg);
 	    if (k.update)
 		update_key (kmi->lv, kmi->lv_idx, k.tmp_keyid, 1);
@@ -1959,17 +1886,11 @@
 	case ID_KEYCTX_DISABLE:
 	case ID_KEYCTX_ENABLE:
 	    i = LOWORD (wparam) == ID_KEYCTX_ENABLE? 1 : 0;
-	    key = (gpgme_key_t)listview_get_item2 (kmi->lv, kmi->lv_idx);
-	    if (!key)
-		BUG (NULL);
-	    memset (&k, 0, sizeof (k));
-	    strncpy (k.tmp_keyid, key->subkeys->keyid+8, 8);
-	    k.keyid = k.tmp_keyid;
+	    if (km_get_key (kmi->lv, kmi->lv_idx, &k))
+		break;
 	    rc = km_enable_disable_key (kmi->lv, dlg, kmi->lv_idx, i);
 	    if (!rc)
 		update_key (kmi->lv, kmi->lv_idx, k.tmp_keyid, 0);
-	    /* XXX: switching a key from disabled -> enabled. does not
-	       change the validity field in the KM. */
 	    break;
 
         case ID_KEYCTX_LISTSIGS: 
@@ -1977,12 +1898,8 @@
 	    break;
 
 	case ID_KEYCTX_MAXTRUST:
-	    key = (gpgme_key_t)listview_get_item2 (kmi->lv, kmi->lv_idx);
-	    if (!key)
-		BUG (NULL);
-	    memset (&k, 0, sizeof (k));
-	    strncpy (k.tmp_keyid, key->subkeys->keyid+8, 8);
-	    k.keyid = k.tmp_keyid;
+	    if (km_get_key (kmi->lv, kmi->lv_idx, &k))
+		break;
 	    rc = km_set_implicit_trust (dlg, kmi->lv, kmi->lv_idx);
 	    if (!rc)
 		update_key (kmi->lv, kmi->lv_idx, k.tmp_keyid, 0);
@@ -2003,13 +1920,11 @@
 	case ID_KEYMISC_VIEWTYPE:
 	case ID_KEYMISC_VIEWCREAT:
 	case ID_KEYMISC_VIEWDESC:
-	    DWORD n;
-
 	    hm = GetMenu (dlg);
-	    n = get_menu_state (hm, LOWORD (wparam));
+	    i = get_menu_state (hm, LOWORD (wparam));
 	    set_menu_state (hm, LOWORD (wparam), 
-			    n & MFS_CHECKED? MFS_UNCHECKED : MFS_CHECKED);
-	    modify_listview_columns (kmi, LOWORD (wparam), !(n & MFS_CHECKED));
+			    i & MFS_CHECKED? MFS_UNCHECKED : MFS_CHECKED);
+	    modify_listview_columns (kmi, LOWORD (wparam), !(i & MFS_CHECKED));
 	    break;
 
 	case ID_GROUP_NEW:

Modified: trunk/Src/wptKeyRevokeDlg.cpp
===================================================================
--- trunk/Src/wptKeyRevokeDlg.cpp	2006-04-11 06:38:11 UTC (rev 199)
+++ trunk/Src/wptKeyRevokeDlg.cpp	2006-04-17 09:12:50 UTC (rev 200)
@@ -70,10 +70,32 @@
 	gpg_data_release_and_set_file (rev, fname);
     else
 	msg_box (NULL, gpgme_strerror (err), _("Key Revocation Cert"), MB_ERR);
-    free (revcert);
+    safe_free (revcert);
 }
 
 
+static void
+on_init_dialog (HWND dlg)
+{
+    HWND list;
+
+    SetWindowText (dlg, _("Key Revocation Cert"));
+    SetDlgItemText (dlg, IDCANCEL, _("&Cancel"));
+    SetDlgItemText (dlg, IDC_KEYREVOKE_REASONINF, _("Reason for revocation"));
+    SetDlgItemText (dlg, IDC_KEYREVOKE_OPTINF, _("Optional description text"));
+    SetDlgItemText (dlg, IDC_KEYREVOKE_PWDINF, _("&Passphrase"));
+    SetDlgItemText (dlg, IDC_KEYREVOKE_OUTINF, _("Output file"));
+    list = GetDlgItem (dlg, IDC_KEYREVOKE_REASON);
+    listbox_add_string (list, _("0. No reason specified"));
+    listbox_add_string (list, _("1. Key has been compromised"));
+    listbox_add_string (list, _("2. Key is superseded"));
+    listbox_add_string (list, _("3. Key is no longer used"));
+    SendMessage (list, LB_SETCURSEL, (WPARAM)0, 0);
+    SetForegroundWindow (dlg);
+    center_window (dlg, NULL);
+}
+
+
 /* Dialog box procedure for key revocation. */
 BOOL CALLBACK
 key_revoke_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)
@@ -94,30 +116,15 @@
     
     switch( msg ) {
     case WM_INITDIALOG:
-        if( !lparam )
-            dlg_fatal_error(dlg, "Could not get dialog param!");
+        if (!lparam)
+            dlg_fatal_error (dlg, "Could not get dialog param!");
         k = (winpt_key_t )lparam;
-        SetWindowText (dlg, _("Key Revocation Cert"));
-	SetDlgItemText (dlg, IDCANCEL, _("&Cancel"));
-	SetDlgItemText (dlg, IDC_KEYREVOKE_REASONINF, _("Reason for revocation"));
-	SetDlgItemText (dlg, IDC_KEYREVOKE_OPTINF, _("Optional description text"));
-	SetDlgItemText (dlg, IDC_KEYREVOKE_PWDINF, _("&Passphrase"));
-	SetDlgItemText (dlg, IDC_KEYREVOKE_OUTINF, _("Output file"));
-        list = GetDlgItem (dlg, IDC_KEYREVOKE_REASON);
-	listbox_add_string (list, _("0. No reason specified"));
-        listbox_add_string (list, _("1. Key has been compromised"));
-        listbox_add_string (list, _("2. Key is superseded"));
-        listbox_add_string (list, _("3. Key is no longer used"));
-	SendMessage (list, LB_SETCURSEL, (WPARAM)0, 0);
-        SetForegroundWindow (dlg);
-	center_window (dlg, NULL);
+        on_init_dialog (dlg);
         return TRUE;
         
     case WM_SYSCOMMAND:
-        if (LOWORD (wparam) == SC_CLOSE) {
-            SetDlgItemText (dlg, IDC_KEYREVOKE_PWD, "");
-            EndDialog (dlg, TRUE);
-        }
+        if (LOWORD (wparam) == SC_CLOSE)
+            EndDialog (dlg, FALSE);
         return FALSE;
         
     case WM_COMMAND:
@@ -146,33 +153,29 @@
             use_desc = 1;
             if (!GetDlgItemText (dlg, IDC_KEYREVOKE_TEXT, desc, sizeof (desc)-1))
                 use_desc = 0;
-            if( !GetDlgItemText (dlg, IDC_KEYREVOKE_PWD, pwd, sizeof (pwd)-1)) {
+            if (!GetDlgItemText (dlg, IDC_KEYREVOKE_PWD, pwd, sizeof (pwd)-1)) {
 		msg_box (dlg, _("Please enter the passphrase."), 
 			 _("Key Revocation Cert"), MB_ERR);
                 return TRUE;
             }
           
-	    if (use_desc)
-		p = native_to_utf8 (desc);
-	    /* we use the keyid to avoid charset problems and UTF8 encodings.*/
-	    inp_data = generate_revoke_input (idx, use_desc? p : NULL, pwd);
-            
+	    p = use_desc? native_to_utf8 (desc) : NULL;
+	    inp_data = generate_revoke_input (idx, p, pwd);
+
             err = gpg_revoke_cert (inp_data, k->keyid, &revcert);
 	    wipememory (pwd, sizeof (pwd));
 	    wipememory (inp_data, strlen (inp_data));
-	    free (inp_data);
-	    free_if_alloc (p);
-
             if (err) {
                 msg_box (dlg, gpgme_strerror (err), _("Key Revocation Cert"), MB_ERR);
-		if (revcert)
-		    free (revcert);
+		safe_free (revcert);
 	    }
 	    else {
 		show_msg (dlg, 1000, _("Revocation certificate generated."));
 		msg_box (dlg, warning, _("Key Revocation Cert"), MB_INFO);
 		release_cert_as_file (revcert, file);
 	    }
+	    safe_free (inp_data);
+	    free_if_alloc (p);
 	    EndDialog (dlg, TRUE);
             return TRUE;
             

Modified: trunk/Src/wptKeyserver.cpp
===================================================================
--- trunk/Src/wptKeyserver.cpp	2006-04-11 06:38:11 UTC (rev 199)
+++ trunk/Src/wptKeyserver.cpp	2006-04-17 09:12:50 UTC (rev 200)
@@ -1,5 +1,5 @@
 /* wptKeyserver.cpp - W32 Keyserver Access
- *	Copyright (C) 2000-2005 Timo Schulz
+ *	Copyright (C) 2000-2006 Timo Schulz
  *	Copyright (C) 2001 Marco Cunha
  *
  * This file is part of WinPT.
@@ -37,7 +37,7 @@
 #include "wptGPG.h"
 #include "wptRegistry.h"
 
-/* just map net_errno to a winsock error. */
+/* Map net_errno to a winsock error. */
 #define net_errno ((int)WSAGetLastError ())
 
 

Modified: trunk/Src/wptKeyserverDlg.cpp
===================================================================
--- trunk/Src/wptKeyserverDlg.cpp	2006-04-11 06:38:11 UTC (rev 199)
+++ trunk/Src/wptKeyserverDlg.cpp	2006-04-17 09:12:50 UTC (rev 200)
@@ -36,8 +36,8 @@
 #include "wptVersion.h"
 #include "wptGPG.h"
 #include "wptGPGME.h"
+#include "wptContext.h" /* for passphrase_s */
 #include "wptKeyManager.h"
-#include "wptContext.h" /* for passphrase_s */
 #include "wptDlgs.h"
 #include "wptUTF8.h"
 

Modified: trunk/Src/wptListView.cpp
===================================================================
--- trunk/Src/wptListView.cpp	2006-04-11 06:38:11 UTC (rev 199)
+++ trunk/Src/wptListView.cpp	2006-04-17 09:12:50 UTC (rev 200)
@@ -99,7 +99,7 @@
 	rc = 1;
     ctx->cols++;
     return rc;
-} /* listview_add_column */
+}
 
 
 int 
@@ -131,7 +131,7 @@
 	rc = 1;	
     ctx->items++;
     return rc;
-} /* listview_add_item */
+}
 
 
 int
@@ -167,7 +167,7 @@
 	rc = 1;	
     ctx->items++;
     return rc;
-} /* listview_add_item2 */
+}
 
 
 void*
@@ -201,7 +201,7 @@
 listview_add_sub_item( listview_ctrl_t ctx, int pos, int col, const char *text )
 {	
     ListView_SetItemText( ctx->ctrl, pos, col, (char *)text );
-} /* listview_add_sub_item */
+}
 
 
 int
@@ -212,7 +212,7 @@
     n = curr_sel? ListView_GetSelectedCount( ctx->ctrl ) :    
      	          ListView_GetItemCount( ctx->ctrl );
     return n;
-} /* listview_count_items */
+}
 
 
 int
@@ -336,14 +336,14 @@
 				    IMI_SORT_DOWNARROW : IMI_SORT_UPARROW);
     Header_SetItem (hheader, idx, &hdi);
     return 0;
-} /* listview_sort_items */
+}
 
 
 int
 listview_get_curr_pos( listview_ctrl_t ctx )
 {	
     return ListView_GetNextItem( ctx->ctrl, -1, LVNI_SELECTED );
-} /* listview_get_curr_pos */
+}
 
 
 int
@@ -357,7 +357,7 @@
     }
     ListView_GetItemText (ctx->ctrl, pos, col, text, maxbytes);
     return 0;
-} /* listview_get_item_text */
+}
 
 
 /* Use extended style with checkboxes for each item. */
@@ -381,14 +381,14 @@
 listview_set_column_order( listview_ctrl_t ctx, int *array )
 {	
     return ListView_SetColumnOrderArray( ctx->ctrl, ctx->cols, array );
-} /* listview_set_column_order */
+}
 
 
 void
 listview_select_all (listview_ctrl_t ctx)
 {	
     ListView_SetItemState( ctx->ctrl, -1, LVIS_SELECTED, LVIS_SELECTED );
-} /* listview_select_all */
+}
 
 
 void
@@ -456,4 +456,3 @@
 	ImageList_AddIcon (hil, ico[i]);    
     ListView_SetImageList (ctx->ctrl, hil, LVSIL_SMALL);    
 }
-    

Modified: trunk/Src/wptMainProc.cpp
===================================================================
--- trunk/Src/wptMainProc.cpp	2006-04-11 06:38:11 UTC (rev 199)
+++ trunk/Src/wptMainProc.cpp	2006-04-17 09:12:50 UTC (rev 200)
@@ -373,7 +373,7 @@
 	mapi_deinit ();
         wsock_end ();        
         keycache_release (1);
-	gnupg_backup_keyrings ();
+	gnupg_backup_keyrings (reg_prefs.auto_backup, reg_prefs.backup.mode);
 	free_reg_prefs ();
 	free_gnupg_table ();
         hotkeys_unregister (hwnd);

Modified: trunk/configure.ac
===================================================================
--- trunk/configure.ac	2006-04-11 06:38:11 UTC (rev 199)
+++ trunk/configure.ac	2006-04-17 09:12:50 UTC (rev 200)
@@ -15,7 +15,7 @@
 
 # Version number: Remember to change it immediately *after* a release.
 #                 Add a "-cvs" prefix for non-released code.
-AC_INIT(WinPT, 0.11.11, http://www.winpt.org)
+AC_INIT(WinPT, 0.11.12-cvs, http://www.winpt.org)
 NEED_GPG_VERSION=1.4.2
 NEED_GPGME_API=1
 NEED_GPGME_VERSION=1.1.1



More information about the Winpt-commits mailing list