[Winpt-commits] r225 - in trunk: . Doc Include PTD Po Src

scm-commit@wald.intevation.org scm-commit at wald.intevation.org
Tue Jun 6 15:38:10 CEST 2006


Author: twoaday
Date: 2006-06-06 15:37:59 +0200 (Tue, 06 Jun 2006)
New Revision: 225

Modified:
   trunk/Doc/winpt.texi
   trunk/Include/wptGPG.h
   trunk/NEWS
   trunk/PTD/resource.rc
   trunk/Po/ChangeLog
   trunk/Po/de.po
   trunk/Po/jp.po
   trunk/Src/ChangeLog
   trunk/Src/WinPT-en.rc
   trunk/Src/resource.h
   trunk/Src/wptClipEditDlg.cpp
   trunk/Src/wptClipEncryptDlg.cpp
   trunk/Src/wptClipSignDlg.cpp
   trunk/Src/wptClipSignEncDlg.cpp
   trunk/Src/wptClipVerifyDlg.cpp
   trunk/Src/wptCurrWnd.cpp
   trunk/Src/wptFileStatDlg.cpp
   trunk/Src/wptGPGOptDlg.cpp
   trunk/Src/wptGPGPrefsDlg.cpp
   trunk/Src/wptKeyEdit.cpp
   trunk/Src/wptKeyEditCB.cpp
   trunk/Src/wptKeyEditDlgs.cpp
   trunk/Src/wptKeyEditOwnertrustDlg.cpp
   trunk/Src/wptKeyPropsDlg.cpp
   trunk/Src/wptKeyRevokeDlg.cpp
   trunk/Src/wptKeyRevokersDlg.cpp
   trunk/Src/wptKeygenDlg.cpp
   trunk/Src/wptKeyserver.cpp
   trunk/Src/wptKeyserverDlg.cpp
   trunk/Src/wptKeysigDlg.cpp
   trunk/Src/wptKeysignDlg.cpp
   trunk/Src/wptMDSumDlg.cpp
   trunk/Src/wptMainProc.cpp
   trunk/Src/wptOwnertrustDlg.cpp
   trunk/Src/wptPINDlg.cpp
   trunk/Src/wptPassphraseDlg.cpp
   trunk/Src/wptProxySettingsDlg.cpp
   trunk/Src/wptSigTreeDlg.cpp
   trunk/Src/wptTextInputDlg.cpp
   trunk/Src/wptUtil.cpp
   trunk/THANKS
Log:


Modified: trunk/Doc/winpt.texi
===================================================================
--- trunk/Doc/winpt.texi	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/Doc/winpt.texi	2006-06-06 13:37:59 UTC (rev 225)
@@ -25,6 +25,7 @@
 for these OS versions any longer.
 
 @section A short Introduction
+
 WinPT is a graphical GnuPG front-end which resides in the task bar.
 It is divided into several, so-called, managers. There is a manager
 for the keyring, for files and for smart cards. The aim of the program
@@ -94,6 +95,21 @@
 speaking users, I recommend the light version because it does not
 contain the 2 German PDF manuals.
 
+ at subsection Getting the Source of the Program
+As free software, according to the GNU General Public License,
+WinPT also offers the source code for the program. It can be used
+for reviews, to compile your own binary and/or to modify and/or
+redistribute it or just to learn how it works. The source is available
+at the same place you downloaded the binary. If not, you should
+contact the author of the site.
+The entire program can be build with free software; the default
+environment is a cross-compiler hosted on a Linux box. All you
+need is the mingw32 packages, a working autoconf environment
+and the libs WinPT depends on (currently gpgme and libgpg-error).
+It is also possible to build the binary with cygwin/mingw32 on
+Windows but this environment is not actively supported and propably
+needs adjustment of the source.
+
 @subsection Configure the Program
 After the installation not much of the default settings need to
 be changed. If you prefer a special keyserver, it is propably a good 
@@ -121,6 +137,7 @@
 
 
 @section The First Start
+
 This section is only important for people who never installed
 and/or used WinPT before.
 
@@ -143,6 +160,7 @@
 secret keyring, at a @strong{safe} place.
 
 @section Keyserver Access
+
 An easy way to retrieve keys is the keyserver. You can think of
 it like a huge database with a lot of keys as its content. It is 
 possible to search keys by a pattern, a keyid or even a fingerprint.
@@ -220,6 +238,7 @@
 item and a popup menu will be shown with ("Edit", "Remove" and "New").
 
 @section Using the Clipboard
+
 A major aim from the first day was, that the program does not
 depend on a special mailer client. For this reason it uses the
 clipboard to encrypt and/or sign data.
@@ -244,6 +263,7 @@
 @subsection Sign the Clipboard
 
 @section The Key Manager
+
 This part of the program is propably most important for many users.
 It contains function to manage your keyring and to perform actions
 which are required and/or useful in the OpenPGP environment.
@@ -274,8 +294,25 @@
 the expert key generation. It allows you to set the public key
 algorithm and/or the size of the key directly.
 
+ at item
+Most of the list view based dialogs allow to use the right
+mouse button, to show popup menus with available commands.
+
 @end itemize
 
+ at subsection Create a Revocation Certificate
+
+It is very important to do this step early as possible. With this
+certificate, you can revoke your entire key. The reason for this
+can be for example, that your key is no longer used or even compromised.
+After you generated the revoc cert, you should move it to a secure place
+because anybody who gets access to it, can render your key unuseable.
+
+Just right-click on your key and select "Revoke Cert". If you do this
+step directly after key generation, there is no need to change the 
+default values. Just select a file name and enter the passphrase.
+The program issues a warning which should be read carefully.
+
 @subsection Adding a new secondary key
 
 For most users the existing keys in the key pair are enough

Modified: trunk/Include/wptGPG.h
===================================================================
--- trunk/Include/wptGPG.h	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/Include/wptGPG.h	2006-06-06 13:37:59 UTC (rev 225)
@@ -205,8 +205,10 @@
 void release_gpg_passphrase_cb (passphrase_cb_s *cb);
 void release_gpg_recipients (gpgme_recipient_t *recipients);
 
-char * request_passphrase (const char *title, int flags, int *ret_cancel);
-char * request_passphrase2 (const char *title, int flags, int *ret_cancel);
+char *request_passphrase (const char *title, int flags, int *ret_cancel);
+char *request_passphrase2 (const char *title, int flags, int *ret_cancel);
+char *request_key_passphrase (gpgme_key_t key, const char *title,
+			      int *ret_cancel);
 const char * passphrase_cb (void *opaque, const char * desc, void *r_hd);
 char * get_key_userid (const char *keyid);
 int check_passwd_quality (const char *pass, int strict);

Modified: trunk/NEWS
===================================================================
--- trunk/NEWS	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/NEWS	2006-06-06 13:37:59 UTC (rev 225)
@@ -839,3 +839,11 @@
 Noteworthy changes in version 1.0.0 (2006-06-XX)
 ================================================
 
+* The passphrase dialog now contains an additional
+  hint for which key the passphrase is.
+ 
+* Do sanity checks to avoid that the user can mark
+  a revoked user id as the primary ID. And similar
+  that a fully trusted user ID cannot be signed again.
+  
+  
\ No newline at end of file

Modified: trunk/PTD/resource.rc
===================================================================
--- trunk/PTD/resource.rc	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/PTD/resource.rc	2006-06-06 13:37:59 UTC (rev 225)
@@ -47,14 +47,14 @@
             VALUE "Comments", "This is free software under the tems of the GNU GPL V2\0"
             VALUE "CompanyName", "\0"
             VALUE "FileDescription", "PTD - Privacy Tray Dynamic\0"
-            VALUE "FileVersion", "0.12.2\0"
+            VALUE "FileVersion", "1.0.0-pre0\0"
             VALUE "InternalName", "PTD\0"
             VALUE "LegalCopyright", "Copyright © 2006 Timo Schulz\0"
             VALUE "LegalTrademarks", "\0"
             VALUE "OriginalFilename", "PTD.dll\0"
             VALUE "PrivateBuild", "\0"
             VALUE "ProductName", "PTD\0"
-            VALUE "ProductVersion", "0.12.2\0"
+            VALUE "ProductVersion", "1.0.0-pre0\0"
             VALUE "SpecialBuild", "\0"
         END
     END

Modified: trunk/Po/ChangeLog
===================================================================
--- trunk/Po/ChangeLog	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/Po/ChangeLog	2006-06-06 13:37:59 UTC (rev 225)
@@ -1,3 +1,7 @@
+2006-06-04  Timo Schulz  <ts at g10code.de>
+
+	* de.po: Updated.
+	
 2006-05-22  Timo Schulz  <ts at g10code.de>
 
 	* LINGUAS: Removed 'fr' because is too unfinished.

Modified: trunk/Po/de.po
===================================================================
--- trunk/Po/de.po	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/Po/de.po	2006-06-06 13:37:59 UTC (rev 225)
@@ -12,9 +12,9 @@
 # BUG: GetOpenFileName needs \0\0. gettext does not support it.
 msgid ""
 msgstr ""
-"Project-Id-Version: WinPT 0.12.1\n"
+"Project-Id-Version: WinPT 1.0.0\n"
 "Report-Msgid-Bugs-To: winpt at freakmail.de\n"
-"POT-Creation-Date: 2006-06-01 08:33+0200\n"
+"POT-Creation-Date: 2006-06-06 15:30+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"
@@ -32,7 +32,7 @@
 #: Src/WinPT.cpp:720 Src/WinPT.cpp:750 Src/WinPT.cpp:768
 #: Src/wptCommonDlg.cpp:220 Src/wptErrors.cpp:141 Src/wptGPG.cpp:921
 #: Src/wptGPG.cpp:933 Src/wptGPG.cpp:943 Src/wptGPG.cpp:954
-#: Src/wptMainProc.cpp:351 Src/wptMainProc.cpp:529
+#: Src/wptMainProc.cpp:353 Src/wptMainProc.cpp:531
 msgid "WinPT Error"
 msgstr "WinPT Fehler"
 
@@ -40,7 +40,7 @@
 msgid "No useable secret key found."
 msgstr "Kein benutzbarer geheimer Schlüssel gefunden."
 
-#: Src/WinPT.cpp:221 Src/wptKeyPropsDlg.cpp:357 Src/wptKeyPropsDlg.cpp:364
+#: Src/WinPT.cpp:221 Src/wptKeyPropsDlg.cpp:359 Src/wptKeyPropsDlg.cpp:366
 msgid "WinPT Warning"
 msgstr "WinPT Warnung"
 
@@ -62,15 +62,15 @@
 msgstr "Konnte WinPT-Verzeichnis nicht erstellen"
 
 #: Src/WinPT.cpp:305 Src/WinPT.cpp:322 Src/WinPT.cpp:333
-#: Src/wptKeyManagerDlg.cpp:959 Src/wptKeyserver.cpp:600
-#: Src/wptKeyserverDlg.cpp:68 Src/wptKeyserverDlg.cpp:70
-#: Src/wptKeyserverDlg.cpp:187 Src/wptKeyserverDlg.cpp:195
-#: Src/wptKeyserverDlg.cpp:211 Src/wptKeyserverDlg.cpp:352
-#: Src/wptKeyserverDlg.cpp:358 Src/wptKeyserverDlg.cpp:460
-#: Src/wptKeyserverDlg.cpp:520 Src/wptKeyserverDlg.cpp:525
-#: Src/wptKeyserverDlg.cpp:645 Src/wptKeyserverDlg.cpp:670
-#: Src/wptKeyserverDlg.cpp:686 Src/wptKeyserverDlg.cpp:691
-#: Src/wptKeyserverDlg.cpp:697 Src/wptKeyserverDlg.cpp:703
+#: Src/wptKeyManagerDlg.cpp:959 Src/wptKeyserver.cpp:601
+#: Src/wptKeyserverDlg.cpp:70 Src/wptKeyserverDlg.cpp:72
+#: Src/wptKeyserverDlg.cpp:189 Src/wptKeyserverDlg.cpp:197
+#: Src/wptKeyserverDlg.cpp:213 Src/wptKeyserverDlg.cpp:360
+#: Src/wptKeyserverDlg.cpp:366 Src/wptKeyserverDlg.cpp:468
+#: Src/wptKeyserverDlg.cpp:528 Src/wptKeyserverDlg.cpp:533
+#: Src/wptKeyserverDlg.cpp:653 Src/wptKeyserverDlg.cpp:678
+#: Src/wptKeyserverDlg.cpp:694 Src/wptKeyserverDlg.cpp:699
+#: Src/wptKeyserverDlg.cpp:705 Src/wptKeyserverDlg.cpp:711
 msgid "Keyserver"
 msgstr "Schlüsselserver"
 
@@ -189,7 +189,7 @@
 "Die Datei AUTHORS enthält eine Liste aller Co-Autoren und aller Beitragenden"
 
 #: Src/wptAboutDlgs.cpp:96 Src/wptKeyManagerDlg.cpp:1790
-#: Src/wptMainProc.cpp:578
+#: Src/wptMainProc.cpp:580
 msgid "About WinPT"
 msgstr "Über WinPT"
 
@@ -238,12 +238,12 @@
 msgstr "Über &GPG..."
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:700
-#: Src/wptAboutDlgs.cpp:115 Src/wptKeyEditDlgs.cpp:2166
+#: Src/wptAboutDlgs.cpp:115 Src/wptKeyEditDlgs.cpp:2129
 #: Src/wptKeyManagerDlg.cpp:965
 msgid "&Help"
 msgstr "&Hilfe"
 
-#: Src/wptCardDlg.cpp:141 Src/wptMainProc.cpp:406
+#: Src/wptCardDlg.cpp:141 Src/wptMainProc.cpp:408
 msgid "Card Manager"
 msgstr "Kartenmanager"
 
@@ -267,7 +267,7 @@
 #: Src/wptCardDlg.cpp:696 Src/wptCardDlg.cpp:699 Src/wptCardDlg.cpp:724
 #: Src/wptCardDlg.cpp:726 Src/wptCardDlg.cpp:731 Src/wptCardDlg.cpp:736
 #: Src/wptCardDlg.cpp:800 Src/wptCardDlg.cpp:815 Src/wptCardDlg.cpp:818
-#: Src/wptMainProc.cpp:291
+#: Src/wptMainProc.cpp:293
 msgid "Card Edit"
 msgstr "Karten-Editor"
 
@@ -300,7 +300,7 @@
 msgid "Please enter the 'User PIN'"
 msgstr "Bitte 'Benutzer PIN' eingeben"
 
-#: Src/wptCardDlg.cpp:421 Src/wptPINDlg.cpp:53
+#: Src/wptCardDlg.cpp:421 Src/wptPINDlg.cpp:51
 msgid "Please enter the PIN"
 msgstr "Bitte PIN eingeben"
 
@@ -324,15 +324,15 @@
 "Diese Operation wird die Schlüssel auf der Karte überschreiben.\n"
 "Trotzdem fortfahren?"
 
-#: Src/wptCardDlg.cpp:580 Src/wptKeyEditDlgs.cpp:516
+#: Src/wptCardDlg.cpp:580 Src/wptKeyEditDlgs.cpp:502
 msgid "&Name"
 msgstr "&Name"
 
-#: Src/wptCardDlg.cpp:581 Src/wptKeygenDlg.cpp:375
+#: Src/wptCardDlg.cpp:581 Src/wptKeygenDlg.cpp:377
 msgid "&Comment (optional)"
 msgstr "&Kommentar (optional)"
 
-#: Src/wptCardDlg.cpp:582 Src/wptKeygenDlg.cpp:377
+#: Src/wptCardDlg.cpp:582 Src/wptKeygenDlg.cpp:379
 msgid "&Expire date"
 msgstr "&Ablaufdatum"
 
@@ -340,11 +340,11 @@
 msgid "Off-card passphrase"
 msgstr "\"Off-card\" Passwort"
 
-#: Src/wptCardDlg.cpp:584 Src/wptKeyEditDlgs.cpp:654 Src/wptKeygenDlg.cpp:379
+#: Src/wptCardDlg.cpp:584 Src/wptKeyEditDlgs.cpp:639 Src/wptKeygenDlg.cpp:381
 msgid "&Never"
 msgstr "&Niemals"
 
-#: Src/wptCardDlg.cpp:585 Src/wptKeygenDlg.cpp:376
+#: Src/wptCardDlg.cpp:585 Src/wptKeygenDlg.cpp:378
 msgid "Email &address"
 msgstr "E-Mail-&Adresse"
 
@@ -385,7 +385,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:1401
+#: Src/wptCardDlg.cpp:663 Src/wptKeyEditDlgs.cpp:1377 Src/wptKeygenDlg.cpp:453
 msgid "The date you have chosen lies in the past."
 msgstr "Das gewählte Datum liegt in der Vergangenheit."
 
@@ -423,7 +423,7 @@
 msgid "Change Card PIN"
 msgstr "Karten PIN Ändern"
 
-#: Src/wptCardDlg.cpp:799 Src/wptPassphraseDlg.cpp:184
+#: Src/wptCardDlg.cpp:799 Src/wptPassphraseDlg.cpp:241
 msgid "Passphrases do not match. Please try again."
 msgstr "Passwörter nicht identisch. Versuchen Sie es erneut."
 
@@ -449,7 +449,7 @@
 "OK zum Fortfahren oder Abbrechen"
 
 #: Src/wptClipDecryptDlg.cpp:57 Src/wptClipDecryptDlg.cpp:130
-#: Src/wptKeyRevokersDlg.cpp:128 Src/wptKeyRevokersDlg.cpp:175
+#: Src/wptKeyRevokersDlg.cpp:129 Src/wptKeyRevokersDlg.cpp:173
 #: Src/wptVerifyList.cpp:243 Src/wptVerifyList.cpp:303
 msgid "user ID not found"
 msgstr "Benutzerkennung nicht gefunden"
@@ -492,13 +492,13 @@
 "%s"
 
 #: Src/wptClipDecryptDlg.cpp:169 Src/wptClipVerifyDlg.cpp:157
-#: Src/wptClipVerifyDlg.cpp:170 Src/wptClipVerifyDlg.cpp:183
-#: Src/wptClipVerifyDlg.cpp:190 Src/wptClipVerifyDlg.cpp:222
-#: Src/wptClipVerifyDlg.cpp:234 Src/wptFileManager.cpp:1567
+#: Src/wptClipVerifyDlg.cpp:165 Src/wptClipVerifyDlg.cpp:196
+#: Src/wptClipVerifyDlg.cpp:207 Src/wptClipVerifyDlg.cpp:225
+#: Src/wptClipVerifyDlg.cpp:237 Src/wptFileManager.cpp:1567
 #: Src/wptFileManager.cpp:1620 Src/wptFileManagerDlg.cpp:590
 #: Src/wptFileVerifyDlg.cpp:82 Src/wptFileVerifyDlg.cpp:149
-#: Src/wptMainProc.cpp:182 Src/wptMainProc.cpp:248 Src/wptMainProc.cpp:260
-#: Src/wptMainProc.cpp:268 Src/wptMainProc.cpp:417
+#: Src/wptMainProc.cpp:182 Src/wptMainProc.cpp:248 Src/wptMainProc.cpp:262
+#: Src/wptMainProc.cpp:270 Src/wptMainProc.cpp:419
 msgid "Verify"
 msgstr "Überprüfen"
 
@@ -546,27 +546,27 @@
 msgid "*** IMPORTANT ***"
 msgstr "*** WICHTIG ***"
 
-#: Src/wptClipDecryptDlg.cpp:219 Src/wptClipEncryptDlg.cpp:202
-#: Src/wptClipSignDlg.cpp:121 Src/wptClipSignDlg.cpp:265
-#: Src/wptClipSignEncDlg.cpp:197 Src/wptKeyManager.cpp:286
+#: Src/wptClipDecryptDlg.cpp:219 Src/wptClipEncryptDlg.cpp:210
+#: Src/wptClipSignDlg.cpp:121 Src/wptClipSignDlg.cpp:267
+#: Src/wptClipSignEncDlg.cpp:190 Src/wptKeyManager.cpp:286
 #: Src/wptKeyManager.cpp:763 Src/wptKeyManager.cpp:955 Src/wptSymEnc.cpp:91
 msgid "GnuPG Status: Finished"
 msgstr "GnuPG-Status: Abgeschlossen"
 
-#: Src/wptClipEditDlg.cpp:58 Src/wptClipEditDlg.cpp:111
-#: Src/wptClipEditDlg.cpp:119 Src/wptClipEditDlg.cpp:158
-#: Src/wptClipEditDlg.cpp:167 Src/wptClipEditDlg.cpp:242
-#: Src/wptClipEditDlg.cpp:247 Src/wptFileManagerDlg.cpp:225
-#: Src/wptMainProc.cpp:162 Src/wptMainProc.cpp:230 Src/wptMainProc.cpp:273
-#: Src/wptMainProc.cpp:429 Src/wptMainProc.cpp:510 Src/wptMainProc.cpp:515
+#: Src/wptClipEditDlg.cpp:59 Src/wptClipEditDlg.cpp:112
+#: Src/wptClipEditDlg.cpp:120 Src/wptClipEditDlg.cpp:159
+#: Src/wptClipEditDlg.cpp:168 Src/wptClipEditDlg.cpp:238
+#: Src/wptClipEditDlg.cpp:243 Src/wptFileManagerDlg.cpp:225
+#: Src/wptMainProc.cpp:162 Src/wptMainProc.cpp:230 Src/wptMainProc.cpp:275
+#: Src/wptMainProc.cpp:431 Src/wptMainProc.cpp:512 Src/wptMainProc.cpp:517
 msgid "Clipboard"
 msgstr "Zwischenablage"
 
-#: Src/wptClipEditDlg.cpp:101 Src/wptFileManager.cpp:569
+#: Src/wptClipEditDlg.cpp:102 Src/wptFileManager.cpp:569
 msgid "File Open"
 msgstr "Datei öffnen"
 
-#: Src/wptClipEditDlg.cpp:110
+#: Src/wptClipEditDlg.cpp:111
 msgid ""
 "The file you want to add is very large.\n"
 "Still proceed?"
@@ -574,11 +574,11 @@
 "Die Datei, die Sie hinzufügen wollen, ist sehr groß!\n"
 "Wirklich fortfahren?"
 
-#: Src/wptClipEditDlg.cpp:149
+#: Src/wptClipEditDlg.cpp:150
 msgid "File Save"
 msgstr "Datei speichern"
 
-#: Src/wptClipEditDlg.cpp:159 Src/wptFileManager.cpp:108
+#: Src/wptClipEditDlg.cpp:160 Src/wptFileManager.cpp:108
 #, c-format
 msgid ""
 "\"%s\" already exists.\n"
@@ -587,77 +587,81 @@
 "\"%s\" existiert bereits.\n"
 "Vorhandene Datei überschreiben?"
 
-#: Src/wptClipEditDlg.cpp:194 Src/wptMainProc.cpp:172 Src/wptMainProc.cpp:238
-#: Src/wptMainProc.cpp:572
+#: Src/wptClipEditDlg.cpp:195 Src/wptMainProc.cpp:172 Src/wptMainProc.cpp:238
+#: Src/wptMainProc.cpp:574
 msgid "Clipboard Editor"
 msgstr "Zwischenablagen-Editor"
 
-#: Src/wptClipEditDlg.cpp:195
+#: Src/wptClipEditDlg.cpp:196
 msgid "&Copy"
 msgstr "&Kopieren"
 
-#: Src/wptClipEditDlg.cpp:196
+#: Src/wptClipEditDlg.cpp:197
 msgid "Clea&r"
 msgstr "&Löschen"
 
-#: Src/wptClipEditDlg.cpp:197 Src/wptGPGOptDlg.cpp:53
-#: Src/wptTextInputDlg.cpp:85
+#: Src/wptClipEditDlg.cpp:198 Src/wptGPGOptDlg.cpp:56
+#: Src/wptTextInputDlg.cpp:87
 msgid "&Load"
 msgstr "&Laden"
 
-#: Src/wptClipEditDlg.cpp:198 Src/wptClipVerifyDlg.cpp:158
-#: Src/wptFileVerifyDlg.cpp:51 Src/wptGPGOptDlg.cpp:52
+#: Src/wptClipEditDlg.cpp:199 Src/wptClipVerifyDlg.cpp:197
+#: Src/wptFileVerifyDlg.cpp:51 Src/wptGPGOptDlg.cpp:55
 msgid "&Save"
 msgstr "&Speichern"
 
-#: Src/wptClipEditDlg.cpp:199
+#: Src/wptClipEditDlg.cpp:200
 msgid "Add quotes"
 msgstr "'>' hinzufügen"
 
-#: Src/wptClipEditDlg.cpp:200 Src/wptKeyEditDlgs.cpp:2165
-#: Src/wptKeyserverDlg.cpp:577 Src/wptMDSumDlg.cpp:122
+#: Src/wptClipEditDlg.cpp:201 Src/wptKeyEditDlgs.cpp:2128
+#: Src/wptKeyserverDlg.cpp:585 Src/wptMDSumDlg.cpp:130
 #: Src/wptOwnertrustDlg.cpp:103
 msgid "&Close"
 msgstr "&Schliessen"
 
+#: Src/wptClipEncryptDlg.cpp:99
+msgid "key not found"
+msgstr "Schlüssel nicht gefunden"
+
 # c:\oss\winpt-gpgme\src\wptClipEncryptDlg.cpp:108
-#: Src/wptClipEncryptDlg.cpp:115
+#: Src/wptClipEncryptDlg.cpp:118
 msgid "Recipients unsuable for encryption:\n"
 msgstr "Empfänger nicht geeignet für Verschlüsselung:\n"
 
-#: Src/wptClipEncryptDlg.cpp:126 Src/wptClipEncryptDlg.cpp:146
-#: Src/wptClipEncryptDlg.cpp:192 Src/wptClipEncryptDlg.cpp:199
-#: Src/wptClipEncryptDlg.cpp:228 Src/wptMainProc.cpp:144
+#: Src/wptClipEncryptDlg.cpp:134 Src/wptClipEncryptDlg.cpp:154
+#: Src/wptClipEncryptDlg.cpp:200 Src/wptClipEncryptDlg.cpp:207
+#: Src/wptClipEncryptDlg.cpp:236 Src/wptMainProc.cpp:144
 #: Src/wptMainProc.cpp:212
 msgid "Encryption"
 msgstr "Verschlüsseln"
 
-#: Src/wptClipEncryptDlg.cpp:147
+#: Src/wptClipEncryptDlg.cpp:155
 msgid "&Find"
 msgstr "&Suche"
 
-#: Src/wptClipEncryptDlg.cpp:148 Src/wptClipSignEncDlg.cpp:112
+#: Src/wptClipEncryptDlg.cpp:156 Src/wptClipSignEncDlg.cpp:112
 #: Src/wptCommonDlg.cpp:76 Src/wptCommonDlg.cpp:253
 #: Src/wptFileManagerDlg.cpp:97 Src/wptFileManagerDlg.cpp:231
 #: Src/wptFileManagerDlg.cpp:300 Src/wptFileSaveDlg.cpp:58
 #: Src/wptFirstRunDlg.cpp:47 Src/wptGPGPrefsDlg.cpp:157
-#: Src/wptKeyEditDlgs.cpp:360 Src/wptKeyEditDlgs.cpp:448
-#: Src/wptKeyEditDlgs.cpp:519 Src/wptKeyEditDlgs.cpp:655
-#: Src/wptKeyEditOwnertrustDlg.cpp:67 Src/wptKeygenDlg.cpp:380
-#: Src/wptKeygenDlg.cpp:538 Src/wptKeyRevokeDlg.cpp:81
-#: Src/wptKeyserverDlg.cpp:509 Src/wptKeyserverSearchDlg.cpp:66
-#: Src/wptKeysignDlg.cpp:285 Src/wptPassphraseCB.cpp:93
-#: Src/wptPassphraseDlg.cpp:69 Src/wptPINDlg.cpp:55
-#: Src/wptPreferencesDlg.cpp:134 Src/wptTextInputDlg.cpp:84
+#: Src/wptKeyEditDlgs.cpp:358 Src/wptKeyEditDlgs.cpp:439
+#: Src/wptKeyEditDlgs.cpp:505 Src/wptKeyEditDlgs.cpp:640
+#: Src/wptKeyEditOwnertrustDlg.cpp:67 Src/wptKeygenDlg.cpp:382
+#: Src/wptKeygenDlg.cpp:544 Src/wptKeyRevokeDlg.cpp:81
+#: Src/wptKeyserverDlg.cpp:517 Src/wptKeyserverSearchDlg.cpp:66
+#: Src/wptKeysignDlg.cpp:293 Src/wptPassphraseCB.cpp:93
+#: Src/wptPassphraseDlg.cpp:102 Src/wptPINDlg.cpp:54
+#: Src/wptPreferencesDlg.cpp:134 Src/wptTextInputDlg.cpp:86
 msgid "&Cancel"
 msgstr "&Abbrechen"
 
-#: Src/wptClipEncryptDlg.cpp:191 Src/wptClipSignEncDlg.cpp:157
+#: Src/wptClipEncryptDlg.cpp:199 Src/wptClipSignEncDlg.cpp:150
 msgid "You must select at least one key."
 msgstr "Sie müssen wenigstens einen Schlüssel auswählen."
 
 # c:\oss\winpt-gpgme\src\wptClipEncryptDlg.cpp:229
-#: Src/wptClipEncryptDlg.cpp:228
+#: Src/wptClipEncryptDlg.cpp:236
 #, c-format
 msgid "No recipient found with '%s'"
 msgstr "Keine Empfaenger mit '%s' gefunden"
@@ -666,27 +670,27 @@
 msgid "Key Import Statistics"
 msgstr "Statistiken für Schlüsselimport"
 
-#: Src/wptClipSignDlg.cpp:103 Src/wptClipSignDlg.cpp:222
-#: Src/wptClipSignEncDlg.cpp:176
+#: Src/wptClipSignDlg.cpp:103 Src/wptClipSignDlg.cpp:226
+#: Src/wptClipSignEncDlg.cpp:170
 msgid "Could not get default key."
 msgstr "Konnte den Standardschlüssel nicht finden"
 
 #: Src/wptClipSignDlg.cpp:103 Src/wptClipSignDlg.cpp:111
 #: Src/wptClipSignDlg.cpp:119 Src/wptClipSignDlg.cpp:153
-#: Src/wptClipSignDlg.cpp:163 Src/wptClipSignDlg.cpp:222
-#: Src/wptClipSignDlg.cpp:230 Src/wptClipSignDlg.cpp:249
-#: Src/wptClipSignDlg.cpp:260 Src/wptClipSignEncDlg.cpp:166
-#: Src/wptClipSignEncDlg.cpp:176 Src/wptFileManager.cpp:1081
+#: Src/wptClipSignDlg.cpp:159 Src/wptClipSignDlg.cpp:227
+#: Src/wptClipSignDlg.cpp:231 Src/wptClipSignDlg.cpp:251
+#: Src/wptClipSignDlg.cpp:262 Src/wptClipSignEncDlg.cpp:159
+#: Src/wptClipSignEncDlg.cpp:170 Src/wptFileManager.cpp:1081
 #: Src/wptFileManager.cpp:1097 Src/wptFileManager.cpp:1387
 #: Src/wptMainProc.cpp:156 Src/wptMainProc.cpp:218
 msgid "Signing"
 msgstr "Signieren"
 
-#: Src/wptClipSignDlg.cpp:163
+#: Src/wptClipSignDlg.cpp:159
 msgid "No useable signing key found"
 msgstr "Kein benutzbarer Schlüssel zum Signieren gefunden."
 
-#: Src/wptClipSignDlg.cpp:231
+#: Src/wptClipSignDlg.cpp:232
 #, c-format
 msgid ""
 "No key was chosen.\n"
@@ -695,30 +699,30 @@
 "Kein Schlüssel ausgewählt.\n"
 "GPG-Standardschlüssel '%s' benutzen?"
 
-#: Src/wptClipSignEncDlg.cpp:111 Src/wptClipSignEncDlg.cpp:158
-#: Src/wptClipSignEncDlg.cpp:185 Src/wptClipSignEncDlg.cpp:194
+#: Src/wptClipSignEncDlg.cpp:111 Src/wptClipSignEncDlg.cpp:151
+#: Src/wptClipSignEncDlg.cpp:179 Src/wptClipSignEncDlg.cpp:188
 #: Src/wptMainProc.cpp:150 Src/wptMainProc.cpp:224
 msgid "Sign & Encrypt"
 msgstr "Signieren & Verschlüsseln"
 
 # c:\oss\winpt-gpgme\src\wptClipSignEncDlg.cpp:121
-#: Src/wptClipSignEncDlg.cpp:121
+#: Src/wptClipSignEncDlg.cpp:119
 msgid "Select key for signing"
 msgstr "Schlüssel zum Signieren auswählen"
 
-#: Src/wptClipSignEncDlg.cpp:122
+#: Src/wptClipSignEncDlg.cpp:120
 msgid "Signing key:"
 msgstr "Signierer Schlüssel:"
 
-#: Src/wptClipSignEncDlg.cpp:166 Src/wptKeylist.cpp:1202
+#: Src/wptClipSignEncDlg.cpp:159 Src/wptKeylist.cpp:1202
 msgid "No key was selected."
 msgstr "Kein Schlüssel ausgewählt."
 
-#: Src/wptClipVerifyDlg.cpp:136
+#: Src/wptClipVerifyDlg.cpp:140
 msgid "Signature Information"
 msgstr "Signaturinformationen"
 
-#: Src/wptClipVerifyDlg.cpp:184
+#: Src/wptClipVerifyDlg.cpp:158
 #, c-format
 msgid ""
 "Signature made %s using %s key ID 0x%s\n"
@@ -731,15 +735,15 @@
 "\n"
 "Möchten Sie versuchen, den Schlüssel vom Schlüsselserver zu importieren?"
 
-#: Src/wptClipVerifyDlg.cpp:222
+#: Src/wptClipVerifyDlg.cpp:225
 msgid "Invalid signature state."
 msgstr "Ungültige Signatur."
 
-#: Src/wptClipVerifyDlg.cpp:233
+#: Src/wptClipVerifyDlg.cpp:236
 msgid "Could not extract key or signature information."
 msgstr "Konnte Schlüssel- oder Signaturinfos nicht extrahieren."
 
-#: Src/wptClipVerifyDlg.cpp:262 Src/wptFileSaveDlg.cpp:57
+#: Src/wptClipVerifyDlg.cpp:272 Src/wptFileSaveDlg.cpp:57
 #: Src/wptFileSaveDlg.cpp:84 Src/wptFileSaveDlg.cpp:89
 #: Src/wptFileSaveDlg.cpp:95 Src/wptFileSaveDlg.cpp:99
 #: Src/wptFileSaveDlg.cpp:104 Src/wptFileSaveDlg.cpp:110
@@ -758,36 +762,35 @@
 msgid "Enter URL to retrieve the public key"
 msgstr "Bitte URL eingeben um öff. Schlüssel zu empfangen"
 
-#: Src/wptCommonDlg.cpp:134 Src/wptKeyEditDlgs.cpp:774
-#: Src/wptKeyEditDlgs.cpp:842 Src/wptKeyEditDlgs.cpp:882
-#: Src/wptKeyEditDlgs.cpp:895 Src/wptKeyEditDlgs.cpp:897
-#: Src/wptKeyEditDlgs.cpp:923 Src/wptKeyEditDlgs.cpp:954
-#: Src/wptKeyEditDlgs.cpp:987 Src/wptKeyEditDlgs.cpp:1031
-#: Src/wptKeyEditDlgs.cpp:1038 Src/wptKeyEditDlgs.cpp:1056
-#: Src/wptKeyEditDlgs.cpp:1067 Src/wptKeyEditDlgs.cpp:1115
-#: Src/wptKeyEditDlgs.cpp:1202 Src/wptKeyEditDlgs.cpp:1322
-#: Src/wptKeyEditDlgs.cpp:1326 Src/wptKeyEditDlgs.cpp:1330
-#: Src/wptKeyEditDlgs.cpp:1337 Src/wptKeyEditDlgs.cpp:1373
-#: Src/wptKeyEditDlgs.cpp:1377 Src/wptKeyEditDlgs.cpp:1387
-#: Src/wptKeyEditDlgs.cpp:1402 Src/wptKeyEditDlgs.cpp:1406
-#: Src/wptKeyEditDlgs.cpp:1448 Src/wptKeyEditDlgs.cpp:1453
-#: Src/wptKeyEditDlgs.cpp:1460 Src/wptKeyEditDlgs.cpp:1466
-#: Src/wptKeyEditDlgs.cpp:1471 Src/wptKeyEditDlgs.cpp:1516
-#: Src/wptKeyEditDlgs.cpp:1521 Src/wptKeyEditDlgs.cpp:1528
-#: Src/wptKeyEditDlgs.cpp:1535 Src/wptKeyEditDlgs.cpp:1538
-#: Src/wptKeyEditDlgs.cpp:1578 Src/wptKeyEditDlgs.cpp:1586
-#: Src/wptKeyEditDlgs.cpp:1603 Src/wptKeyEditDlgs.cpp:1623
-#: Src/wptKeyEditDlgs.cpp:1631 Src/wptKeyEditDlgs.cpp:1740
-#: Src/wptKeyEditDlgs.cpp:1778 Src/wptKeyEditDlgs.cpp:1813
-#: Src/wptKeyEditDlgs.cpp:1817 Src/wptKeyEditDlgs.cpp:1828
-#: Src/wptKeyEditDlgs.cpp:1950 Src/wptKeyEditDlgs.cpp:1952
-#: Src/wptKeyEditDlgs.cpp:1968 Src/wptKeyEditDlgs.cpp:1970
-#: Src/wptKeyEditDlgs.cpp:2003 Src/wptKeyEditDlgs.cpp:2008
-#: Src/wptKeyEditDlgs.cpp:2017 Src/wptKeyEditDlgs.cpp:2031
-#: Src/wptKeyEditDlgs.cpp:2035 Src/wptKeyEditDlgs.cpp:2102
-#: Src/wptKeyEditDlgs.cpp:2143 Src/wptKeyEditDlgs.cpp:2156
-#: Src/wptKeyEditDlgs.cpp:2170 Src/wptKeyEditDlgs.cpp:2210
-#: Src/wptKeyEditDlgs.cpp:2215 Src/wptKeyManagerDlg.cpp:993
+#: Src/wptCommonDlg.cpp:134 Src/wptKeyEditDlgs.cpp:754
+#: Src/wptKeyEditDlgs.cpp:822 Src/wptKeyEditDlgs.cpp:863
+#: Src/wptKeyEditDlgs.cpp:876 Src/wptKeyEditDlgs.cpp:878
+#: Src/wptKeyEditDlgs.cpp:904 Src/wptKeyEditDlgs.cpp:934
+#: Src/wptKeyEditDlgs.cpp:967 Src/wptKeyEditDlgs.cpp:1011
+#: Src/wptKeyEditDlgs.cpp:1018 Src/wptKeyEditDlgs.cpp:1036
+#: Src/wptKeyEditDlgs.cpp:1047 Src/wptKeyEditDlgs.cpp:1298
+#: Src/wptKeyEditDlgs.cpp:1303 Src/wptKeyEditDlgs.cpp:1307
+#: Src/wptKeyEditDlgs.cpp:1314 Src/wptKeyEditDlgs.cpp:1348
+#: Src/wptKeyEditDlgs.cpp:1353 Src/wptKeyEditDlgs.cpp:1363
+#: Src/wptKeyEditDlgs.cpp:1378 Src/wptKeyEditDlgs.cpp:1382
+#: Src/wptKeyEditDlgs.cpp:1422 Src/wptKeyEditDlgs.cpp:1427
+#: Src/wptKeyEditDlgs.cpp:1434 Src/wptKeyEditDlgs.cpp:1440
+#: Src/wptKeyEditDlgs.cpp:1445 Src/wptKeyEditDlgs.cpp:1488
+#: Src/wptKeyEditDlgs.cpp:1493 Src/wptKeyEditDlgs.cpp:1500
+#: Src/wptKeyEditDlgs.cpp:1507 Src/wptKeyEditDlgs.cpp:1510
+#: Src/wptKeyEditDlgs.cpp:1548 Src/wptKeyEditDlgs.cpp:1556
+#: Src/wptKeyEditDlgs.cpp:1571 Src/wptKeyEditDlgs.cpp:1592
+#: Src/wptKeyEditDlgs.cpp:1603 Src/wptKeyEditDlgs.cpp:1712
+#: Src/wptKeyEditDlgs.cpp:1750 Src/wptKeyEditDlgs.cpp:1785
+#: Src/wptKeyEditDlgs.cpp:1790 Src/wptKeyEditDlgs.cpp:1800
+#: Src/wptKeyEditDlgs.cpp:1905 Src/wptKeyEditDlgs.cpp:1907
+#: Src/wptKeyEditDlgs.cpp:1923 Src/wptKeyEditDlgs.cpp:1925
+#: Src/wptKeyEditDlgs.cpp:1960 Src/wptKeyEditDlgs.cpp:1968
+#: Src/wptKeyEditDlgs.cpp:1984 Src/wptKeyEditDlgs.cpp:1998
+#: Src/wptKeyEditDlgs.cpp:2002 Src/wptKeyEditDlgs.cpp:2069
+#: Src/wptKeyEditDlgs.cpp:2106 Src/wptKeyEditDlgs.cpp:2119
+#: Src/wptKeyEditDlgs.cpp:2133 Src/wptKeyEditDlgs.cpp:2173
+#: Src/wptKeyEditDlgs.cpp:2178 Src/wptKeyManagerDlg.cpp:993
 #: Src/wptKeyManagerDlg.cpp:1814
 msgid "Key Edit"
 msgstr "Schlüssel bearbeiten"
@@ -797,7 +800,7 @@
 msgid "Enter preferred keyserver URL"
 msgstr "Bevorzugte Keyserver URL eingeben"
 
-#: Src/wptCommonDlg.cpp:211 Src/wptGPGPrefsDlg.cpp:334
+#: Src/wptCommonDlg.cpp:211 Src/wptGPGPrefsDlg.cpp:330
 msgid "Choose Locale Directory"
 msgstr "Verzeichnis für Sprachdateien auswählen"
 
@@ -813,7 +816,7 @@
 msgid "Please select a language"
 msgstr "Bitte eine Sprache auswählen"
 
-#: Src/wptCommonDlg.cpp:252
+#: Src/wptCommonDlg.cpp:252 Src/wptPassphraseDlg.cpp:103 Src/wptPINDlg.cpp:55
 msgid "&OK"
 msgstr "&OK"
 
@@ -1004,8 +1007,8 @@
 #: Src/wptFileManager.cpp:1473 Src/wptFileManager.cpp:1500
 #: Src/wptFileManager.cpp:1519 Src/wptFileManager.cpp:1771
 #: Src/wptFileManager.cpp:1833 Src/wptFileManagerDlg.cpp:536
-#: Src/wptFileManagerDlg.cpp:635 Src/wptFileStatDlg.cpp:152
-#: Src/wptMainProc.cpp:404 Src/wptMDSumDlg.cpp:181
+#: Src/wptFileManagerDlg.cpp:635 Src/wptFileStatDlg.cpp:149
+#: Src/wptMainProc.cpp:406 Src/wptMDSumDlg.cpp:184
 msgid "File Manager"
 msgstr "Dateimanager"
 
@@ -1036,13 +1039,13 @@
 "\n"
 "Möchten Sie die Kompression ausschalten?"
 
-#: Src/wptFileManager.cpp:382 Src/wptKeyEditDlgs.cpp:1101
+#: Src/wptFileManager.cpp:382 Src/wptKeyEditDlgs.cpp:1081
 #: Src/wptVerifyList.cpp:161
 msgid "Status"
 msgstr "Status"
 
-#: Src/wptFileManager.cpp:383 Src/wptKeyEditDlgs.cpp:1193
-#: Src/wptKeyRevokersDlg.cpp:57 Src/wptMDSumDlg.cpp:104
+#: Src/wptFileManager.cpp:383 Src/wptKeyEditDlgs.cpp:1171
+#: Src/wptKeyRevokersDlg.cpp:57 Src/wptMDSumDlg.cpp:112
 #: Src/wptVerifyList.cpp:160
 msgid "Name"
 msgstr "Name"
@@ -1069,8 +1072,8 @@
 msgid "\"%s\" does not exist"
 msgstr "\"%s\" existiert nicht"
 
-#: Src/wptFileManager.cpp:1007 Src/wptFileStatDlg.cpp:274
-#: Src/wptFileStatDlg.cpp:281
+#: Src/wptFileManager.cpp:1007 Src/wptFileStatDlg.cpp:273
+#: Src/wptFileStatDlg.cpp:279
 msgid "File Status"
 msgstr "Dateistatus"
 
@@ -1084,17 +1087,17 @@
 
 #: Src/wptFileManager.cpp:1111 Src/wptFileManager.cpp:1423
 #: Src/wptFileManagerDlg.cpp:588 Src/wptMainProc.cpp:200
-#: Src/wptMainProc.cpp:414 Src/wptMainProc.cpp:421
+#: Src/wptMainProc.cpp:416 Src/wptMainProc.cpp:423
 msgid "Sign"
 msgstr "Signieren"
 
 #: Src/wptFileManager.cpp:1124 Src/wptFileManagerDlg.cpp:586
-#: Src/wptMainProc.cpp:413 Src/wptMainProc.cpp:418
+#: Src/wptMainProc.cpp:415 Src/wptMainProc.cpp:420
 msgid "Encrypt"
 msgstr "Verschlüsseln"
 
 #: Src/wptFileManager.cpp:1151 Src/wptFileManager.cpp:1184
-#: Src/wptFileManager.cpp:1189 Src/wptMainProc.cpp:412
+#: Src/wptFileManager.cpp:1189 Src/wptMainProc.cpp:414
 msgid "Symmetric"
 msgstr "Symmetrisch"
 
@@ -1165,7 +1168,7 @@
 #: Src/wptImportList.cpp:410 Src/wptImportList.cpp:420
 #: Src/wptImportList.cpp:428 Src/wptImportList.cpp:437
 #: Src/wptKeyManager.cpp:460 Src/wptKeyManager.cpp:471
-#: Src/wptKeyManager.cpp:599 Src/wptKeyserverDlg.cpp:219
+#: Src/wptKeyManager.cpp:599 Src/wptKeyserverDlg.cpp:221
 msgid "Import"
 msgstr "Importieren"
 
@@ -1187,7 +1190,7 @@
 msgstr "Kein Schlüssel zum Exportieren ausgewählt."
 
 #: Src/wptFileManager.cpp:1699 Src/wptFileManager.cpp:1722
-#: Src/wptKeyserverDlg.cpp:90
+#: Src/wptKeyserverDlg.cpp:92
 msgid "Export"
 msgstr "Exportieren"
 
@@ -1196,9 +1199,9 @@
 msgid "Choose Name for Key File"
 msgstr "Den Namen der Schlüsseldatei wählen"
 
-#: Src/wptFileManager.cpp:1726 Src/wptKeyEditDlgs.cpp:1081
-#: Src/wptKeyEditDlgs.cpp:1354 Src/wptKeyEditDlgs.cpp:1427
-#: Src/wptKeyserverDlg.cpp:102
+#: Src/wptFileManager.cpp:1726 Src/wptKeyEditDlgs.cpp:1061
+#: Src/wptKeyEditDlgs.cpp:1329 Src/wptKeyEditDlgs.cpp:1401
+#: Src/wptKeyserverDlg.cpp:104
 msgid "GnuPG status"
 msgstr "GnuPG Status"
 
@@ -1265,7 +1268,7 @@
 msgid "Please select at least one recipient."
 msgstr "Bitte wählen Sie wenigstens einen Empfänger."
 
-#: Src/wptFileManagerDlg.cpp:216 Src/wptFileStatDlg.cpp:281
+#: Src/wptFileManagerDlg.cpp:216 Src/wptFileStatDlg.cpp:279
 #: Src/wptKeyManager.cpp:424
 msgid "No valid OpenPGP data found."
 msgstr "Keine gültigen OpenPGP-Daten gefunden."
@@ -1317,8 +1320,8 @@
 msgid "Signature mode"
 msgstr "Signaturmodus"
 
-#: Src/wptFileManagerDlg.cpp:345 Src/wptKeyEditDlgs.cpp:1326
-#: Src/wptKeyEditDlgs.cpp:1377 Src/wptKeyEditDlgs.cpp:1453
+#: Src/wptFileManagerDlg.cpp:345 Src/wptKeyEditDlgs.cpp:1303
+#: Src/wptKeyEditDlgs.cpp:1353 Src/wptKeyEditDlgs.cpp:1427
 #: Src/wptKeyManager.cpp:683 Src/wptKeyManager.cpp:784
 #: Src/wptKeyManager.cpp:818 Src/wptKeyManagerDlg.cpp:1558
 #: Src/wptKeyManagerDlg.cpp:1574 Src/wptKeyManagerDlg.cpp:1602
@@ -1337,7 +1340,7 @@
 msgid "%d Object(s) marked"
 msgstr "%d Objekt(e) markiert"
 
-#: Src/wptFileManagerDlg.cpp:503 Src/wptMainProc.cpp:542
+#: Src/wptFileManagerDlg.cpp:503 Src/wptMainProc.cpp:544
 msgid "File Manager (use drag & drop to add files)"
 msgstr "Dateimanager (Drag & Drop möglich)"
 
@@ -1372,7 +1375,7 @@
 msgstr "&Signieren"
 
 #: Src/wptFileManagerDlg.cpp:513 Src/wptFileManagerDlg.cpp:589
-#: Src/wptMainProc.cpp:415 Src/wptMainProc.cpp:419
+#: Src/wptMainProc.cpp:417 Src/wptMainProc.cpp:421
 msgid "Sign && Encrypt"
 msgstr "Signieren && Verschlüsseln"
 
@@ -1392,7 +1395,7 @@
 msgid "E&xport"
 msgstr "E&xportieren"
 
-#: Src/wptFileManagerDlg.cpp:518 Src/wptMainProc.cpp:411
+#: Src/wptFileManagerDlg.cpp:518 Src/wptMainProc.cpp:413
 msgid "Exit"
 msgstr "Beenden"
 
@@ -1567,12 +1570,12 @@
 msgid "GPG Warning"
 msgstr "GPG Warnung"
 
-#: Src/wptGPG.cpp:888 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:1745 Src/wptKeyManagerDlg.cpp:958
-#: Src/wptMainProc.cpp:431 Src/wptPreferencesDlg.cpp:225
+#: Src/wptGPG.cpp:888 Src/wptGPGPrefsDlg.cpp:211 Src/wptGPGPrefsDlg.cpp:217
+#: Src/wptGPGPrefsDlg.cpp:223 Src/wptGPGPrefsDlg.cpp:229
+#: Src/wptGPGPrefsDlg.cpp:234 Src/wptGPGPrefsDlg.cpp:239
+#: Src/wptGPGPrefsDlg.cpp:245 Src/wptGPGPrefsDlg.cpp:259
+#: Src/wptKeyEditDlgs.cpp:1717 Src/wptKeyManagerDlg.cpp:958
+#: Src/wptMainProc.cpp:433 Src/wptPreferencesDlg.cpp:225
 #: Src/wptPreferencesDlg.cpp:270 Src/wptPreferencesDlg.cpp:282
 #: Src/wptPreferencesDlg.cpp:295 Src/wptPreferencesDlg.cpp:326
 #: Src/wptRegistry.cpp:596
@@ -1672,37 +1675,38 @@
 msgid "Good Signature (Revoked Key)"
 msgstr "Gültige Signatur (Widerrufener Schlüssel)"
 
-#: Src/wptGPGOptDlg.cpp:49 Src/wptGPGOptDlg.cpp:99
+#: Src/wptGPGOptDlg.cpp:48 Src/wptGPGOptDlg.cpp:97
 msgid "Could not load GnuPG config file!"
 msgstr "Konnte GnuPG Konfigurationsdatei nicht laden!"
 
+#: Src/wptGPGOptDlg.cpp:49 Src/wptGPGOptDlg.cpp:69 Src/wptGPGOptDlg.cpp:75
+#: Src/wptGPGOptDlg.cpp:80 Src/wptGPGOptDlg.cpp:84 Src/wptGPGOptDlg.cpp:91
+#: Src/wptGPGOptDlg.cpp:97
+msgid "GPG Config"
+msgstr "GPG Konfiguration"
+
 # c:\oss\winpt-gpgme\src\wptGPGOptDlg.cpp:47
-#: Src/wptGPGOptDlg.cpp:51
+#: Src/wptGPGOptDlg.cpp:54
 msgid "GnuPG Configuration File"
 msgstr "GnuPG Konfigurationsdatei"
 
-#: Src/wptGPGOptDlg.cpp:71
+#: Src/wptGPGOptDlg.cpp:69
 msgid "The 'gpg.conf' file is not loaded."
 msgstr "Die 'gpg.conf' wurde nicht geladen"
 
-#: Src/wptGPGOptDlg.cpp:71 Src/wptGPGOptDlg.cpp:77 Src/wptGPGOptDlg.cpp:82
-#: Src/wptGPGOptDlg.cpp:86 Src/wptGPGOptDlg.cpp:93 Src/wptGPGOptDlg.cpp:99
-msgid "GPG Config"
-msgstr "GPG Konfiguration"
-
-#: Src/wptGPGOptDlg.cpp:77
+#: Src/wptGPGOptDlg.cpp:75
 msgid "File contains invalid GnuPG keywords!"
 msgstr "Datei enthält ungültige GnuPG-Schlüsselwörter!"
 
-#: Src/wptGPGOptDlg.cpp:82
+#: Src/wptGPGOptDlg.cpp:80
 msgid "Could not save GnuPG config file."
 msgstr "Konnte GnuPG Konfigurationsdatei nicht speichern."
 
-#: Src/wptGPGOptDlg.cpp:86
+#: Src/wptGPGOptDlg.cpp:84
 msgid "Successfully saved."
 msgstr "Erfolgreich gespeichert."
 
-#: Src/wptGPGOptDlg.cpp:92
+#: Src/wptGPGOptDlg.cpp:90
 msgid ""
 "Current data will be lost!\n"
 "Are you sure?"
@@ -1711,7 +1715,7 @@
 "Sind Sie sicher?"
 
 #: Src/wptGPGPrefsDlg.cpp:141 Src/wptKeyManagerDlg.cpp:1712
-#: Src/wptMainProc.cpp:590
+#: Src/wptMainProc.cpp:592
 msgid "GnuPG Preferences"
 msgstr "GnuPG-Einstellungen"
 
@@ -1757,35 +1761,35 @@
 msgid "&Overwrite default settings"
 msgstr "&Überschreibe Voreinstellungen"
 
-#: Src/wptGPGPrefsDlg.cpp:215
+#: Src/wptGPGPrefsDlg.cpp:210
 msgid "Please enter the GnuPG home directory."
 msgstr "Bitte geben Sie das GnuPG-Heimatverzeichnis ein."
 
-#: Src/wptGPGPrefsDlg.cpp:227
+#: Src/wptGPGPrefsDlg.cpp:222
 msgid "Could not save 'HomeDir' in the registry."
 msgstr "Konnte 'Heinmatverzeichnis' nicht in der Registrierung speichern."
 
-#: Src/wptGPGPrefsDlg.cpp:233
+#: Src/wptGPGPrefsDlg.cpp:228
 msgid "Please enter where GPG.exe is located."
 msgstr "Bitte geben Sie den Pfad zu GPG.EXE ein."
 
-#: Src/wptGPGPrefsDlg.cpp:238
+#: Src/wptGPGPrefsDlg.cpp:233
 msgid "Could not find the GPG program in this directory."
 msgstr "Konnte GPG-Programm nicht in diesem Verzeichnis finden."
 
-#: Src/wptGPGPrefsDlg.cpp:243
+#: Src/wptGPGPrefsDlg.cpp:238
 msgid "Could not save 'gpgProgram' in the registry"
 msgstr "Konnte 'gpgProgram' nicht in der Registrierung speichern."
 
-#: Src/wptGPGPrefsDlg.cpp:263
+#: Src/wptGPGPrefsDlg.cpp:258
 msgid "Could not get GPG config file"
 msgstr "Konnte Konfigurationsdatei von GPG nicht öffnen"
 
-#: Src/wptGPGPrefsDlg.cpp:312
+#: Src/wptGPGPrefsDlg.cpp:308
 msgid "Choose GPG Home Directory"
 msgstr "Heimatverzeichnis von GPG auswählen"
 
-#: Src/wptGPGPrefsDlg.cpp:340
+#: Src/wptGPGPrefsDlg.cpp:336
 msgid "Choose GPG Binary"
 msgstr "Wählen Sie GPG.EXE Datei aus"
 
@@ -1818,10 +1822,10 @@
 #: Src/wptKeyManagerDlg.cpp:1741 Src/wptKeyManagerDlg.cpp:1759
 #: Src/wptKeyManagerDlg.cpp:1764 Src/wptKeyManagerDlg.cpp:1769
 #: Src/wptKeyManagerDlg.cpp:1840 Src/wptKeyManagerDlg.cpp:1845
-#: Src/wptKeyManagerDlg.cpp:1978 Src/wptKeysigDlg.cpp:93
-#: Src/wptKeysigDlg.cpp:105 Src/wptKeysigDlg.cpp:314 Src/wptKeysigDlg.cpp:387
-#: Src/wptKeysigDlg.cpp:397 Src/wptKeysigDlg.cpp:440 Src/wptMainProc.cpp:405
-#: Src/wptMainProc.cpp:553 Src/wptMainProc.cpp:561
+#: Src/wptKeyManagerDlg.cpp:1978 Src/wptKeysigDlg.cpp:94
+#: Src/wptKeysigDlg.cpp:106 Src/wptKeysigDlg.cpp:309 Src/wptKeysigDlg.cpp:381
+#: Src/wptKeysigDlg.cpp:391 Src/wptKeysigDlg.cpp:434 Src/wptMainProc.cpp:407
+#: Src/wptMainProc.cpp:555 Src/wptMainProc.cpp:563
 msgid "Key Manager"
 msgstr "Schlüsselverwaltung"
 
@@ -1895,20 +1899,21 @@
 msgid "Unknown Hotkey"
 msgstr "Unbekanntes Tastenkürzel"
 
-#: Src/wptImportList.cpp:266 Src/wptKeyEditDlgs.cpp:258
-#: Src/wptKeyEditDlgs.cpp:1166 Src/wptKeyEditDlgs.cpp:1218
-#: Src/wptKeyEditDlgs.cpp:1465 Src/wptKeyEditDlgs.cpp:1487
-#: Src/wptKeyEditDlgs.cpp:1526 Src/wptKeyEditDlgs.cpp:1559
-#: Src/wptKeyEditDlgs.cpp:1790 Src/wptKeylist.cpp:421 Src/wptKeylist.cpp:455
-#: Src/wptKeyPropsDlg.cpp:161 Src/wptKeysigDlg.cpp:144
-#: Src/wptKeysigDlg.cpp:214
+#: Src/wptImportList.cpp:266 Src/wptKeyEditDlgs.cpp:256
+#: Src/wptKeyEditDlgs.cpp:1144 Src/wptKeyEditDlgs.cpp:1194
+#: Src/wptKeyEditDlgs.cpp:1439 Src/wptKeyEditDlgs.cpp:1459
+#: Src/wptKeyEditDlgs.cpp:1498 Src/wptKeyEditDlgs.cpp:1529
+#: Src/wptKeyEditDlgs.cpp:1596 Src/wptKeyEditDlgs.cpp:1762
+#: Src/wptKeyEditDlgs.cpp:1964 Src/wptKeylist.cpp:421 Src/wptKeylist.cpp:455
+#: Src/wptKeyPropsDlg.cpp:161 Src/wptKeysigDlg.cpp:142
+#: Src/wptKeysigDlg.cpp:207
 msgid "Revoked"
 msgstr "Widerrufen"
 
-#: Src/wptImportList.cpp:268 Src/wptKeyEditDlgs.cpp:260
-#: Src/wptKeyEditDlgs.cpp:1164 Src/wptKeyEditDlgs.cpp:1384
+#: Src/wptImportList.cpp:268 Src/wptKeyEditDlgs.cpp:258
+#: Src/wptKeyEditDlgs.cpp:1142 Src/wptKeyEditDlgs.cpp:1360
 #: Src/wptKeylist.cpp:423 Src/wptKeylist.cpp:453 Src/wptKeyPropsDlg.cpp:159
-#: Src/wptKeysigDlg.cpp:143 Src/wptKeysigDlg.cpp:215
+#: Src/wptKeysigDlg.cpp:141 Src/wptKeysigDlg.cpp:208
 msgid "Expired"
 msgstr "Abgelaufen"
 
@@ -1920,7 +1925,7 @@
 msgid "public key"
 msgstr "öffentlicher Schlüssel"
 
-#: Src/wptImportList.cpp:304 Src/wptKeyEditDlgs.cpp:1226
+#: Src/wptImportList.cpp:304 Src/wptKeyEditDlgs.cpp:1202
 msgid "Invalid user ID"
 msgstr "Ungültige Benutzerkennung"
 
@@ -1936,7 +1941,7 @@
 msgid "Size"
 msgstr "Größe"
 
-#: Src/wptImportList.cpp:347 Src/wptKeyEditDlgs.cpp:1098
+#: Src/wptImportList.cpp:347 Src/wptKeyEditDlgs.cpp:1078
 #: Src/wptKeylist.cpp:577 Src/wptKeylist.cpp:585 Src/wptKeyManagerDlg.cpp:876
 #: Src/wptKeyManagerDlg.cpp:967 Src/wptKeyRevokersDlg.cpp:58
 #: Src/wptKeyserverSearchDlg.cpp:56 Src/wptSigList.cpp:57
@@ -1944,8 +1949,8 @@
 msgid "Key ID"
 msgstr "Schlüssel-ID"
 
-#: Src/wptImportList.cpp:348 Src/wptKeyEditDlgs.cpp:1099
-#: Src/wptKeyEditDlgs.cpp:1195 Src/wptKeylist.cpp:591
+#: Src/wptImportList.cpp:348 Src/wptKeyEditDlgs.cpp:1079
+#: Src/wptKeyEditDlgs.cpp:1173 Src/wptKeylist.cpp:591
 #: Src/wptKeyManagerDlg.cpp:882 Src/wptKeyManagerDlg.cpp:970
 #: Src/wptKeyserverSearchDlg.cpp:57 Src/wptSigList.cpp:56
 msgid "Creation"
@@ -1982,24 +1987,24 @@
 msgid "Key Cache"
 msgstr "Schlüsselcache"
 
-#: Src/wptKeyEditDlgs.cpp:230 Src/wptKeylist.cpp:388
+#: Src/wptKeyEditDlgs.cpp:228 Src/wptKeylist.cpp:388
 msgid "Ultimate"
 msgstr "Absolut"
 
-#: Src/wptKeyEditDlgs.cpp:245 Src/wptKeyEditDlgs.cpp:1161
+#: Src/wptKeyEditDlgs.cpp:243 Src/wptKeyEditDlgs.cpp:1139
 #: Src/wptKeylist.cpp:243 Src/wptKeylist.cpp:382
 msgid "Never"
 msgstr "Niemals"
 
-#: Src/wptKeyEditDlgs.cpp:262 Src/wptKeyEditDlgs.cpp:1168
+#: Src/wptKeyEditDlgs.cpp:260 Src/wptKeyEditDlgs.cpp:1146
 msgid "OK"
 msgstr "OK"
 
-#: Src/wptKeyEditDlgs.cpp:284
+#: Src/wptKeyEditDlgs.cpp:282
 msgid "user ID"
 msgstr "Benutzerkennung"
 
-#: Src/wptKeyEditDlgs.cpp:285
+#: Src/wptKeyEditDlgs.cpp:283
 #, c-format
 msgid ""
 "Could not get key information for: \"%s\":\n"
@@ -2009,7 +2014,7 @@
 "%s"
 
 # c:\oss\winpt-gpgme\src\wptKeyEditDlgs.cpp:258
-#: Src/wptKeyEditDlgs.cpp:357
+#: Src/wptKeyEditDlgs.cpp:355
 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 "
@@ -2020,7 +2025,7 @@
 "240x288 grosses Bild ist eine gute Größe."
 
 # c:\oss\winpt-gpgme\src\wptKeyEditDlgs.cpp:259
-#: Src/wptKeyEditDlgs.cpp:358
+#: Src/wptKeyEditDlgs.cpp:356
 msgid ""
 "Pick an image to use for your photo ID.\n"
 "The image must be a JPEG file."
@@ -2028,35 +2033,35 @@
 "Bitte ein Bild auswählen fuer die photo ID.\n"
 "Das Bild muss eine JPEG Datei sein."
 
-#: Src/wptKeyEditDlgs.cpp:359 Src/wptKeyEditDlgs.cpp:447
-#: Src/wptKeysignDlg.cpp:284
+#: Src/wptKeyEditDlgs.cpp:357 Src/wptKeyEditDlgs.cpp:438
+#: Src/wptKeysignDlg.cpp:292
 msgid "Passphrase"
 msgstr "Passwort"
 
-#: Src/wptKeyEditDlgs.cpp:361
+#: Src/wptKeyEditDlgs.cpp:359
 msgid "Add Photo ID"
 msgstr "Photo ID hinzufügen"
 
-#: Src/wptKeyEditDlgs.cpp:376
+#: Src/wptKeyEditDlgs.cpp:366
 msgid "Select Image File"
 msgstr "Bilddatei auswählen"
 
-#: Src/wptKeyEditDlgs.cpp:380 Src/wptKeyEditDlgs.cpp:390
-#: Src/wptKeyEditDlgs.cpp:396 Src/wptKeyEditDlgs.cpp:408
-#: Src/wptKeyEditDlgs.cpp:917
+#: Src/wptKeyEditDlgs.cpp:370 Src/wptKeyEditDlgs.cpp:381
+#: Src/wptKeyEditDlgs.cpp:387 Src/wptKeyEditDlgs.cpp:399
+#: Src/wptKeyEditDlgs.cpp:898
 msgid "Add Photo"
 msgstr "Foto hinzufügen"
 
-#: Src/wptKeyEditDlgs.cpp:381
+#: Src/wptKeyEditDlgs.cpp:371
 #, c-format
 msgid "'%s' is not a valid JPEG file."
 msgstr "'%s' is keine gültige JPEG Datei."
 
-#: Src/wptKeyEditDlgs.cpp:390 Src/wptKeyRevokeDlg.cpp:173
+#: Src/wptKeyEditDlgs.cpp:380 Src/wptKeyRevokeDlg.cpp:168
 msgid "Please enter a file name."
 msgstr "Bitte Dateinamen eingeben."
 
-#: Src/wptKeyEditDlgs.cpp:394
+#: Src/wptKeyEditDlgs.cpp:385
 msgid ""
 "The JPEG is really large.\n"
 "Are you sure you want to use it?"
@@ -2064,146 +2069,146 @@
 "Das JPEG ist sehr groß.\n"
 "Sind Sie sicher, dass Sie es benutzen wollen?"
 
-#: Src/wptKeyEditDlgs.cpp:413
+#: Src/wptKeyEditDlgs.cpp:404
 msgid "Photo successfully added."
 msgstr "Foto erfolgreich hinzugefügt."
 
-#: Src/wptKeyEditDlgs.cpp:414 Src/wptKeyEditDlgs.cpp:482
-#: Src/wptKeyEditDlgs.cpp:566 Src/wptKeyEditDlgs.cpp:741
-#: Src/wptKeyEditDlgs.cpp:1489 Src/wptKeyEditDlgs.cpp:1561
-#: Src/wptKeyEditDlgs.cpp:1646 Src/wptKeyEditDlgs.cpp:1847
-#: Src/wptKeygenDlg.cpp:488 Src/wptKeygenDlg.cpp:604
-#: Src/wptKeyPropsDlg.cpp:380 Src/wptOwnertrustDlg.cpp:124
-#: Src/wptOwnertrustDlg.cpp:136
+#: Src/wptKeyEditDlgs.cpp:405 Src/wptKeyEditDlgs.cpp:468
+#: Src/wptKeyEditDlgs.cpp:550 Src/wptKeyEditDlgs.cpp:721
+#: Src/wptKeyEditDlgs.cpp:1461 Src/wptKeyEditDlgs.cpp:1531
+#: Src/wptKeyEditDlgs.cpp:1618 Src/wptKeyEditDlgs.cpp:1816
+#: Src/wptKeygenDlg.cpp:494 Src/wptKeygenDlg.cpp:603
+#: Src/wptKeyPropsDlg.cpp:382 Src/wptOwnertrustDlg.cpp:119
+#: Src/wptOwnertrustDlg.cpp:131
 msgid "GnuPG Status"
 msgstr "GnuPG-Status"
 
 # c:\oss\winpt-gpgme\src\wptKeyEditDlgs.cpp:350
-#: Src/wptKeyEditDlgs.cpp:445
+#: Src/wptKeyEditDlgs.cpp:436
 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:446
+#: Src/wptKeyEditDlgs.cpp:437
 msgid "Public key"
 msgstr "öff. Schlüssel"
 
-#: Src/wptKeyEditDlgs.cpp:449 Src/wptKeyEditDlgs.cpp:463
-#: Src/wptKeyEditDlgs.cpp:476 Src/wptKeyEditDlgs.cpp:949
+#: Src/wptKeyEditDlgs.cpp:440 Src/wptKeyEditDlgs.cpp:449
+#: Src/wptKeyEditDlgs.cpp:462 Src/wptKeyEditDlgs.cpp:929
 msgid "Add Revoker"
 msgstr "Wiederrufer hinzufügen"
 
-#: Src/wptKeyEditDlgs.cpp:463 Src/wptKeyEditDlgs.cpp:1521
-#: Src/wptKeyEditDlgs.cpp:1578 Src/wptKeyEditDlgs.cpp:1623
-#: Src/wptKeyEditDlgs.cpp:1778 Src/wptKeyEditDlgs.cpp:1817
-#: Src/wptKeyEditDlgs.cpp:2003
+#: Src/wptKeyEditDlgs.cpp:449 Src/wptKeyEditDlgs.cpp:1493
+#: Src/wptKeyEditDlgs.cpp:1548 Src/wptKeyEditDlgs.cpp:1592
+#: Src/wptKeyEditDlgs.cpp:1750 Src/wptKeyEditDlgs.cpp:1790
+#: Src/wptKeyEditDlgs.cpp:1960
 msgid "Please select a user ID."
 msgstr "Bitte eine Benutzerkennung wählen."
 
-#: Src/wptKeyEditDlgs.cpp:481
+#: Src/wptKeyEditDlgs.cpp:467
 msgid "Revoker successfully addded."
 msgstr "Widerrufer erfolgreich hinzugefügt."
 
-#: Src/wptKeyEditDlgs.cpp:515
+#: Src/wptKeyEditDlgs.cpp:501
 msgid "Add new User ID"
 msgstr "Neue Benutzerkennung hinzufügen"
 
-#: Src/wptKeyEditDlgs.cpp:517
+#: Src/wptKeyEditDlgs.cpp:503
 msgid "&Email"
 msgstr "&E-Mail"
 
-#: Src/wptKeyEditDlgs.cpp:518
+#: Src/wptKeyEditDlgs.cpp:504
 msgid "&Comment"
 msgstr "&Kommentar"
 
-#: Src/wptKeyEditDlgs.cpp:535
+#: Src/wptKeyEditDlgs.cpp:516
 msgid "Please enter a name (min. 5 chars.)"
 msgstr "Bitte Namen eingeben (min. 5 Zeichen)"
 
-#: Src/wptKeyEditDlgs.cpp:536 Src/wptKeyEditDlgs.cpp:542
-#: Src/wptKeyEditDlgs.cpp:547 Src/wptKeyEditDlgs.cpp:551
-#: Src/wptKeyEditDlgs.cpp:564
+#: Src/wptKeyEditDlgs.cpp:517 Src/wptKeyEditDlgs.cpp:523
+#: Src/wptKeyEditDlgs.cpp:529 Src/wptKeyEditDlgs.cpp:534
+#: Src/wptKeyEditDlgs.cpp:548
 msgid "UserID"
 msgstr "Benutzerkennung"
 
-#: Src/wptKeyEditDlgs.cpp:541
+#: Src/wptKeyEditDlgs.cpp:522
 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:529
 msgid "Please enter an email address."
 msgstr "Bitte eine E-Mail-Adresse eingeben."
 
-#: Src/wptKeyEditDlgs.cpp:551
+#: Src/wptKeyEditDlgs.cpp:534
 msgid "Invalid email address."
 msgstr "Ungültige E-Mail-Adresse"
 
-#: Src/wptKeyEditDlgs.cpp:566
+#: Src/wptKeyEditDlgs.cpp:550
 msgid "user ID successfully added."
 msgstr "Benutzerkennung erfolgreich hinzugefügt."
 
-#: Src/wptKeyEditDlgs.cpp:650 Src/wptKeyEditDlgs.cpp:855
+#: Src/wptKeyEditDlgs.cpp:635 Src/wptKeyEditDlgs.cpp:835
 msgid "Add new Subkey"
 msgstr "Neuen Unterschlüssel hinzufügen"
 
-#: Src/wptKeyEditDlgs.cpp:651
+#: Src/wptKeyEditDlgs.cpp:636
 msgid "Key type"
 msgstr "Schlüssel-Typ"
 
-#: Src/wptKeyEditDlgs.cpp:652
+#: Src/wptKeyEditDlgs.cpp:637
 msgid "Size in bits"
 msgstr "Größe in Bits"
 
-#: Src/wptKeyEditDlgs.cpp:653
+#: Src/wptKeyEditDlgs.cpp:638
 msgid "Key expiration"
 msgstr "Key Ablaufdatum"
 
-#: Src/wptKeyEditDlgs.cpp:700
+#: Src/wptKeyEditDlgs.cpp:680
 msgid "Please select one entry."
 msgstr "Bitte wählen Sie einen Eintrag aus."
 
-#: Src/wptKeyEditDlgs.cpp:701 Src/wptKeyEditDlgs.cpp:707
-#: Src/wptKeyEditDlgs.cpp:738 Src/wptKeyEditDlgs.cpp:838
+#: Src/wptKeyEditDlgs.cpp:681 Src/wptKeyEditDlgs.cpp:687
+#: Src/wptKeyEditDlgs.cpp:718 Src/wptKeyEditDlgs.cpp:818
 msgid "Add Subkey"
 msgstr "Unterschlüssel hinzufügen"
 
-#: Src/wptKeyEditDlgs.cpp:706
+#: Src/wptKeyEditDlgs.cpp:686
 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:720
 msgid "Subkey successfully added."
 msgstr "Unterschlüssel erfolgreich hinzugefügt."
 
-#: Src/wptKeyEditDlgs.cpp:768 Src/wptKeyEditDlgs.cpp:837
-#: Src/wptKeyEditDlgs.cpp:916 Src/wptKeyEditDlgs.cpp:949
-#: Src/wptKeyEditDlgs.cpp:1030 Src/wptKeyEditDlgs.cpp:1373
-#: Src/wptKeyEditDlgs.cpp:1448 Src/wptKeyEditDlgs.cpp:1510
+#: Src/wptKeyEditDlgs.cpp:748 Src/wptKeyEditDlgs.cpp:817
+#: Src/wptKeyEditDlgs.cpp:897 Src/wptKeyEditDlgs.cpp:929
+#: Src/wptKeyEditDlgs.cpp:1010 Src/wptKeyEditDlgs.cpp:1348
+#: Src/wptKeyEditDlgs.cpp:1422 Src/wptKeyEditDlgs.cpp:1482
 #: Src/wptKeyManagerDlg.cpp:1591
 msgid "There is no secret key available!"
 msgstr "Kein geheimer Schlüssel vorhanden!"
 
-#: Src/wptKeyEditDlgs.cpp:769 Src/wptKeyEditDlgs.cpp:788
+#: Src/wptKeyEditDlgs.cpp:749 Src/wptKeyEditDlgs.cpp:768
 msgid "Add user ID"
 msgstr "Benutzerkennung hinzufügen"
 
-#: Src/wptKeyEditDlgs.cpp:895
+#: Src/wptKeyEditDlgs.cpp:876
 msgid "Preferred keyserver successfully set."
 msgstr "Bevorzugter Keyserver wurde erfolgreich gesetzt."
 
-#: Src/wptKeyEditDlgs.cpp:984 Src/wptKeyEditOwnertrustDlg.cpp:55
-#: Src/wptKeyPropsDlg.cpp:371
+#: Src/wptKeyEditDlgs.cpp:964 Src/wptKeyEditOwnertrustDlg.cpp:55
+#: Src/wptKeyPropsDlg.cpp:373
 msgid "Change Ownertrust"
 msgstr "Besitzervertrauen ändern"
 
-#: Src/wptKeyEditDlgs.cpp:987 Src/wptKeyManager.cpp:220
+#: Src/wptKeyEditDlgs.cpp:967 Src/wptKeyManager.cpp:220
 msgid "Key status changed."
 msgstr "Schlüsselstatus geändert."
 
-#: Src/wptKeyEditDlgs.cpp:1036
+#: Src/wptKeyEditDlgs.cpp:1016
 msgid ""
 "Cannot change passphrase because the key\n"
 "is protected with the IDEA encryption algorithm."
@@ -2211,21 +2216,21 @@
 "Kann das Passwort das Schlüssels nicht ändern, da der \n"
 "Schlüssel mit dem IDEA Verschlüsselungs-Algorithmus gesichert ist."
 
-#: Src/wptKeyEditDlgs.cpp:1043
+#: Src/wptKeyEditDlgs.cpp:1023
 msgid "Current (old) Passphrase"
 msgstr "Aktuelles (altes) Passwort"
 
-#: Src/wptKeyEditDlgs.cpp:1047
+#: Src/wptKeyEditDlgs.cpp:1027
 msgid "New Passphrase"
 msgstr "Neues Passwort"
 
-#: Src/wptKeyEditDlgs.cpp:1054
+#: Src/wptKeyEditDlgs.cpp:1034
 msgid ""
 "Are you sure that you really don't want a passphrase?\n"
 "This is propably a bad idea, still proceed?"
 msgstr ""
 
-#: Src/wptKeyEditDlgs.cpp:1065 Src/wptPassphraseDlg.cpp:191
+#: Src/wptKeyEditDlgs.cpp:1045 Src/wptPassphraseDlg.cpp:248
 msgid ""
 "The passphrase contains 8-bit characters.\n"
 "It is not suggested to use charset specific characters."
@@ -2233,40 +2238,32 @@
 "Das Passwort enthält 8-bit Zeichen.\n"
 "Es ist nicht zu empfehlen zeichensatzspezifische Zeichen zu benutzen."
 
-#: Src/wptKeyEditDlgs.cpp:1079
+#: Src/wptKeyEditDlgs.cpp:1059
 msgid "Change Passwd"
 msgstr "Passwort ändern"
 
-#: Src/wptKeyEditDlgs.cpp:1081
+#: Src/wptKeyEditDlgs.cpp:1061
 msgid "Passphrase successfully changed."
 msgstr "Passwort erfolgreich geändert."
 
-#: Src/wptKeyEditDlgs.cpp:1097 Src/wptKeyManagerDlg.cpp:883
+#: Src/wptKeyEditDlgs.cpp:1077 Src/wptKeyManagerDlg.cpp:883
 msgid "Description"
 msgstr "Beschreibung"
 
-#: Src/wptKeyEditDlgs.cpp:1100
+#: Src/wptKeyEditDlgs.cpp:1080
 msgid "Expires"
 msgstr "Verfällt"
 
-#: Src/wptKeyEditDlgs.cpp:1115
-msgid "No subkey(s) found."
-msgstr "Kein(e) Unterschlüssel gefunden."
-
-#: Src/wptKeyEditDlgs.cpp:1192 Src/wptKeylist.cpp:580 Src/wptKeylist.cpp:589
+#: Src/wptKeyEditDlgs.cpp:1170 Src/wptKeylist.cpp:580 Src/wptKeylist.cpp:589
 #: Src/wptKeyManagerDlg.cpp:880
 msgid "Validity"
 msgstr "Gültigkeit"
 
-#: Src/wptKeyEditDlgs.cpp:1194
+#: Src/wptKeyEditDlgs.cpp:1172
 msgid "Email"
 msgstr "E-Mail"
 
-#: Src/wptKeyEditDlgs.cpp:1202
-msgid "No user ID(s) found."
-msgstr "Keine Benutzerkennung(en) gefunden."
-
-#: Src/wptKeyEditDlgs.cpp:1284
+#: Src/wptKeyEditDlgs.cpp:1260
 msgid ""
 "ADDUID   \t\tadd a user ID\r\n"
 "ADDPHOTO  \t\tadd a photo ID\r\n"
@@ -2310,19 +2307,15 @@
 "CLEAN     \t\tEntferne unbrauchbare Signaturen vom Schlüssel\r\n"
 "MINIMIZE  \t\tEntferne alle Signaturen vom Schlüssel\r\n"
 
-#: Src/wptKeyEditDlgs.cpp:1306
+#: Src/wptKeyEditDlgs.cpp:1282
 msgid "Key Edit Help"
 msgstr "Hilfe zum Schlüssel bearbeiten"
 
-#: Src/wptKeyEditDlgs.cpp:1322
+#: Src/wptKeyEditDlgs.cpp:1298 Src/wptKeyEditDlgs.cpp:1307
 msgid "Primary key can not be deleted!"
 msgstr "Primärer Schlüssel kann nicht gelöscht werden!"
 
-#: Src/wptKeyEditDlgs.cpp:1330
-msgid "Primary subkey can not be deleted!"
-msgstr "Primärer Unterschlüssel kann nicht gelöscht werden!"
-
-#: Src/wptKeyEditDlgs.cpp:1338
+#: Src/wptKeyEditDlgs.cpp:1315
 #, c-format
 msgid ""
 "\"Subkey %s.\"\n"
@@ -2339,15 +2332,15 @@
 "\n"
 "Möchten Sie diesen Unterschlüssel wirklich löschen?"
 
-#: Src/wptKeyEditDlgs.cpp:1350
+#: Src/wptKeyEditDlgs.cpp:1325
 msgid "Delete Subkey"
 msgstr "Unterschlüssel löschen"
 
-#: Src/wptKeyEditDlgs.cpp:1354
+#: Src/wptKeyEditDlgs.cpp:1329
 msgid "Subkey successfully deleted."
 msgstr "Unterschlüssel erfolgreich gelöscht."
 
-#: Src/wptKeyEditDlgs.cpp:1385
+#: Src/wptKeyEditDlgs.cpp:1361
 msgid ""
 "Key already expired.\n"
 "\n"
@@ -2357,19 +2350,19 @@
 "\n"
 "Wollen Sie das Ablaufdatum ändern?"
 
-#: Src/wptKeyEditDlgs.cpp:1394 Src/wptKeyEditDlgs.cpp:1397
+#: Src/wptKeyEditDlgs.cpp:1370 Src/wptKeyEditDlgs.cpp:1373
 msgid "Key Expiration Date"
 msgstr "Ablaufdatum"
 
-#: Src/wptKeyEditDlgs.cpp:1420
+#: Src/wptKeyEditDlgs.cpp:1394
 msgid "Expire Subkey"
 msgstr "Untschlüssel Ablauf"
 
-#: Src/wptKeyEditDlgs.cpp:1426
+#: Src/wptKeyEditDlgs.cpp:1400
 msgid "Subkey expire date successfully set."
 msgstr "Unterschlüsselablaufdatum erfolgreich hinzugefügt."
 
-#: Src/wptKeyEditDlgs.cpp:1457
+#: Src/wptKeyEditDlgs.cpp:1431
 msgid ""
 "No subkeys were found, if you want to revoke the\n"
 "whole key, please use the Key Manager command directly.\n"
@@ -2381,31 +2374,31 @@
 "\n"
 "Diese Funktion ist nur für das Widerrufen einzelner Unterschlüssel gedacht."
 
-#: Src/wptKeyEditDlgs.cpp:1466
+#: Src/wptKeyEditDlgs.cpp:1440
 msgid "Key already revoked."
 msgstr "Der Schlüssel ist bereits widerrufen."
 
-#: Src/wptKeyEditDlgs.cpp:1485
+#: Src/wptKeyEditDlgs.cpp:1457
 msgid "Revoke Subkey"
 msgstr "Unterschlüssel widerrufen"
 
-#: Src/wptKeyEditDlgs.cpp:1489
+#: Src/wptKeyEditDlgs.cpp:1461
 msgid "Subkey successfully revoked."
 msgstr "Unterschlüssel erfolgreich widerrufen."
 
-#: Src/wptKeyEditDlgs.cpp:1511
+#: Src/wptKeyEditDlgs.cpp:1483
 msgid "Revoke user ID"
 msgstr "Benutzerkennung widerrufen"
 
-#: Src/wptKeyEditDlgs.cpp:1516
+#: Src/wptKeyEditDlgs.cpp:1488
 msgid "Key has only one user ID."
 msgstr "Schlüssel hat nur eine Benutzerkennung."
 
-#: Src/wptKeyEditDlgs.cpp:1527
+#: Src/wptKeyEditDlgs.cpp:1499
 msgid "This user ID has been already revoked."
 msgstr "Diese Benutzerkennung wurde bereits widerrufen."
 
-#: Src/wptKeyEditDlgs.cpp:1533
+#: Src/wptKeyEditDlgs.cpp:1505
 #, c-format
 msgid ""
 "user ID \"%s\".\n"
@@ -2415,47 +2408,47 @@
 "Benutzerkennung %s.\r\n"
 "Diese Benutzerkennung wirklich widerrufen?"
 
-#: Src/wptKeyEditDlgs.cpp:1557
+#: Src/wptKeyEditDlgs.cpp:1527
 msgid "Revoke User ID"
 msgstr "Benutzerkennung widerrufen"
 
-#: Src/wptKeyEditDlgs.cpp:1561
+#: Src/wptKeyEditDlgs.cpp:1531
 msgid "User ID successfully revoked"
 msgstr "Benutzerkennung erfolgreich widerrufen"
 
-#: Src/wptKeyEditDlgs.cpp:1603
+#: Src/wptKeyEditDlgs.cpp:1571
 msgid "Could not set user ID preferences"
 msgstr "Konnte die veränderter Benutzerkennung nicht speichern"
 
-#: Src/wptKeyEditDlgs.cpp:1643
+#: Src/wptKeyEditDlgs.cpp:1615
 msgid "Primary"
 msgstr "Primär"
 
-#: Src/wptKeyEditDlgs.cpp:1646
+#: Src/wptKeyEditDlgs.cpp:1618
 msgid "User ID successfully flagged"
 msgstr "Benutzerkennung erfolgreich gekennzeichnet"
 
-#: Src/wptKeyEditDlgs.cpp:1740
+#: Src/wptKeyEditDlgs.cpp:1712
 msgid "No preferences available."
 msgstr "Keine Präferenzen verfübar."
 
-#: Src/wptKeyEditDlgs.cpp:1744
+#: Src/wptKeyEditDlgs.cpp:1716
 msgid "MDC feature"
 msgstr "Unterstützt MDC"
 
-#: Src/wptKeyEditDlgs.cpp:1746
+#: Src/wptKeyEditDlgs.cpp:1718
 msgid "user ID:"
 msgstr "Benutzerkennung:"
 
-#: Src/wptKeyEditDlgs.cpp:1747 Src/wptKeyeditSetPrefDlg.cpp:116
+#: Src/wptKeyEditDlgs.cpp:1719 Src/wptKeyeditSetPrefDlg.cpp:116
 msgid "Key Preferences"
 msgstr "Schlüsseleinstellungen"
 
-#: Src/wptKeyEditDlgs.cpp:1812
+#: Src/wptKeyEditDlgs.cpp:1784
 msgid "Primary user ID can not be deleted!"
 msgstr "Primäre Benutzerkennung kann nicht gelöscht werden!"
 
-#: Src/wptKeyEditDlgs.cpp:1823
+#: Src/wptKeyEditDlgs.cpp:1795
 #, c-format
 msgid ""
 "user ID \"%s\".\n"
@@ -2470,27 +2463,27 @@
 "\n"
 "Diese Benutzerkennung wirklich löschen?"
 
-#: Src/wptKeyEditDlgs.cpp:1843
-msgid "Delete user ID"
+#: Src/wptKeyEditDlgs.cpp:1812
+msgid "Delete User ID"
 msgstr "Benutzerkennung löschen"
 
-#: Src/wptKeyEditDlgs.cpp:1847
+#: Src/wptKeyEditDlgs.cpp:1816
 msgid "User ID successfully deleted"
 msgstr "Benutzerkennung erfolgreich gelöscht"
 
-#: Src/wptKeyEditDlgs.cpp:1952 Src/wptKeyEditDlgs.cpp:1970
+#: Src/wptKeyEditDlgs.cpp:1907 Src/wptKeyEditDlgs.cpp:1925
 msgid "Finished to compact key."
 msgstr "Schlüssel erfolgreich bearbeitet."
 
-#: Src/wptKeyEditDlgs.cpp:2007
+#: Src/wptKeyEditDlgs.cpp:1967
 msgid "Do you really want to make this sig exportable?"
 msgstr "Wollen Sie diese Signatur wirklich exportierbar machen?"
 
-#: Src/wptKeyEditDlgs.cpp:2031 Src/wptKeysignDlg.cpp:393
+#: Src/wptKeyEditDlgs.cpp:1998 Src/wptKeysignDlg.cpp:401
 msgid "Key successfully signed."
 msgstr "Schlüssel erfolgreich signiert."
 
-#: Src/wptKeyEditDlgs.cpp:2094
+#: Src/wptKeyEditDlgs.cpp:2061
 #, c-format
 msgid ""
 "Your keys is listed as a designated revoker for the key\n"
@@ -2508,28 +2501,28 @@
 "erstellen wollen welches es erlaubt den gelisteten Schlüssel\n"
 "zu widerrufen?"
 
-#: Src/wptKeyEditDlgs.cpp:2142
+#: Src/wptKeyEditDlgs.cpp:2105
 msgid "Could not set subkey window procedure."
 msgstr "Konnte \"subkey window procedure\" nicht setzen."
 
-#: Src/wptKeyEditDlgs.cpp:2155
+#: Src/wptKeyEditDlgs.cpp:2118
 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:2164
+#: Src/wptKeyEditDlgs.cpp:2127
 msgid "Command>"
 msgstr "Kommando>"
 
-#: Src/wptKeyEditDlgs.cpp:2167
+#: Src/wptKeyEditDlgs.cpp:2130
 msgid "&Revoke..."
 msgstr "&Widerrufen..."
 
-#: Src/wptKeyEditDlgs.cpp:2210
+#: Src/wptKeyEditDlgs.cpp:2173
 msgid "Please select a command."
 msgstr "Bitte einen Befehl auswählen."
 
-#: Src/wptKeyEditDlgs.cpp:2214
+#: Src/wptKeyEditDlgs.cpp:2177
 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"
 
@@ -2563,19 +2556,19 @@
 "Bitte entscheiden Sie wie sehr sie dem Nutzer zutrauen andere "
 "Nutzerschlüssel zu überprüfen (mittels Personalausweis, Fingerprint, ...)?"
 
-#: Src/wptKeyEditOwnertrustDlg.cpp:88
+#: Src/wptKeyEditOwnertrustDlg.cpp:82
 msgid "Please choose one entry."
 msgstr "Bitte wählen Sie einen Eintrag."
 
-#: Src/wptKeyEditOwnertrustDlg.cpp:88 Src/wptKeyEditOwnertrustDlg.cpp:95
-#: Src/wptKeyEditOwnertrustDlg.cpp:104 Src/wptKeyManagerDlg.cpp:938
-#: Src/wptKeyManagerDlg.cpp:1806 Src/wptKeyPropsDlg.cpp:292
-#: Src/wptOwnertrustDlg.cpp:97 Src/wptOwnertrustDlg.cpp:121
-#: Src/wptOwnertrustDlg.cpp:133
+#: Src/wptKeyEditOwnertrustDlg.cpp:83 Src/wptKeyEditOwnertrustDlg.cpp:89
+#: Src/wptKeyEditOwnertrustDlg.cpp:98 Src/wptKeyManagerDlg.cpp:938
+#: Src/wptKeyManagerDlg.cpp:1806 Src/wptKeyPropsDlg.cpp:294
+#: Src/wptOwnertrustDlg.cpp:97 Src/wptOwnertrustDlg.cpp:116
+#: Src/wptOwnertrustDlg.cpp:128
 msgid "Ownertrust"
 msgstr "Besitzervertrauen"
 
-#: Src/wptKeyEditOwnertrustDlg.cpp:94
+#: Src/wptKeyEditOwnertrustDlg.cpp:88
 msgid "Do you really want to set this key to ultimate trust?"
 msgstr "Diesen Schlüssel wirklich auf absolutes Vertrauen setzen?"
 
@@ -2587,16 +2580,16 @@
 msgid "Key Generation - Progress Dialog"
 msgstr "Schlüsselerzeugung - Fortschrittsdialog"
 
-#: Src/wptKeygenCBDlg.cpp:85 Src/wptKeygenDlg.cpp:297 Src/wptKeygenDlg.cpp:306
-#: Src/wptKeygenDlg.cpp:369 Src/wptKeygenDlg.cpp:408 Src/wptKeygenDlg.cpp:413
-#: Src/wptKeygenDlg.cpp:418 Src/wptKeygenDlg.cpp:423 Src/wptKeygenDlg.cpp:430
-#: Src/wptKeygenDlg.cpp:438 Src/wptKeygenDlg.cpp:452 Src/wptKeygenDlg.cpp:461
-#: Src/wptKeygenDlg.cpp:485 Src/wptKeygenDlg.cpp:581
-#: Src/wptKeyManagerDlg.cpp:1673 Src/wptPassphraseDlg.cpp:109
+#: Src/wptKeygenCBDlg.cpp:85 Src/wptKeygenDlg.cpp:298 Src/wptKeygenDlg.cpp:307
+#: Src/wptKeygenDlg.cpp:371 Src/wptKeygenDlg.cpp:410 Src/wptKeygenDlg.cpp:415
+#: Src/wptKeygenDlg.cpp:420 Src/wptKeygenDlg.cpp:425 Src/wptKeygenDlg.cpp:432
+#: Src/wptKeygenDlg.cpp:440 Src/wptKeygenDlg.cpp:454 Src/wptKeygenDlg.cpp:461
+#: Src/wptKeygenDlg.cpp:470 Src/wptKeygenDlg.cpp:491 Src/wptKeygenDlg.cpp:583
+#: Src/wptKeyManagerDlg.cpp:1673 Src/wptPassphraseDlg.cpp:145
 msgid "Key Generation"
 msgstr "Schlüsselerzeugung"
 
-#: Src/wptKeygenDlg.cpp:285
+#: Src/wptKeygenDlg.cpp:286
 msgid ""
 "It is STRONGLY recommend that you backup your keyrings because they both "
 "contain VERY important data.\n"
@@ -2614,48 +2607,48 @@
 "\n"
 "Backup der Schlüsselbunde erstellen?"
 
-#: Src/wptKeygenDlg.cpp:290
+#: Src/wptKeygenDlg.cpp:291
 msgid "WARNING - Important hint"
 msgstr "WARNUNG - Wichtiger Hinweis"
 
-#: Src/wptKeygenDlg.cpp:292
+#: Src/wptKeygenDlg.cpp:293
 msgid "Destination for Public Keyring"
 msgstr "Speicherort für öff. Schlüsselbund"
 
-#: Src/wptKeygenDlg.cpp:298 Src/wptKeygenDlg.cpp:307
+#: Src/wptKeygenDlg.cpp:299 Src/wptKeygenDlg.cpp:308
 #, c-format
 msgid "Could not copy %s -> %s"
 msgstr "Konnte %s nicht -> %s kopieren"
 
-#: Src/wptKeygenDlg.cpp:301
+#: Src/wptKeygenDlg.cpp:302
 msgid "Destination for Secret Keyring"
 msgstr "Speicherort für geheimen Schlüsselbund"
 
-#: Src/wptKeygenDlg.cpp:323
+#: Src/wptKeygenDlg.cpp:324
 msgid "DSA and ELG (default)"
 msgstr "DSA und ELG (Standard)"
 
-#: Src/wptKeygenDlg.cpp:324
+#: Src/wptKeygenDlg.cpp:325
 msgid "DSA and RSA"
 msgstr "DSA und RSA"
 
-#: Src/wptKeygenDlg.cpp:325
+#: Src/wptKeygenDlg.cpp:326
 msgid "DSA sign only"
 msgstr "DSA nur signieren"
 
-#: Src/wptKeygenDlg.cpp:326
+#: Src/wptKeygenDlg.cpp:327
 msgid "RSA sign only"
 msgstr "RSA nur signieren"
 
-#: Src/wptKeygenDlg.cpp:327
+#: Src/wptKeygenDlg.cpp:328
 msgid "RSA sign and encrypt"
 msgstr "RSA signieren + verschlüsseln"
 
-#: Src/wptKeygenDlg.cpp:328
+#: Src/wptKeygenDlg.cpp:329
 msgid "RSA and RSA (PGP)"
 msgstr "RSA und RSA (PGP)"
 
-#: Src/wptKeygenDlg.cpp:371
+#: Src/wptKeygenDlg.cpp:373
 msgid ""
 "NOTE: Key generation can be a lengthy process! Please wait until you get the "
 "message that key generation was finished."
@@ -2663,70 +2656,70 @@
 "Die Schlüsselerstellung kann eine Weile dauern! Bitte warten Sie, bis eine "
 "Meldung über die Beendigung der Schlüsselerzeugung erscheint."
 
-#: Src/wptKeygenDlg.cpp:373
+#: Src/wptKeygenDlg.cpp:375
 msgid "Subkey size in &bits"
 msgstr "&Schlüsselgröße in Bits"
 
-#: Src/wptKeygenDlg.cpp:374
+#: Src/wptKeygenDlg.cpp:376
 msgid "&Real name"
 msgstr "&Ihr Name"
 
-#: Src/wptKeygenDlg.cpp:378
+#: Src/wptKeygenDlg.cpp:380
 msgid "Key &type"
 msgstr "Schlüssel &Typ"
 
-#: Src/wptKeygenDlg.cpp:407
+#: Src/wptKeygenDlg.cpp:409
 msgid "Invalid value. Allowed values 1024-4096 bits."
 msgstr "Ungültige Eingabe. Erlaubte Werte sind 1024-4096 Bit."
 
-#: Src/wptKeygenDlg.cpp:412
+#: Src/wptKeygenDlg.cpp:414
 msgid "Do you really need such a large key?"
 msgstr "Benötigen Sie wirklich solch einen großen Schlüssel?"
 
-#: Src/wptKeygenDlg.cpp:418 Src/wptKeygenDlg.cpp:558
+#: Src/wptKeygenDlg.cpp:420 Src/wptKeygenDlg.cpp:560
 msgid "Please enter the name."
 msgstr "Bitte geben Sie einen Namen ein."
 
-#: Src/wptKeygenDlg.cpp:422 Src/wptKeygenDlg.cpp:563
+#: Src/wptKeygenDlg.cpp:424 Src/wptKeygenDlg.cpp:565
 msgid "Please do not enter the email address in the name field."
 msgstr "Bitte geben Sie nicht die E-Mail-Adresse im Kommentarfeld ein."
 
-#: Src/wptKeygenDlg.cpp:429 Src/wptKeygenDlg.cpp:570
+#: Src/wptKeygenDlg.cpp:431 Src/wptKeygenDlg.cpp:572
 msgid "Please enter a valid email address."
 msgstr "Bitte geben Sie eine E-Mail-Adresse ein."
 
-#: Src/wptKeygenDlg.cpp:437
+#: Src/wptKeygenDlg.cpp:439
 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:460 Src/wptKeyRevokeDlg.cpp:181
+#: Src/wptKeygenDlg.cpp:469 Src/wptKeyRevokeDlg.cpp:176
 msgid "Please enter the passphrase."
 msgstr "Bitte das Passwort eingeben."
 
-#: Src/wptKeygenDlg.cpp:488 Src/wptKeygenDlg.cpp:604
+#: Src/wptKeygenDlg.cpp:494 Src/wptKeygenDlg.cpp:603
 msgid "Key Generation completed"
 msgstr "Schlüsselerzeugung abgeschlossen"
 
 # c:\oss\winpt-gpgme\src\wptKeygenDlg.cpp:589
-#: Src/wptKeygenDlg.cpp:531
+#: Src/wptKeygenDlg.cpp:537
 msgid "&Prefer RSA keys"
 msgstr "RSA Schlüssel &bervorzugen"
 
-#: Src/wptKeygenDlg.cpp:532
+#: Src/wptKeygenDlg.cpp:538
 msgid "Real name:"
 msgstr "Ihr Name:"
 
-#: Src/wptKeygenDlg.cpp:533
+#: Src/wptKeygenDlg.cpp:539
 msgid "Email address:"
 msgstr "E-Mail-&Adresse:"
 
 # c:\oss\winpt-gpgme\src\wptKeygenDlg.cpp:592
-#: Src/wptKeygenDlg.cpp:534
+#: Src/wptKeygenDlg.cpp:540
 msgid "Name and E-Mail Assignment"
 msgstr "Name und E-Mail Zuweisung"
 
 # c:\oss\winpt-gpgme\src\wptKeygenDlg.cpp:593
-#: Src/wptKeygenDlg.cpp:535
+#: Src/wptKeygenDlg.cpp:541
 msgid ""
 "Every key pair must have a name associated with it. The name and\n"
 "email address let your correspondents that your public key they are\n"
@@ -2737,7 +2730,7 @@
 "Schlüssel zu Ihen gehört."
 
 # c:\oss\winpt-gpgme\src\wptKeygenDlg.cpp:594
-#: Src/wptKeygenDlg.cpp:536
+#: Src/wptKeygenDlg.cpp:542
 msgid ""
 "By accosiating an email address with your key pair, you will enable WinPT to "
 "assist your correspondents in selecting the correct public\n"
@@ -2748,17 +2741,17 @@
 "Schlüssel auswählen\n"
 "wenn dise mit Ihnen kommunizieren wollen."
 
-#: Src/wptKeygenDlg.cpp:537 Src/wptKeygenDlg.cpp:559 Src/wptKeygenDlg.cpp:564
-#: Src/wptKeygenDlg.cpp:571 Src/wptKeygenDlg.cpp:577 Src/wptKeygenDlg.cpp:600
+#: Src/wptKeygenDlg.cpp:543 Src/wptKeygenDlg.cpp:561 Src/wptKeygenDlg.cpp:566
+#: Src/wptKeygenDlg.cpp:573 Src/wptKeygenDlg.cpp:579 Src/wptKeygenDlg.cpp:599
 #: Src/wptKeyManagerDlg.cpp:1696
 msgid "Key Generation Wizard"
 msgstr "Schlüsselerzeugungs-Assistent"
 
-#: Src/wptKeygenDlg.cpp:539
+#: Src/wptKeygenDlg.cpp:545
 msgid "E&xpert"
 msgstr "E&xperte"
 
-#: Src/wptKeygenDlg.cpp:576
+#: Src/wptKeygenDlg.cpp:578
 msgid "Please do not add '<' or '>' to the email address."
 msgstr "Bitte nicht '<' oder '>' zu der E-Mail-Adresse hinzufueen."
 
@@ -3163,7 +3156,7 @@
 msgstr "&Importieren..."
 
 #: Src/wptKeyManagerDlg.cpp:956 Src/wptKeyManagerDlg.cpp:992
-#: Src/wptKeysigDlg.cpp:425
+#: Src/wptKeysigDlg.cpp:419
 msgid "&Properties"
 msgstr "&Eigenschaften"
 
@@ -3345,10 +3338,10 @@
 msgid "Could not access public keyring"
 msgstr "Konnte nicht auf öffentlichen Schlüsselbund zugreifen"
 
-#: Src/wptKeyManagerDlg.cpp:1567 Src/wptKeysignDlg.cpp:259
-#: Src/wptKeysignDlg.cpp:274 Src/wptKeysignDlg.cpp:354
-#: Src/wptKeysignDlg.cpp:369 Src/wptKeysignDlg.cpp:386
-#: Src/wptKeysignDlg.cpp:391 Src/wptKeysignDlg.cpp:393
+#: Src/wptKeyManagerDlg.cpp:1567 Src/wptKeysignDlg.cpp:282
+#: Src/wptKeysignDlg.cpp:296 Src/wptKeysignDlg.cpp:358
+#: Src/wptKeysignDlg.cpp:374 Src/wptKeysignDlg.cpp:391
+#: Src/wptKeysignDlg.cpp:396 Src/wptKeysignDlg.cpp:401
 msgid "Key Signing"
 msgstr "Schlüsselsignierung"
 
@@ -3357,9 +3350,9 @@
 msgstr "Schlüssel ist bereits widerrufen!"
 
 #: Src/wptKeyManagerDlg.cpp:1597 Src/wptKeyRevokeDlg.cpp:70
-#: Src/wptKeyRevokeDlg.cpp:80 Src/wptKeyRevokeDlg.cpp:169
-#: Src/wptKeyRevokeDlg.cpp:174 Src/wptKeyRevokeDlg.cpp:182
-#: Src/wptKeyRevokeDlg.cpp:191 Src/wptKeyRevokeDlg.cpp:196
+#: Src/wptKeyRevokeDlg.cpp:80 Src/wptKeyRevokeDlg.cpp:164
+#: Src/wptKeyRevokeDlg.cpp:169 Src/wptKeyRevokeDlg.cpp:177
+#: Src/wptKeyRevokeDlg.cpp:186 Src/wptKeyRevokeDlg.cpp:192
 msgid "Key Revocation Cert"
 msgstr "Schlüsselwiderruf Zertifikat"
 
@@ -3371,7 +3364,7 @@
 msgid "Key Signature List"
 msgstr "Schlüssel-Signatur-Liste"
 
-#: Src/wptKeyManagerDlg.cpp:1641 Src/wptKeyPropsDlg.cpp:288
+#: Src/wptKeyManagerDlg.cpp:1641 Src/wptKeyPropsDlg.cpp:290
 msgid "Key Properties"
 msgstr "Schlüsseleigenschaften"
 
@@ -3388,7 +3381,7 @@
 msgid "Smart Card support is not available."
 msgstr "SmartCard-Unterstützung ist nicht verfügbar."
 
-#: Src/wptKeyManagerDlg.cpp:1704 Src/wptKeyserverDlg.cpp:568
+#: Src/wptKeyManagerDlg.cpp:1704 Src/wptKeyserverDlg.cpp:576
 msgid "Keyserver Access"
 msgstr "Schlüsselserver-Zugriff"
 
@@ -3443,13 +3436,17 @@
 msgid "Unknown"
 msgstr "Unbekannt"
 
-#: Src/wptKeyPropsDlg.cpp:211
+#: Src/wptKeyPropsDlg.cpp:165
+msgid "Invalid"
+msgstr "Ungültig"
+
+#: Src/wptKeyPropsDlg.cpp:213
 #, c-format
 msgid "Card-Type: %s\r\n"
 msgstr "Karten-Typ: %s\r\n"
 
 # c:\oss\winpt-gpgme\src\wptKeyPropsDlg.cpp:214
-#: Src/wptKeyPropsDlg.cpp:250
+#: Src/wptKeyPropsDlg.cpp:252
 #, c-format
 msgid ""
 "Type: %s\r\n"
@@ -3472,25 +3469,25 @@
 "Cipher: %s\r\n"
 "%s\r\n"
 
-#: Src/wptKeyPropsDlg.cpp:289
+#: Src/wptKeyPropsDlg.cpp:291
 msgid "&Change"
 msgstr "&Ändern"
 
-#: Src/wptKeyPropsDlg.cpp:290
+#: Src/wptKeyPropsDlg.cpp:292
 msgid "&Revokers"
 msgstr "&Widerrufer"
 
-#: Src/wptKeyPropsDlg.cpp:291
+#: Src/wptKeyPropsDlg.cpp:293
 msgid "Change &Password"
 msgstr "&Passwort ändern"
 
-#: Src/wptKeyPropsDlg.cpp:298
+#: Src/wptKeyPropsDlg.cpp:300
 msgid "Photo-ID not validated."
 msgstr "Foto-ID nicht geprüft."
 
 # msgid "Unknown"
 # msgstr "Unbekannt"
-#: Src/wptKeyPropsDlg.cpp:355
+#: Src/wptKeyPropsDlg.cpp:357
 msgid ""
 "The status of this key is 'revoked' or 'expired'.\n"
 "You cannot change the ownertrust of such keys."
@@ -3498,7 +3495,7 @@
 "Der Status dieses Schlüssels ist 'widerrufen' oder 'abgelaufen'.\n"
 "Sie können das Vertrauen in solche Schlüssel nicht ändern."
 
-#: Src/wptKeyPropsDlg.cpp:361
+#: Src/wptKeyPropsDlg.cpp:363
 msgid ""
 "This is a non-valid key.\n"
 "Modifying the ownertrust has no effect on such keys.\n"
@@ -3509,11 +3506,11 @@
 "Das Vertrauen solcher Schlüssel zu ändern hat keinerlei Effekt.\n"
 "Trotzdem fortfahren?"
 
-#: Src/wptKeyPropsDlg.cpp:379
+#: Src/wptKeyPropsDlg.cpp:381
 msgid "Ownertrust successfully changed."
 msgstr "Besitzervertrauen erfolgreich geändert."
 
-#: Src/wptKeyPropsDlg.cpp:392 Src/wptKeyRevokersDlg.cpp:162
+#: Src/wptKeyPropsDlg.cpp:394 Src/wptKeyRevokersDlg.cpp:160
 msgid "Key Revokers"
 msgstr "Schlüsselwiderrufer"
 
@@ -3545,15 +3542,15 @@
 "Wenn jemand darauf Zugriff bekommt, kann er Ihren Schlüssel unbrauchbar "
 "machen!"
 
-#: Src/wptKeyRevokeDlg.cpp:159
+#: Src/wptKeyRevokeDlg.cpp:154
 msgid "Choose File to save the Certificate"
 msgstr "Dateinamen für Zertifikat auswählen"
 
-#: Src/wptKeyRevokeDlg.cpp:168
+#: Src/wptKeyRevokeDlg.cpp:163
 msgid "Please select a reason."
 msgstr "Bitte geben Sie einen Grund an."
 
-#: Src/wptKeyRevokeDlg.cpp:195
+#: Src/wptKeyRevokeDlg.cpp:191
 msgid "Revocation certificate generated."
 msgstr "Widerrufzertifikat wurde erstellt."
 
@@ -3562,52 +3559,52 @@
 msgid "Algorithm"
 msgstr "Algorithmus"
 
-#: Src/wptKeyRevokersDlg.cpp:121 Src/wptKeyRevokersDlg.cpp:176
+#: Src/wptKeyRevokersDlg.cpp:121 Src/wptKeyRevokersDlg.cpp:174
 msgid "Designated Key Revokers"
 msgstr "Designierte Schlüsselwiderrufer"
 
-#: Src/wptKeyRevokersDlg.cpp:161
+#: Src/wptKeyRevokersDlg.cpp:159
 msgid "Designated Revoker Keys"
 msgstr "Liste der Schlüsselwiderrufer"
 
-#: Src/wptKeyRevokersDlg.cpp:177
+#: Src/wptKeyRevokersDlg.cpp:175
 #, c-format
 msgid "Do you want to retrieve %s via the default keyserver?"
 msgstr "Wollen Sie '0x%s' wirklich vom Standard-Schlüsselserver empfangen?"
 
-#: Src/wptKeyserver.cpp:401
+#: Src/wptKeyserver.cpp:402
 msgid "Network unreachable"
 msgstr "Netzwerk unerreichbar"
 
-#: Src/wptKeyserver.cpp:404
+#: Src/wptKeyserver.cpp:405
 msgid "Host unreachable"
 msgstr "Rechner unerreichbar"
 
-#: Src/wptKeyserver.cpp:407
+#: Src/wptKeyserver.cpp:408
 msgid "Could not resolve host name"
 msgstr "Konnte Rechnernamen nicht auflösen"
 
-#: Src/wptKeyserver.cpp:410
+#: Src/wptKeyserver.cpp:411
 msgid "Connection refused"
 msgstr "Verbindung abgelehnt"
 
-#: Src/wptKeyserver.cpp:414
+#: Src/wptKeyserver.cpp:415
 msgid "Connection timeout"
 msgstr "Verbindung Time-Out"
 
-#: Src/wptKeyserver.cpp:418
+#: Src/wptKeyserver.cpp:419
 msgid "Connection resetted by peer"
 msgstr "Verbindung wurde zurückgesetzt"
 
-#: Src/wptKeyserver.cpp:421
+#: Src/wptKeyserver.cpp:422
 msgid "Socket has been shutdown"
 msgstr "Socket wurde runtergefahren"
 
-#: Src/wptKeyserver.cpp:599
+#: Src/wptKeyserver.cpp:600
 msgid "Could not save keyserver.conf file"
 msgstr "Konnte keyserver.conf Datei nicht speichern"
 
-#: Src/wptKeyserver.cpp:644
+#: Src/wptKeyserver.cpp:645
 msgid ""
 "Invalid proxy configuration.You need to set a user and a passwordto use "
 "proxy authentication!"
@@ -3615,11 +3612,11 @@
 "Ungültige Proxy-Konfiguration. Sie müssen einen Benutzernamen und ein "
 "Passwort setzen, um Proxy-Authentifizierung nutzen zu können!"
 
-#: Src/wptKeyserver.cpp:647
+#: Src/wptKeyserver.cpp:648
 msgid "Proxy Error"
 msgstr "Proxyfehler"
 
-#: Src/wptKeyserver.cpp:672
+#: Src/wptKeyserver.cpp:673
 msgid ""
 "All entries of this file must have a valid prefix.\n"
 "Currently HKP/HTTP, LDAP and FINGER are supported.\n"
@@ -3627,25 +3624,25 @@
 "Alle Eintraäge in dieser Datei müssen über einen gültigen Präfix verfügen.\n"
 "Aktuell werden HKP/HTTP, LDAP and FINGER unterstützt.\n"
 
-#: Src/wptKeyserver.cpp:674
+#: Src/wptKeyserver.cpp:675
 msgid "Keyserver Error"
 msgstr "Schlüsselserver-Fehler"
 
 # c:\oss\winpt-gpgme\src\wptKeyserver.cpp:548
-#: Src/wptKeyserver.cpp:693
+#: Src/wptKeyserver.cpp:694
 msgid "The keyserver limit is exceeded"
 msgstr "Das Limit der Keyserver wurde erreicht"
 
-#: Src/wptKeyserver.cpp:694
+#: Src/wptKeyserver.cpp:695
 msgid "Keyserver Warning"
 msgstr "Keyserver Warnung"
 
-#: Src/wptKeyserverDlg.cpp:101
+#: Src/wptKeyserverDlg.cpp:103
 #, c-format
 msgid "Key '%s' successfully sent"
 msgstr "Schlüssel '%s' erfolgreich versendet"
 
-#: Src/wptKeyserverDlg.cpp:135
+#: Src/wptKeyserverDlg.cpp:137
 msgid ""
 "WARNING: multiple keys matched request.\n"
 "\n"
@@ -3653,19 +3650,19 @@
 "WARNUNG: Mehrere Schlüssel wurden gefunden.\n"
 "\n"
 
-#: Src/wptKeyserverDlg.cpp:140
+#: Src/wptKeyserverDlg.cpp:142
 msgid "Key(s) successfully received but nothing was changed."
 msgstr "Schlüssel erfolgreich empfangen, aber keine Änderungen durchgeführt."
 
-#: Src/wptKeyserverDlg.cpp:142
+#: Src/wptKeyserverDlg.cpp:144
 msgid "Key(s) sucessfully received and imported."
 msgstr "Schlüssel erfolgreich empfangen und importiert."
 
-#: Src/wptKeyserverDlg.cpp:158
+#: Src/wptKeyserverDlg.cpp:160
 msgid "Imported Keys"
 msgstr "Importierte Schlüssel"
 
-#: Src/wptKeyserverDlg.cpp:184
+#: Src/wptKeyserverDlg.cpp:186
 msgid ""
 "LDAP key import failed.\n"
 "Please make sure you have an online connection and gpgkeys_ldap.exe is "
@@ -3675,134 +3672,134 @@
 "Bitte stellen Sie sicher, dass Sie eine Internetverbindung hergestellt haben "
 "und gpgkeys_ldap.exe installiert ist."
 
-#: Src/wptKeyserverDlg.cpp:196
+#: Src/wptKeyserverDlg.cpp:198
 #, c-format
 msgid "Finger key import failed: %s\n"
 msgstr "Finger Schlüsselimport fehlgeschlagen: %s\n"
 
-#: Src/wptKeyserverDlg.cpp:210
+#: Src/wptKeyserverDlg.cpp:212
 msgid "This is not a valid OpenPGP key."
 msgstr "Dies ist kein gültiger OpenPGP-Schlüssel."
 
-#: Src/wptKeyserverDlg.cpp:352
+#: Src/wptKeyserverDlg.cpp:360
 msgid "Please select one of the servers."
 msgstr "Bitte einen der Server auswählen."
 
-#: Src/wptKeyserverDlg.cpp:357
+#: Src/wptKeyserverDlg.cpp:365
 msgid "Only HTTP keyserver can be used."
 msgstr "Nur HTTP-Schlüsselserver können benutzt werden."
 
-#: Src/wptKeyserverDlg.cpp:374
+#: Src/wptKeyserverDlg.cpp:382
 msgid "DNS Name"
 msgstr "DNS Name"
 
-#: Src/wptKeyserverDlg.cpp:375
+#: Src/wptKeyserverDlg.cpp:383
 msgid "Port"
 msgstr "Port"
 
-#: Src/wptKeyserverDlg.cpp:459
+#: Src/wptKeyserverDlg.cpp:467
 msgid "No space for new keyserver entry"
 msgstr "Kein Platz für neuen Keserver-Eintrag"
 
-#: Src/wptKeyserverDlg.cpp:480
+#: Src/wptKeyserverDlg.cpp:488
 msgid "HKP Keyserver"
 msgstr "HKP-Schlüsselserver"
 
-#: Src/wptKeyserverDlg.cpp:481
+#: Src/wptKeyserverDlg.cpp:489
 msgid "LDAP Keyserver"
 msgstr "LDAP-Schlüsselserver"
 
-#: Src/wptKeyserverDlg.cpp:482
+#: Src/wptKeyserverDlg.cpp:490
 msgid "Finger Keyserver"
 msgstr "Finger-Keyserver"
 
-#: Src/wptKeyserverDlg.cpp:507 Src/wptKeyserverDlg.cpp:724
-#: Src/wptKeyserverDlg.cpp:744
+#: Src/wptKeyserverDlg.cpp:515 Src/wptKeyserverDlg.cpp:732
+#: Src/wptKeyserverDlg.cpp:752
 msgid "Edit Keyserver"
 msgstr "Editiere Keyserver"
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:707
-#: Src/wptKeyserverDlg.cpp:508 Src/wptKeyserverDlg.cpp:600
+#: Src/wptKeyserverDlg.cpp:516 Src/wptKeyserverDlg.cpp:608
 msgid "&Add"
 msgstr "&Hinzufügen"
 
-#: Src/wptKeyserverDlg.cpp:510
+#: Src/wptKeyserverDlg.cpp:518
 msgid "Type:"
 msgstr "Typ:"
 
-#: Src/wptKeyserverDlg.cpp:511
+#: Src/wptKeyserverDlg.cpp:519
 msgid "Port:"
 msgstr "Port:"
 
-#: Src/wptKeyserverDlg.cpp:512
+#: Src/wptKeyserverDlg.cpp:520
 msgid "Host name:"
 msgstr "Rechnername:"
 
-#: Src/wptKeyserverDlg.cpp:520
+#: Src/wptKeyserverDlg.cpp:528
 msgid "Please enter a host name"
 msgstr "Bitte einen Rechnernamen eingeben."
 
-#: Src/wptKeyserverDlg.cpp:525
+#: Src/wptKeyserverDlg.cpp:533
 msgid "Invalid port, valid numbers are < 65535"
 msgstr "Ungültiger Port, gültige Nummern sind < 65535"
 
-#: Src/wptKeyserverDlg.cpp:569 Src/wptKeyserverSearchDlg.cpp:65
+#: Src/wptKeyserverDlg.cpp:577 Src/wptKeyserverSearchDlg.cpp:65
 msgid "&Receive"
 msgstr "&Empfangen"
 
-#: Src/wptKeyserverDlg.cpp:571
+#: Src/wptKeyserverDlg.cpp:579
 msgid "Send key (default is receiving)"
 msgstr "Schlüssel senden (sonst empfangen)"
 
-#: Src/wptKeyserverDlg.cpp:573
+#: Src/wptKeyserverDlg.cpp:581
 msgid "Please enter the key ID or email address you search for"
 msgstr "Bitte die key ID oder E-Mail-Adresse angeben die gesucht wird"
 
-#: Src/wptKeyserverDlg.cpp:574
+#: Src/wptKeyserverDlg.cpp:582
 msgid "&Search"
 msgstr "&Suchen"
 
-#: Src/wptKeyserverDlg.cpp:575
+#: Src/wptKeyserverDlg.cpp:583
 msgid "C&hange proxy"
 msgstr "Proxy Ä&ndern"
 
-#: Src/wptKeyserverDlg.cpp:576
+#: Src/wptKeyserverDlg.cpp:584
 msgid "Set &default"
 msgstr "Als &Standard"
 
-#: Src/wptKeyserverDlg.cpp:601
+#: Src/wptKeyserverDlg.cpp:609
 msgid "&Remove"
 msgstr "&Entfernen"
 
-#: Src/wptKeyserverDlg.cpp:602
+#: Src/wptKeyserverDlg.cpp:610
 msgid "&Edit"
 msgstr "&Edtieren"
 
-#: Src/wptKeyserverDlg.cpp:636 Src/wptProxySettingsDlg.cpp:69
-#: Src/wptProxySettingsDlg.cpp:79 Src/wptProxySettingsDlg.cpp:84
-#: Src/wptProxySettingsDlg.cpp:91 Src/wptProxySettingsDlg.cpp:96
-#: Src/wptProxySettingsDlg.cpp:101 Src/wptProxySettingsDlg.cpp:157
-#: Src/wptProxySettingsDlg.cpp:197
+#: Src/wptKeyserverDlg.cpp:644 Src/wptProxySettingsDlg.cpp:73
+#: Src/wptProxySettingsDlg.cpp:83 Src/wptProxySettingsDlg.cpp:88
+#: Src/wptProxySettingsDlg.cpp:95 Src/wptProxySettingsDlg.cpp:100
+#: Src/wptProxySettingsDlg.cpp:105 Src/wptProxySettingsDlg.cpp:164
+#: Src/wptProxySettingsDlg.cpp:199
 msgid "Proxy Settings"
 msgstr "Proxy-Einstellungen"
 
-#: Src/wptKeyserverDlg.cpp:644 Src/wptKeyserverDlg.cpp:685
+#: Src/wptKeyserverDlg.cpp:652 Src/wptKeyserverDlg.cpp:693
 msgid "Please enter the search pattern."
 msgstr "Bitte Suchmuster eingeben."
 
-#: Src/wptKeyserverDlg.cpp:669
+#: Src/wptKeyserverDlg.cpp:677
 msgid "Please select one of the keyservers."
 msgstr "Bitte einen Keyserver auswählen."
 
-#: Src/wptKeyserverDlg.cpp:690
+#: Src/wptKeyserverDlg.cpp:698
 msgid "Only keyids are allowed."
 msgstr "Nur Schlüssel-IDs zulässig"
 
-#: Src/wptKeyserverDlg.cpp:696
+#: Src/wptKeyserverDlg.cpp:704
 msgid "Only enter the name of the user."
 msgstr "Nur den Namen des Benutzers eingeben."
 
-#: Src/wptKeyserverDlg.cpp:702
+#: Src/wptKeyserverDlg.cpp:710
 msgid "Only email addresses or keyids are allowed."
 msgstr "Es sind nur E-Mail-Adressen oder Schlüssel-IDs zulässig"
 
@@ -3831,7 +3828,7 @@
 "\n"
 "Wollen Sie wirklich fortfahren?"
 
-#: Src/wptKeysigDlg.cpp:94
+#: Src/wptKeysigDlg.cpp:95
 #, c-format
 msgid ""
 "Are you really sure you want to delete this %s from\n"
@@ -3842,105 +3839,105 @@
 "\n"
 "  \"%s\""
 
-#: Src/wptKeysigDlg.cpp:95
+#: Src/wptKeysigDlg.cpp:96
 msgid "self signature"
 msgstr "Selbstsignatur"
 
-#: Src/wptKeysigDlg.cpp:95
+#: Src/wptKeysigDlg.cpp:96
 msgid "signature"
 msgstr "Signatur"
 
-#: Src/wptKeysigDlg.cpp:130
+#: Src/wptKeysigDlg.cpp:131
 #, c-format
 msgid "%s %s signature"
 msgstr "%s %s Signatur"
 
-#: Src/wptKeysigDlg.cpp:140 Src/wptKeysigDlg.cpp:216
-msgid "Signature Properties"
-msgstr "Signatureigenschaften"
-
-#: Src/wptKeysigDlg.cpp:141 Src/wptKeysigDlg.cpp:166 Src/wptKeysigDlg.cpp:212
+#: Src/wptKeysigDlg.cpp:139 Src/wptKeysigDlg.cpp:163 Src/wptKeysigDlg.cpp:205
 msgid "Exportable"
 msgstr "Exportierbar"
 
 # c:\oss\winpt-gpgme\src\wptKeysigDlg.cpp:183
-#: Src/wptKeysigDlg.cpp:142 Src/wptKeysigDlg.cpp:213
+#: Src/wptKeysigDlg.cpp:140 Src/wptKeysigDlg.cpp:206
 msgid "Non-revocably"
 msgstr "Nicht widerrufbar"
 
 # c:\oss\winpt-gpgme\src\wptSigList.cpp:49
-#: Src/wptKeysigDlg.cpp:145 Src/wptSigList.cpp:55
+#: Src/wptKeysigDlg.cpp:143 Src/wptSigList.cpp:55
 msgid "Class"
 msgstr "Klasse"
 
-#: Src/wptKeysigDlg.cpp:146
+#: Src/wptKeysigDlg.cpp:144
 msgid "Expire date"
 msgstr "Ablaufdatum"
 
-#: Src/wptKeysigDlg.cpp:147
+#: Src/wptKeysigDlg.cpp:145
 msgid "Issuer key"
 msgstr "Schlüssel des Ausstellers"
 
-#: Src/wptKeysigDlg.cpp:148
+#: Src/wptKeysigDlg.cpp:146
 msgid "Issuer key ID"
 msgstr "Key ID des Ausstellers"
 
-#: Src/wptKeysigDlg.cpp:149
+#: Src/wptKeysigDlg.cpp:147
 msgid "Policy URL"
 msgstr "Policy URL"
 
-#: Src/wptKeysigDlg.cpp:166
+#: Src/wptKeysigDlg.cpp:148 Src/wptKeysigDlg.cpp:209
+msgid "Signature Properties"
+msgstr "Signatureigenschaften"
+
+#: Src/wptKeysigDlg.cpp:163
 msgid "Non-exportable"
 msgstr "Nicht-exportierbar"
 
-#: Src/wptKeysigDlg.cpp:178 Src/wptSigList.cpp:153
+#: Src/wptKeysigDlg.cpp:176 Src/wptSigList.cpp:153
 msgid "  user ID not found"
 msgstr "  Benutzerkennung nicht gefunden"
 
-#: Src/wptKeysigDlg.cpp:313
+#: Src/wptKeysigDlg.cpp:308
 msgid "Really receive all missing keys?"
 msgstr "Alle fehlenden Schlüssel empfangen?"
 
-#: Src/wptKeysigDlg.cpp:347 Src/wptSigTreeDlg.cpp:112
+#: Src/wptKeysigDlg.cpp:342 Src/wptSigTreeDlg.cpp:115
 msgid "Signature &Properties"
 msgstr "Signatur-&Eigenschaften"
 
-#: Src/wptKeysigDlg.cpp:348
+#: Src/wptKeysigDlg.cpp:343
 msgid "Signing &Key Properties"
 msgstr "Signing Key-Eigenschaften"
 
 # c:\oss\winpt-gpgme\src\wptKeysigDlg.cpp:294
-#: Src/wptKeysigDlg.cpp:386
+#: Src/wptKeysigDlg.cpp:380
 msgid "Key not found in keyring, do you want to fetch it from the keyserver?"
 msgstr ""
 "Schlüssel nicht im Schlüsselbund gefunden, wollen Sie den Schlüssel "
 "runterladen?"
 
 # c:\oss\winpt-gpgme\src\wptKeysigDlg.cpp:301
-#: Src/wptKeysigDlg.cpp:397
+#: Src/wptKeysigDlg.cpp:391
 msgid "Key not found in keyring."
 msgstr "Schlüssel im Keyring nicht gefunden."
 
-#: Src/wptKeysigDlg.cpp:422
+#: Src/wptKeysigDlg.cpp:416
 #, c-format
 msgid "Signature List for \"%s\""
 msgstr "Signaturliste für \"%s\""
 
-#: Src/wptKeysigDlg.cpp:424
+#: Src/wptKeysigDlg.cpp:418
 msgid "&Receive Key"
 msgstr "&Schlüssel empfangen"
 
-#: Src/wptKeysignDlg.cpp:72
+#: Src/wptKeysignDlg.cpp:73
 #, c-format
 msgid "%d-bit %s key, ID 0x%s"
 msgstr "%d-bit %s Schlüssel, ID 0x%s"
 
-#: Src/wptKeysignDlg.cpp:167 Src/wptKeysignDlg.cpp:337
+#: Src/wptKeysignDlg.cpp:170 Src/wptKeysignDlg.cpp:341
 msgid "Choose Signature Class"
 msgstr "Signaturklasse auswählen"
 
 # c:\oss\winpt-gpgme\src\wptKeysignDlg.cpp:156
-#: Src/wptKeysignDlg.cpp:168
+#: Src/wptKeysignDlg.cpp:172
 msgid ""
 "How carefully have you verified the key you are about to sign actually "
 "belongs to the person? If you don't know what to anwser, use \"0\"."
@@ -3949,30 +3946,30 @@
 "gehört? Wenn Sie nicht antworten wollen, bitte \"0\" benutzen."
 
 # c:\oss\winpt-gpgme\src\wptKeysignDlg.cpp:157
-#: Src/wptKeysignDlg.cpp:169
+#: Src/wptKeysignDlg.cpp:174
 msgid "(0) I will not answer (default)"
 msgstr "(0) Ich möchte nicht darauf antworten"
 
 # c:\oss\winpt-gpgme\src\wptKeysignDlg.cpp:158
-#: Src/wptKeysignDlg.cpp:170
+#: Src/wptKeysignDlg.cpp:176
 msgid "(1) I have not checked at all."
 msgstr "(1) Ich habe keine Überprüfung gemacht."
 
 # c:\oss\winpt-gpgme\src\wptKeysignDlg.cpp:159
-#: Src/wptKeysignDlg.cpp:171
+#: Src/wptKeysignDlg.cpp:178
 msgid "(2) I have done causal checking."
 msgstr "(2) Ich habe einige Überprüfungen gemacht."
 
 # c:\oss\winpt-gpgme\src\wptKeysignDlg.cpp:160
-#: Src/wptKeysignDlg.cpp:172
+#: Src/wptKeysignDlg.cpp:180
 msgid "(3) I have done very careful checkings."
 msgstr "(3) Ich habe gründliche Überprüfungen gemacht."
 
-#: Src/wptKeysignDlg.cpp:211
+#: Src/wptKeysignDlg.cpp:219
 msgid "never"
 msgstr "niemals"
 
-#: Src/wptKeysignDlg.cpp:262
+#: Src/wptKeysignDlg.cpp:270
 #, c-format
 msgid ""
 "pub %d/%s  created: %s    expires: %s\n"
@@ -3993,47 +3990,47 @@
 "\n"
 "Wollen Sie diesen Schlüssel wirklich mit Ihrem eigenen Schlüssel signieren?\n"
 
-#: Src/wptKeysignDlg.cpp:274
+#: Src/wptKeysignDlg.cpp:282
 msgid "No valid secret key found."
 msgstr "Keine gültigen geheimen Schlüssel gefunden."
 
-#: Src/wptKeysignDlg.cpp:280
+#: Src/wptKeysignDlg.cpp:288
 msgid "Sign local only (non exportable signature)"
 msgstr "Nur lokal Signieren (nicht exportierbare Signatur)"
 
-#: Src/wptKeysignDlg.cpp:281
+#: Src/wptKeysignDlg.cpp:289
 msgid "Signature expires on"
 msgstr "Signatur läuft ab am"
 
 # c:\oss\winpt-gpgme\src\wptKeysignDlg.cpp:250
-#: Src/wptKeysignDlg.cpp:282
+#: Src/wptKeysignDlg.cpp:290
 msgid "Sign non-revocably"
 msgstr "Nicht-widerrufbar signieren"
 
-#: Src/wptKeysignDlg.cpp:283
+#: Src/wptKeysignDlg.cpp:291
 msgid "&Ask for certification level"
 msgstr "Zertifizierungslevel erfragen"
 
-#: Src/wptKeysignDlg.cpp:286
+#: Src/wptKeysignDlg.cpp:294
 msgid "&Show photo"
 msgstr "&Photo anzeigen"
 
 # c:\oss\winpt-gpgme\src\wptKeygenDlg.cpp:391
-#: Src/wptKeysignDlg.cpp:287 Src/wptPassphraseCB.cpp:96
-#: Src/wptPassphraseCB.cpp:102 Src/wptPassphraseDlg.cpp:68
-#: Src/wptPINDlg.cpp:54
+#: Src/wptKeysignDlg.cpp:295 Src/wptPassphraseCB.cpp:96
+#: Src/wptPassphraseCB.cpp:102 Src/wptPassphraseDlg.cpp:101
+#: Src/wptPINDlg.cpp:53
 msgid "&Hide Typing"
 msgstr "&Maskiere Eingabe"
 
-#: Src/wptKeysignDlg.cpp:353
+#: Src/wptKeysignDlg.cpp:357
 msgid "You cannot select today as the expiration date."
 msgstr "Das Ablaufdatum kann nicht auf den heutigen Tag gesetzt werden."
 
-#: Src/wptKeysignDlg.cpp:369
+#: Src/wptKeysignDlg.cpp:374
 msgid "Could not get Key ID from key."
 msgstr "Schlüssel-ID konnte nicht aus dem Schlüssel gelesen werden."
 
-#: Src/wptKeysignDlg.cpp:390
+#: Src/wptKeysignDlg.cpp:395
 msgid "This key is already signed by your key"
 msgstr "Der Schlüssel ist bereits mit Ihrem Schlüssel signiert"
 
@@ -4058,50 +4055,50 @@
 msgid "Could not access secret keyring."
 msgstr "Auf denn geheimen Schlüsselbund konnte nicht zugegriffen werden."
 
-#: Src/wptMainProc.cpp:254 Src/wptTextInputDlg.cpp:78
+#: Src/wptMainProc.cpp:254 Src/wptTextInputDlg.cpp:79
 msgid "Text Input"
 msgstr "Texteingabe"
 
-#: Src/wptMainProc.cpp:273
+#: Src/wptMainProc.cpp:275
 msgid "Unknown OpenPGP type."
 msgstr "Unbekannter OpenPGP-Typ."
 
-#: Src/wptMainProc.cpp:350
+#: Src/wptMainProc.cpp:352
 msgid "Could not set current window mode hooks."
 msgstr "Konnte \"Current Window\" Hooks nicht setzen."
 
-#: Src/wptMainProc.cpp:409
+#: Src/wptMainProc.cpp:411
 msgid "Edit Clipboard"
 msgstr "Zwischenablage bearbeiten"
 
-#: Src/wptMainProc.cpp:410
+#: Src/wptMainProc.cpp:412
 msgid "About..."
 msgstr "Über..."
 
-#: Src/wptMainProc.cpp:416 Src/wptMainProc.cpp:420
+#: Src/wptMainProc.cpp:418 Src/wptMainProc.cpp:422
 msgid "Decrypt/Verify"
 msgstr "Entschlüsseln/Überprüfen"
 
 # c:\oss\winpt-gpgme\src\wptMainProc.cpp:414
-#: Src/wptMainProc.cpp:430
+#: Src/wptMainProc.cpp:432
 msgid "Current Window"
 msgstr "Aktuelles Fenster"
 
-#: Src/wptMainProc.cpp:486
+#: Src/wptMainProc.cpp:488
 msgid "Remove all passphrases from cache?"
 msgstr "Alle Passwörter aus Zwischenspeicher entfernen?"
 
-#: Src/wptMainProc.cpp:487 Src/wptProgressDlg.cpp:122 Src/wptRegistry.cpp:198
+#: Src/wptMainProc.cpp:489 Src/wptProgressDlg.cpp:122 Src/wptRegistry.cpp:198
 msgid "WinPT"
 msgstr "WinPT"
 
-#: Src/wptMainProc.cpp:497
+#: Src/wptMainProc.cpp:499
 msgid "Could not access public keyring, exit WinPT?"
 msgstr ""
 "Auf den öffentlichen Schlüsselbund kann nicht zugegriffen werden.\n"
 "WinPT beenden?"
 
-#: Src/wptMainProc.cpp:530
+#: Src/wptMainProc.cpp:532
 #, c-format
 msgid ""
 "Make sure that the window contains text.\n"
@@ -4110,7 +4107,7 @@
 "Stellen Sie sicher, dass das Fenster Text enthält.\n"
 "%s."
 
-#: Src/wptMainProc.cpp:584 Src/wptPreferencesDlg.cpp:139
+#: Src/wptMainProc.cpp:586 Src/wptPreferencesDlg.cpp:139
 msgid "WinPT Preferences"
 msgstr "WinPT Einstellungen"
 
@@ -4124,28 +4121,28 @@
 msgid "Could not sent mail."
 msgstr "Konnte E-Mail nicht versenden."
 
-#: Src/wptMDSumDlg.cpp:103
+#: Src/wptMDSumDlg.cpp:111
 msgid "Digest"
 msgstr "Prüfsumme"
 
-#: Src/wptMDSumDlg.cpp:121
+#: Src/wptMDSumDlg.cpp:129
 msgid "&Save..."
 msgstr "&Speichern..."
 
-#: Src/wptMDSumDlg.cpp:123
+#: Src/wptMDSumDlg.cpp:131
 msgid "Save to clipboard"
 msgstr "In Ablage speichern"
 
-#: Src/wptMDSumDlg.cpp:124
+#: Src/wptMDSumDlg.cpp:132
 msgid "Print Message Digest"
 msgstr "Ausgabe Prüfsummen"
 
 # c:\oss\winpt-gpgme\src\wptMDSumDlg.cpp:114
-#: Src/wptMDSumDlg.cpp:177
-msgid "Select file to save checksums"
+#: Src/wptMDSumDlg.cpp:180
+msgid "Select File to Save Checksums"
 msgstr "Datei auswählen zum Speichern der Prüfsummen"
 
-#: Src/wptMDSumDlg.cpp:182
+#: Src/wptMDSumDlg.cpp:185
 #, c-format
 msgid "Checksums successfully saved in '%s'"
 msgstr "Prüfsummen erfolgreich in '%s' gespeichert."
@@ -4160,19 +4157,19 @@
 "speichern oder widerherzustellen. Dies könnte nützlich sein, da die Werte "
 "nicht im Schlüsselbund gespeichert werden."
 
-#: Src/wptOwnertrustDlg.cpp:116
-msgid "Select file name for output"
-msgstr "Namen der Ausgabedatei wählen"
+#: Src/wptOwnertrustDlg.cpp:111
+msgid "Select File Name for Output"
+msgstr "Namen der Datei für Ausgabe wählen"
 
-#: Src/wptOwnertrustDlg.cpp:124
+#: Src/wptOwnertrustDlg.cpp:119
 msgid "Ownertrust successfully exported."
 msgstr "Besitzervertrauen erfolgreich exportiert."
 
-#: Src/wptOwnertrustDlg.cpp:128
-msgid "Select file name for input"
+#: Src/wptOwnertrustDlg.cpp:123
+msgid "Select File Name for Input"
 msgstr "Wählen Sie einen Namen für die Eingabedatei"
 
-#: Src/wptOwnertrustDlg.cpp:136
+#: Src/wptOwnertrustDlg.cpp:131
 msgid "Ownertrust succefully imported."
 msgstr "Besitzervertrauen erfolgreich importiert."
 
@@ -4235,23 +4232,23 @@
 "Schlüssel\n"
 "Karte: %s"
 
-#: Src/wptPassphraseDlg.cpp:60 Src/wptPassphraseDlg.cpp:99
+#: Src/wptPassphraseDlg.cpp:89 Src/wptPassphraseDlg.cpp:135
 msgid "Passphrase Dialog"
 msgstr "Passwort Dialog"
 
-#: Src/wptPassphraseDlg.cpp:65
+#: Src/wptPassphraseDlg.cpp:94
 msgid "Repeat Passphrase"
 msgstr "Passwort erneut eingeben"
 
-#: Src/wptPassphraseDlg.cpp:67
+#: Src/wptPassphraseDlg.cpp:96
 msgid "Enter Passphrase"
 msgstr "Passwort eingeben"
 
-#: Src/wptPassphraseDlg.cpp:99
+#: Src/wptPassphraseDlg.cpp:134
 msgid "Please enter a passphrase."
 msgstr "Bitte ein Passwort eingeben."
 
-#: Src/wptPassphraseDlg.cpp:106
+#: Src/wptPassphraseDlg.cpp:142
 msgid ""
 "Your passphrase should be at least 8 characters long\n"
 "and should contain non-alphabetic characters.\n"
@@ -4397,57 +4394,57 @@
 msgid "Could not create progress thread."
 msgstr "Konnte Fortschrittsthread nicht erstellen."
 
-#: Src/wptProxySettingsDlg.cpp:69
+#: Src/wptProxySettingsDlg.cpp:73
 msgid "Invalid host/IP address."
 msgstr "Ungültige IP-Adresse."
 
-#: Src/wptProxySettingsDlg.cpp:78
+#: Src/wptProxySettingsDlg.cpp:82
 msgid "Please enter the proxy hostname."
 msgstr "Bitte geben Sie den Proxy-Hostname ein."
 
-#: Src/wptProxySettingsDlg.cpp:84
+#: Src/wptProxySettingsDlg.cpp:88
 msgid "Invalid port number."
 msgstr "Ungültige Portnummer."
 
-#: Src/wptProxySettingsDlg.cpp:90
+#: Src/wptProxySettingsDlg.cpp:94
 msgid "Please select a value from 0-65535 for the port"
 msgstr "Bitte geben Sie für den Port einen Wert von 0-65535 ein"
 
-#: Src/wptProxySettingsDlg.cpp:95
+#: Src/wptProxySettingsDlg.cpp:99
 msgid "When you want to use authentication, please fill out both fields."
 msgstr ""
 "Wenn Sie Authentifizierung nutzen wollen, füllen Sie bitte beide Felder aus."
 
-#: Src/wptProxySettingsDlg.cpp:100
+#: Src/wptProxySettingsDlg.cpp:104
 msgid "Please enter a host name and a port."
 msgstr "Bitte geben Sie den Hostname und Port ein."
 
-#: Src/wptProxySettingsDlg.cpp:151
+#: Src/wptProxySettingsDlg.cpp:158
 msgid "Proxy host name or IP address"
 msgstr "Proxy Rechnername oder IP Adresse"
 
-#: Src/wptProxySettingsDlg.cpp:152
+#: Src/wptProxySettingsDlg.cpp:159
 msgid "Server requires &authentication"
 msgstr "Server benötigt &Authentifikation"
 
-#: Src/wptProxySettingsDlg.cpp:153
+#: Src/wptProxySettingsDlg.cpp:160
 msgid "User name"
 msgstr "Benutzername"
 
-#: Src/wptProxySettingsDlg.cpp:154
+#: Src/wptProxySettingsDlg.cpp:161
 msgid "Password"
 msgstr "Passwort"
 
-#: Src/wptProxySettingsDlg.cpp:155
+#: Src/wptProxySettingsDlg.cpp:162
 msgid "Proxy type"
 msgstr "Proxy-Type"
 
-#: Src/wptProxySettingsDlg.cpp:156
+#: Src/wptProxySettingsDlg.cpp:163
 msgid "Authentication"
 msgstr "Authentifizierung"
 
 # c:\oss\winpt-gpgme\src\wptProxySettingsDlg.cpp:156
-#: Src/wptProxySettingsDlg.cpp:196
+#: Src/wptProxySettingsDlg.cpp:198
 msgid "Please fill out all required fields for authentication."
 msgstr "Bitte füllen Sie alle benötigen Felder für die Authentifizierung aus."
 
@@ -4499,12 +4496,12 @@
 msgid "Expiration"
 msgstr "Ablauf"
 
-#: Src/wptSigTreeDlg.cpp:160
+#: Src/wptSigTreeDlg.cpp:164
 #, c-format
 msgid "Signature Tree for \"%s\" (0x%s)"
 msgstr "Signaturliste für \"%s\" (0x%s)"
 
-#: Src/wptSigTreeDlg.cpp:162
+#: Src/wptSigTreeDlg.cpp:166
 msgid "Edit..."
 msgstr "Edit..."
 
@@ -4516,7 +4513,7 @@
 msgid "Data is too large for copying."
 msgstr "Die Daten sind zu groß zum Kopieren."
 
-#: Src/wptTextInputDlg.cpp:81
+#: Src/wptTextInputDlg.cpp:83
 msgid "Enter the text that was signed"
 msgstr "Geben Sie den signierten Text ein"
 
@@ -4544,6 +4541,15 @@
 msgid "Signed"
 msgstr "Signiert"
 
+#~ msgid "No subkey(s) found."
+#~ msgstr "Kein(e) Unterschlüssel gefunden."
+
+#~ msgid "No user ID(s) found."
+#~ msgstr "Keine Benutzerkennung(en) gefunden."
+
+#~ msgid "Primary subkey can not be deleted!"
+#~ msgstr "Primärer Unterschlüssel kann nicht gelöscht werden!"
+
 #~ msgid "WinPT Verify"
 #~ msgstr "WinPT Verifikation"
 

Modified: trunk/Po/jp.po
===================================================================
--- trunk/Po/jp.po	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/Po/jp.po	2006-06-06 13:37:59 UTC (rev 225)
@@ -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-06-01 08:33+0200\n"
+"POT-Creation-Date: 2006-06-06 15:30+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"
@@ -35,7 +35,7 @@
 #: Src/WinPT.cpp:720 Src/WinPT.cpp:750 Src/WinPT.cpp:768
 #: Src/wptCommonDlg.cpp:220 Src/wptErrors.cpp:141 Src/wptGPG.cpp:921
 #: Src/wptGPG.cpp:933 Src/wptGPG.cpp:943 Src/wptGPG.cpp:954
-#: Src/wptMainProc.cpp:351 Src/wptMainProc.cpp:529
+#: Src/wptMainProc.cpp:353 Src/wptMainProc.cpp:531
 msgid "WinPT Error"
 msgstr "WinPT ƒGƒ‰["
 
@@ -46,7 +46,7 @@
 
 # c:\oss\winpt\src\wptKeyPropsDlg.cpp:173
 # c:\oss\winpt\src\wptKeyPropsDlg.cpp:180
-#: Src/WinPT.cpp:221 Src/wptKeyPropsDlg.cpp:357 Src/wptKeyPropsDlg.cpp:364
+#: Src/WinPT.cpp:221 Src/wptKeyPropsDlg.cpp:359 Src/wptKeyPropsDlg.cpp:366
 msgid "WinPT Warning"
 msgstr "WinPT Œx"
 
@@ -86,15 +86,15 @@
 # c:\oss\winpt\src\wptKeyserverSearchDlg.cpp:72
 # c:\oss\winpt\src\wptKeyserverSearchDlg.cpp:115
 #: Src/WinPT.cpp:305 Src/WinPT.cpp:322 Src/WinPT.cpp:333
-#: Src/wptKeyManagerDlg.cpp:959 Src/wptKeyserver.cpp:600
-#: Src/wptKeyserverDlg.cpp:68 Src/wptKeyserverDlg.cpp:70
-#: Src/wptKeyserverDlg.cpp:187 Src/wptKeyserverDlg.cpp:195
-#: Src/wptKeyserverDlg.cpp:211 Src/wptKeyserverDlg.cpp:352
-#: Src/wptKeyserverDlg.cpp:358 Src/wptKeyserverDlg.cpp:460
-#: Src/wptKeyserverDlg.cpp:520 Src/wptKeyserverDlg.cpp:525
-#: Src/wptKeyserverDlg.cpp:645 Src/wptKeyserverDlg.cpp:670
-#: Src/wptKeyserverDlg.cpp:686 Src/wptKeyserverDlg.cpp:691
-#: Src/wptKeyserverDlg.cpp:697 Src/wptKeyserverDlg.cpp:703
+#: Src/wptKeyManagerDlg.cpp:959 Src/wptKeyserver.cpp:601
+#: Src/wptKeyserverDlg.cpp:70 Src/wptKeyserverDlg.cpp:72
+#: Src/wptKeyserverDlg.cpp:189 Src/wptKeyserverDlg.cpp:197
+#: Src/wptKeyserverDlg.cpp:213 Src/wptKeyserverDlg.cpp:360
+#: Src/wptKeyserverDlg.cpp:366 Src/wptKeyserverDlg.cpp:468
+#: Src/wptKeyserverDlg.cpp:528 Src/wptKeyserverDlg.cpp:533
+#: Src/wptKeyserverDlg.cpp:653 Src/wptKeyserverDlg.cpp:678
+#: Src/wptKeyserverDlg.cpp:694 Src/wptKeyserverDlg.cpp:699
+#: Src/wptKeyserverDlg.cpp:705 Src/wptKeyserverDlg.cpp:711
 msgid "Keyserver"
 msgstr "ƒL[ƒT[ƒo["
 
@@ -223,7 +223,7 @@
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:1152
 # c:\oss\winpt\src\wptMainProc.cpp:560
 #: Src/wptAboutDlgs.cpp:96 Src/wptKeyManagerDlg.cpp:1790
-#: Src/wptMainProc.cpp:578
+#: Src/wptMainProc.cpp:580
 msgid "About WinPT"
 msgstr "WinPT‚ɂ‚¢‚Ä"
 
@@ -274,14 +274,14 @@
 msgid "&About GPG..."
 msgstr "GPG‚ɂ‚¢‚Ä..."
 
-#: Src/wptAboutDlgs.cpp:115 Src/wptKeyEditDlgs.cpp:2166
+#: Src/wptAboutDlgs.cpp:115 Src/wptKeyEditDlgs.cpp:2129
 #: Src/wptKeyManagerDlg.cpp:965
 msgid "&Help"
 msgstr "ƒwƒ‹ƒv(&H)"
 
 # c:\oss\winpt\src\WinPT.cpp:340 c:\oss\winpt\src\wptCardDlg.cpp:98
 # c:\oss\winpt\src\wptCardDlg.cpp:125 c:\oss\winpt\src\wptMainProc.cpp:389
-#: Src/wptCardDlg.cpp:141 Src/wptMainProc.cpp:406
+#: Src/wptCardDlg.cpp:141 Src/wptMainProc.cpp:408
 msgid "Card Manager"
 msgstr "ƒJ[ƒhƒ}ƒl[ƒWƒƒ["
 
@@ -318,7 +318,7 @@
 #: Src/wptCardDlg.cpp:696 Src/wptCardDlg.cpp:699 Src/wptCardDlg.cpp:724
 #: Src/wptCardDlg.cpp:726 Src/wptCardDlg.cpp:731 Src/wptCardDlg.cpp:736
 #: Src/wptCardDlg.cpp:800 Src/wptCardDlg.cpp:815 Src/wptCardDlg.cpp:818
-#: Src/wptMainProc.cpp:291
+#: Src/wptMainProc.cpp:293
 msgid "Card Edit"
 msgstr "ƒJ[ƒh•ÒW"
 
@@ -359,7 +359,7 @@
 msgstr "'User PIN'‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptCardDlg.cpp:366 c:\oss\winpt\src\wptPINDlg.cpp:47
-#: Src/wptCardDlg.cpp:421 Src/wptPINDlg.cpp:53
+#: Src/wptCardDlg.cpp:421 Src/wptPINDlg.cpp:51
 msgid "Please enter the PIN"
 msgstr "ˆÃØ”ԍ†‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B"
 
@@ -385,12 +385,12 @@
 "‚Ü‚¾‘±‚¯‚Ü‚·‚©H"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:395
-#: Src/wptCardDlg.cpp:580 Src/wptKeyEditDlgs.cpp:516
+#: Src/wptCardDlg.cpp:580 Src/wptKeyEditDlgs.cpp:502
 msgid "&Name"
 msgstr "–¼‘O(&N)"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:148
-#: Src/wptCardDlg.cpp:581 Src/wptKeygenDlg.cpp:375
+#: Src/wptCardDlg.cpp:581 Src/wptKeygenDlg.cpp:377
 msgid "&Comment (optional)"
 msgstr "ƒIƒvƒVƒ‡ƒiƒ‹ƒRƒƒ“ƒg(&C)"
 
@@ -399,7 +399,7 @@
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:886
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1141
 # c:\oss\winpt\src\wptKeysigDlg.cpp:192
-#: Src/wptCardDlg.cpp:582 Src/wptKeygenDlg.cpp:377
+#: Src/wptCardDlg.cpp:582 Src/wptKeygenDlg.cpp:379
 msgid "&Expire date"
 msgstr "—LŒøŠúŒÀ(&E)"
 
@@ -409,12 +409,12 @@
 msgstr "ƒJ[ƒhŠOƒpƒXƒtƒŒ[ƒY"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:154
-#: Src/wptCardDlg.cpp:584 Src/wptKeyEditDlgs.cpp:654 Src/wptKeygenDlg.cpp:379
+#: Src/wptCardDlg.cpp:584 Src/wptKeyEditDlgs.cpp:639 Src/wptKeygenDlg.cpp:381
 msgid "&Never"
 msgstr "‚Í‚¸‚Í‚È‚¢(&N)"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:149
-#: Src/wptCardDlg.cpp:585 Src/wptKeygenDlg.cpp:376
+#: Src/wptCardDlg.cpp:585 Src/wptKeygenDlg.cpp:378
 msgid "Email &address"
 msgstr "ƒ[ƒ‹ƒAƒhƒŒƒX(&A)"
 
@@ -464,7 +464,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:1401
+#: Src/wptCardDlg.cpp:663 Src/wptKeyEditDlgs.cpp:1377 Src/wptKeygenDlg.cpp:453
 msgid "The date you have chosen lies in the past."
 msgstr "‚ ‚È‚½‚Í‘I‚΂ꂽ“ú•t‚ª‰ß‹Ž‚Ì‚à‚Ì‚Å‚·B"
 
@@ -508,7 +508,7 @@
 msgstr "ƒJ[ƒh‚̈Ïؔԍ†‚ð•ÏX‚·‚é"
 
 # c:\oss\winpt\src\wptPassphraseDlg.cpp:146
-#: Src/wptCardDlg.cpp:799 Src/wptPassphraseDlg.cpp:184
+#: Src/wptCardDlg.cpp:799 Src/wptPassphraseDlg.cpp:241
 msgid "Passphrases do not match. Please try again."
 msgstr "ƒpƒXƒtƒŒ[ƒY‚ªƒ}ƒbƒ`‚µ‚Ü‚¹‚ñB‚à‚¤ˆê“xƒgƒ‰ƒC‚µ‚Ä‚­‚¾‚³‚¢B"
 
@@ -551,7 +551,7 @@
 
 # c:\oss\winpt\src\wptClipDecryptDlg.cpp:48
 #: Src/wptClipDecryptDlg.cpp:57 Src/wptClipDecryptDlg.cpp:130
-#: Src/wptKeyRevokersDlg.cpp:128 Src/wptKeyRevokersDlg.cpp:175
+#: Src/wptKeyRevokersDlg.cpp:129 Src/wptKeyRevokersDlg.cpp:173
 #: Src/wptVerifyList.cpp:243 Src/wptVerifyList.cpp:303
 msgid "user ID not found"
 msgstr "ƒ†[ƒU[ID‚ªŒ©‚‚©‚è‚Ü‚¹‚ñ‚Å‚µ‚½B"
@@ -612,13 +612,13 @@
 # c:\oss\winpt\src\wptMainProc.cpp:271 c:\oss\winpt\src\wptMainProc.cpp:279
 # c:\oss\winpt\src\wptMainProc.cpp:406
 #: Src/wptClipDecryptDlg.cpp:169 Src/wptClipVerifyDlg.cpp:157
-#: Src/wptClipVerifyDlg.cpp:170 Src/wptClipVerifyDlg.cpp:183
-#: Src/wptClipVerifyDlg.cpp:190 Src/wptClipVerifyDlg.cpp:222
-#: Src/wptClipVerifyDlg.cpp:234 Src/wptFileManager.cpp:1567
+#: Src/wptClipVerifyDlg.cpp:165 Src/wptClipVerifyDlg.cpp:196
+#: Src/wptClipVerifyDlg.cpp:207 Src/wptClipVerifyDlg.cpp:225
+#: Src/wptClipVerifyDlg.cpp:237 Src/wptFileManager.cpp:1567
 #: Src/wptFileManager.cpp:1620 Src/wptFileManagerDlg.cpp:590
 #: Src/wptFileVerifyDlg.cpp:82 Src/wptFileVerifyDlg.cpp:149
-#: Src/wptMainProc.cpp:182 Src/wptMainProc.cpp:248 Src/wptMainProc.cpp:260
-#: Src/wptMainProc.cpp:268 Src/wptMainProc.cpp:417
+#: Src/wptMainProc.cpp:182 Src/wptMainProc.cpp:248 Src/wptMainProc.cpp:262
+#: Src/wptMainProc.cpp:270 Src/wptMainProc.cpp:419
 msgid "Verify"
 msgstr "Šm”F‚·‚é"
 
@@ -683,9 +683,9 @@
 # c:\oss\winpt\src\wptKeyManager.cpp:274
 # c:\oss\winpt\src\wptKeyManager.cpp:610
 # c:\oss\winpt\src\wptKeyManager.cpp:852 c:\oss\winpt\src\wptSymEnc.cpp:52
-#: Src/wptClipDecryptDlg.cpp:219 Src/wptClipEncryptDlg.cpp:202
-#: Src/wptClipSignDlg.cpp:121 Src/wptClipSignDlg.cpp:265
-#: Src/wptClipSignEncDlg.cpp:197 Src/wptKeyManager.cpp:286
+#: Src/wptClipDecryptDlg.cpp:219 Src/wptClipEncryptDlg.cpp:210
+#: Src/wptClipSignDlg.cpp:121 Src/wptClipSignDlg.cpp:267
+#: Src/wptClipSignEncDlg.cpp:190 Src/wptKeyManager.cpp:286
 #: Src/wptKeyManager.cpp:763 Src/wptKeyManager.cpp:955 Src/wptSymEnc.cpp:91
 msgid "GnuPG Status: Finished"
 msgstr "GunPG‚̏ó‘ԁFI—¹‚µ‚Ü‚µ‚½"
@@ -700,23 +700,23 @@
 # c:\oss\winpt\src\wptMainProc.cpp:171 c:\oss\winpt\src\wptMainProc.cpp:241
 # c:\oss\winpt\src\wptMainProc.cpp:284 c:\oss\winpt\src\wptMainProc.cpp:489
 # c:\oss\winpt\src\wptMainProc.cpp:493
-#: Src/wptClipEditDlg.cpp:58 Src/wptClipEditDlg.cpp:111
-#: Src/wptClipEditDlg.cpp:119 Src/wptClipEditDlg.cpp:158
-#: Src/wptClipEditDlg.cpp:167 Src/wptClipEditDlg.cpp:242
-#: Src/wptClipEditDlg.cpp:247 Src/wptFileManagerDlg.cpp:225
-#: Src/wptMainProc.cpp:162 Src/wptMainProc.cpp:230 Src/wptMainProc.cpp:273
-#: Src/wptMainProc.cpp:429 Src/wptMainProc.cpp:510 Src/wptMainProc.cpp:515
+#: Src/wptClipEditDlg.cpp:59 Src/wptClipEditDlg.cpp:112
+#: Src/wptClipEditDlg.cpp:120 Src/wptClipEditDlg.cpp:159
+#: Src/wptClipEditDlg.cpp:168 Src/wptClipEditDlg.cpp:238
+#: Src/wptClipEditDlg.cpp:243 Src/wptFileManagerDlg.cpp:225
+#: Src/wptMainProc.cpp:162 Src/wptMainProc.cpp:230 Src/wptMainProc.cpp:275
+#: Src/wptMainProc.cpp:431 Src/wptMainProc.cpp:512 Src/wptMainProc.cpp:517
 msgid "Clipboard"
 msgstr "ƒNƒŠƒbƒvƒ{[ƒh"
 
 # c:\oss\winpt\src\wptClipEditDlg.cpp:114
 # c:\oss\winpt\src\wptFileManager.cpp:309
-#: Src/wptClipEditDlg.cpp:101 Src/wptFileManager.cpp:569
+#: Src/wptClipEditDlg.cpp:102 Src/wptFileManager.cpp:569
 msgid "File Open"
 msgstr "ƒtƒ@ƒCƒ‹‚ðŠJ‚­"
 
 # c:\oss\winpt\src\wptClipEditDlg.cpp:122
-#: Src/wptClipEditDlg.cpp:110
+#: Src/wptClipEditDlg.cpp:111
 msgid ""
 "The file you want to add is very large.\n"
 "Still proceed?"
@@ -725,12 +725,12 @@
 "‚»‚ê‚Å‚à‘±‚¯‚Ü‚·‚©H"
 
 # c:\oss\winpt\src\wptClipEditDlg.cpp:149
-#: Src/wptClipEditDlg.cpp:149
+#: Src/wptClipEditDlg.cpp:150
 msgid "File Save"
 msgstr "ƒtƒ@ƒCƒ‹‚ð•Û‘¶‚·‚é"
 
 # c:\oss\winpt\src\wptKeyRevokeDlg.cpp:152
-#: Src/wptClipEditDlg.cpp:159 Src/wptFileManager.cpp:108
+#: Src/wptClipEditDlg.cpp:160 Src/wptFileManager.cpp:108
 #, c-format
 msgid ""
 "\"%s\" already exists.\n"
@@ -741,31 +741,31 @@
 
 # c:\oss\winpt\src\wptClipEditDlg.cpp:45 c:\oss\winpt\src\wptMainProc.cpp:181
 # c:\oss\winpt\src\wptMainProc.cpp:249 c:\oss\winpt\src\wptMainProc.cpp:554
-#: Src/wptClipEditDlg.cpp:194 Src/wptMainProc.cpp:172 Src/wptMainProc.cpp:238
-#: Src/wptMainProc.cpp:572
+#: Src/wptClipEditDlg.cpp:195 Src/wptMainProc.cpp:172 Src/wptMainProc.cpp:238
+#: Src/wptMainProc.cpp:574
 msgid "Clipboard Editor"
 msgstr "ƒNƒŠƒbƒvƒ{[ƒhƒGƒfƒBƒ^["
 
 # c:\oss\winpt\src\wptClipEditDlg.cpp:46
-#: Src/wptClipEditDlg.cpp:195
+#: Src/wptClipEditDlg.cpp:196
 msgid "&Copy"
 msgstr "ƒRƒs[(&C)"
 
 # c:\oss\winpt\src\wptClipEditDlg.cpp:47
-#: Src/wptClipEditDlg.cpp:196
+#: Src/wptClipEditDlg.cpp:197
 msgid "Clea&r"
 msgstr "‰Šú‰»(&R)"
 
 # c:\oss\winpt\src\wptClipEditDlg.cpp:48 c:\oss\winpt\src\wptGPGOptDlg.cpp:49
 # c:\oss\winpt\src\wptTextInputDlg.cpp:83
-#: Src/wptClipEditDlg.cpp:197 Src/wptGPGOptDlg.cpp:53
-#: Src/wptTextInputDlg.cpp:85
+#: Src/wptClipEditDlg.cpp:198 Src/wptGPGOptDlg.cpp:56
+#: Src/wptTextInputDlg.cpp:87
 msgid "&Load"
 msgstr "ƒ[ƒh(&L)"
 
 # c:\oss\winpt\src\wptClipEditDlg.cpp:49 c:\oss\winpt\src\wptGPGOptDlg.cpp:48
-#: Src/wptClipEditDlg.cpp:198 Src/wptClipVerifyDlg.cpp:158
-#: Src/wptFileVerifyDlg.cpp:51 Src/wptGPGOptDlg.cpp:52
+#: Src/wptClipEditDlg.cpp:199 Src/wptClipVerifyDlg.cpp:197
+#: Src/wptFileVerifyDlg.cpp:51 Src/wptGPGOptDlg.cpp:55
 msgid "&Save"
 msgstr "•Û‘¶(&S)"
 
@@ -774,17 +774,23 @@
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:260
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:275
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:695
-#: Src/wptClipEditDlg.cpp:199
+#: Src/wptClipEditDlg.cpp:200
 msgid "Add quotes"
 msgstr "ˆø—p•„‚ð’ljÁ‚·‚é"
 
-#: Src/wptClipEditDlg.cpp:200 Src/wptKeyEditDlgs.cpp:2165
-#: Src/wptKeyserverDlg.cpp:577 Src/wptMDSumDlg.cpp:122
+#: Src/wptClipEditDlg.cpp:201 Src/wptKeyEditDlgs.cpp:2128
+#: Src/wptKeyserverDlg.cpp:585 Src/wptMDSumDlg.cpp:130
 #: Src/wptOwnertrustDlg.cpp:103
 msgid "&Close"
 msgstr "•Â‚¶‚é(&C)"
 
-#: Src/wptClipEncryptDlg.cpp:115
+# c:\oss\winpt\src\wptClipDecryptDlg.cpp:48
+#: Src/wptClipEncryptDlg.cpp:99
+#, fuzzy
+msgid "key not found"
+msgstr "ƒ†[ƒU[ID‚ªŒ©‚‚©‚è‚Ü‚¹‚ñ‚Å‚µ‚½B"
+
+#: Src/wptClipEncryptDlg.cpp:118
 msgid "Recipients unsuable for encryption:\n"
 msgstr "ŽóMŽÒ‚½‚¿‚͈͆‰»Žg—p‚É“K‚³‚È‚¢:\n"
 
@@ -794,44 +800,44 @@
 # c:\oss\winpt\src\wptClipEncryptDlg.cpp:134
 # c:\oss\winpt\src\wptClipEncryptDlg.cpp:168
 # c:\oss\winpt\src\wptMainProc.cpp:153 c:\oss\winpt\src\wptMainProc.cpp:223
-#: Src/wptClipEncryptDlg.cpp:126 Src/wptClipEncryptDlg.cpp:146
-#: Src/wptClipEncryptDlg.cpp:192 Src/wptClipEncryptDlg.cpp:199
-#: Src/wptClipEncryptDlg.cpp:228 Src/wptMainProc.cpp:144
+#: Src/wptClipEncryptDlg.cpp:134 Src/wptClipEncryptDlg.cpp:154
+#: Src/wptClipEncryptDlg.cpp:200 Src/wptClipEncryptDlg.cpp:207
+#: Src/wptClipEncryptDlg.cpp:236 Src/wptMainProc.cpp:144
 #: Src/wptMainProc.cpp:212
 msgid "Encryption"
 msgstr "ˆÃ†‰»"
 
 # c:\oss\winpt\src\wptFileSaveDlg.cpp:88
 # c:\oss\winpt\src\wptFileSaveDlg.cpp:103
-#: Src/wptClipEncryptDlg.cpp:147
+#: Src/wptClipEncryptDlg.cpp:155
 msgid "&Find"
 msgstr "ŒŸŽ@(&F)"
 
 # c:\oss\winpt\src\wptKeyPropsDlg.cpp:114
-#: Src/wptClipEncryptDlg.cpp:148 Src/wptClipSignEncDlg.cpp:112
+#: Src/wptClipEncryptDlg.cpp:156 Src/wptClipSignEncDlg.cpp:112
 #: Src/wptCommonDlg.cpp:76 Src/wptCommonDlg.cpp:253
 #: Src/wptFileManagerDlg.cpp:97 Src/wptFileManagerDlg.cpp:231
 #: Src/wptFileManagerDlg.cpp:300 Src/wptFileSaveDlg.cpp:58
 #: Src/wptFirstRunDlg.cpp:47 Src/wptGPGPrefsDlg.cpp:157
-#: Src/wptKeyEditDlgs.cpp:360 Src/wptKeyEditDlgs.cpp:448
-#: Src/wptKeyEditDlgs.cpp:519 Src/wptKeyEditDlgs.cpp:655
-#: Src/wptKeyEditOwnertrustDlg.cpp:67 Src/wptKeygenDlg.cpp:380
-#: Src/wptKeygenDlg.cpp:538 Src/wptKeyRevokeDlg.cpp:81
-#: Src/wptKeyserverDlg.cpp:509 Src/wptKeyserverSearchDlg.cpp:66
-#: Src/wptKeysignDlg.cpp:285 Src/wptPassphraseCB.cpp:93
-#: Src/wptPassphraseDlg.cpp:69 Src/wptPINDlg.cpp:55
-#: Src/wptPreferencesDlg.cpp:134 Src/wptTextInputDlg.cpp:84
+#: Src/wptKeyEditDlgs.cpp:358 Src/wptKeyEditDlgs.cpp:439
+#: Src/wptKeyEditDlgs.cpp:505 Src/wptKeyEditDlgs.cpp:640
+#: Src/wptKeyEditOwnertrustDlg.cpp:67 Src/wptKeygenDlg.cpp:382
+#: Src/wptKeygenDlg.cpp:544 Src/wptKeyRevokeDlg.cpp:81
+#: Src/wptKeyserverDlg.cpp:517 Src/wptKeyserverSearchDlg.cpp:66
+#: Src/wptKeysignDlg.cpp:293 Src/wptPassphraseCB.cpp:93
+#: Src/wptPassphraseDlg.cpp:102 Src/wptPINDlg.cpp:54
+#: Src/wptPreferencesDlg.cpp:134 Src/wptTextInputDlg.cpp:86
 msgid "&Cancel"
 msgstr "ƒLƒƒƒ“ƒZƒ‹(&C)"
 
 # c:\oss\winpt\src\wptClipEncryptDlg.cpp:109
 # c:\oss\winpt\src\wptClipSignEncDlg.cpp:110
-#: Src/wptClipEncryptDlg.cpp:191 Src/wptClipSignEncDlg.cpp:157
+#: Src/wptClipEncryptDlg.cpp:199 Src/wptClipSignEncDlg.cpp:150
 msgid "You must select at least one key."
 msgstr "­‚È‚­‚Ä‚àˆê‚‚̃L[‚ð‘I‘ð‚·‚é•K—v‚ª‚ ‚è‚Ü‚·B"
 
 # c:\oss\winpt\src\wptClipEncryptDlg.cpp:168
-#: Src/wptClipEncryptDlg.cpp:228
+#: Src/wptClipEncryptDlg.cpp:236
 #, c-format
 msgid "No recipient found with '%s'"
 msgstr "'%s'‚É‚æ‚éŽóMŽÒ‚ªŒ©‚‚©‚è‚Ü‚¹‚ñ‚Å‚µ‚½B"
@@ -844,8 +850,8 @@
 # c:\oss\winpt\src\wptClipSignDlg.cpp:53
 # c:\oss\winpt\src\wptClipSignDlg.cpp:138
 # c:\oss\winpt\src\wptClipSignEncDlg.cpp:129
-#: Src/wptClipSignDlg.cpp:103 Src/wptClipSignDlg.cpp:222
-#: Src/wptClipSignEncDlg.cpp:176
+#: Src/wptClipSignDlg.cpp:103 Src/wptClipSignDlg.cpp:226
+#: Src/wptClipSignEncDlg.cpp:170
 msgid "Could not get default key."
 msgstr "‹K’èƒL[‚ðŽæ“¾‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
@@ -865,22 +871,22 @@
 # c:\oss\winpt\src\wptMainProc.cpp:165 c:\oss\winpt\src\wptMainProc.cpp:229
 #: Src/wptClipSignDlg.cpp:103 Src/wptClipSignDlg.cpp:111
 #: Src/wptClipSignDlg.cpp:119 Src/wptClipSignDlg.cpp:153
-#: Src/wptClipSignDlg.cpp:163 Src/wptClipSignDlg.cpp:222
-#: Src/wptClipSignDlg.cpp:230 Src/wptClipSignDlg.cpp:249
-#: Src/wptClipSignDlg.cpp:260 Src/wptClipSignEncDlg.cpp:166
-#: Src/wptClipSignEncDlg.cpp:176 Src/wptFileManager.cpp:1081
+#: Src/wptClipSignDlg.cpp:159 Src/wptClipSignDlg.cpp:227
+#: Src/wptClipSignDlg.cpp:231 Src/wptClipSignDlg.cpp:251
+#: Src/wptClipSignDlg.cpp:262 Src/wptClipSignEncDlg.cpp:159
+#: Src/wptClipSignEncDlg.cpp:170 Src/wptFileManager.cpp:1081
 #: Src/wptFileManager.cpp:1097 Src/wptFileManager.cpp:1387
 #: Src/wptMainProc.cpp:156 Src/wptMainProc.cpp:218
 msgid "Signing"
 msgstr "–¼"
 
 # c:\oss\winpt\src\wptGPG.cpp:178
-#: Src/wptClipSignDlg.cpp:163
+#: Src/wptClipSignDlg.cpp:159
 msgid "No useable signing key found"
 msgstr "Žg—p‚Å‚«‚鏐–¼‚·‚éƒL[‚ªŒ©‚‚©‚è‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
 # c:\oss\winpt\src\wptClipSignDlg.cpp:147
-#: Src/wptClipSignDlg.cpp:231
+#: Src/wptClipSignDlg.cpp:232
 #, c-format
 msgid ""
 "No key was chosen.\n"
@@ -894,35 +900,35 @@
 # c:\oss\winpt\src\wptClipSignEncDlg.cpp:138
 # c:\oss\winpt\src\wptClipSignEncDlg.cpp:148
 # c:\oss\winpt\src\wptMainProc.cpp:159 c:\oss\winpt\src\wptMainProc.cpp:235
-#: Src/wptClipSignEncDlg.cpp:111 Src/wptClipSignEncDlg.cpp:158
-#: Src/wptClipSignEncDlg.cpp:185 Src/wptClipSignEncDlg.cpp:194
+#: Src/wptClipSignEncDlg.cpp:111 Src/wptClipSignEncDlg.cpp:151
+#: Src/wptClipSignEncDlg.cpp:179 Src/wptClipSignEncDlg.cpp:188
 #: Src/wptMainProc.cpp:150 Src/wptMainProc.cpp:224
 msgid "Sign & Encrypt"
 msgstr "–¼‹y‚ш͆‰»"
 
 # c:\oss\winpt\src\wptClipSignEncDlg.cpp:71
-#: Src/wptClipSignEncDlg.cpp:121
+#: Src/wptClipSignEncDlg.cpp:119
 msgid "Select key for signing"
 msgstr "–¼—p‚̃L[‚ð‘I‘ð"
 
 # c:\oss\winpt\src\wptClipSignEncDlg.cpp:72
-#: Src/wptClipSignEncDlg.cpp:122
+#: Src/wptClipSignEncDlg.cpp:120
 msgid "Signing key:"
 msgstr "–¼—p‚̃L[:"
 
 # c:\oss\winpt\src\wptClipSignEncDlg.cpp:119
 # c:\oss\winpt\src\wptKeylist.cpp:923
-#: Src/wptClipSignEncDlg.cpp:166 Src/wptKeylist.cpp:1202
+#: Src/wptClipSignEncDlg.cpp:159 Src/wptKeylist.cpp:1202
 msgid "No key was selected."
 msgstr "ƒL[‚ª‘I‘ð‚³‚ê‚Ä‚Ü‚¹‚ñB"
 
 # c:\oss\winpt\src\wptClipVerifyDlg.cpp:136
-#: Src/wptClipVerifyDlg.cpp:136
+#: Src/wptClipVerifyDlg.cpp:140
 msgid "Signature Information"
 msgstr "ƒVƒOƒjƒ`ƒƒ[‚̏î•ñ"
 
 # c:\oss\winpt\src\wptClipVerifyDlg.cpp:81
-#: Src/wptClipVerifyDlg.cpp:184
+#: Src/wptClipVerifyDlg.cpp:158
 #, c-format
 msgid ""
 "Signature made %s using %s key ID 0x%s\n"
@@ -936,12 +942,12 @@
 "ƒL[ƒT[ƒo[‚©‚çƒL[‚ðŽæ“¾‚µ‚Ü‚·‚©H"
 
 # c:\oss\winpt\src\wptClipVerifyDlg.cpp:106
-#: Src/wptClipVerifyDlg.cpp:222
+#: Src/wptClipVerifyDlg.cpp:225
 msgid "Invalid signature state."
 msgstr "–¼‚̏󋵂͖³Œø‚Å‚·B"
 
 # c:\oss\winpt\src\wptClipVerifyDlg.cpp:118
-#: Src/wptClipVerifyDlg.cpp:233
+#: Src/wptClipVerifyDlg.cpp:236
 msgid "Could not extract key or signature information."
 msgstr "ƒL[‚Ü‚½‚͏–¼î•ñ‚ðŽæ‚èo‚·‚±‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
@@ -953,7 +959,7 @@
 # c:\oss\winpt\src\wptFileSaveDlg.cpp:92
 # c:\oss\winpt\src\wptFileSaveDlg.cpp:97
 # c:\oss\winpt\src\wptFileSaveDlg.cpp:103
-#: Src/wptClipVerifyDlg.cpp:262 Src/wptFileSaveDlg.cpp:57
+#: Src/wptClipVerifyDlg.cpp:272 Src/wptFileSaveDlg.cpp:57
 #: Src/wptFileSaveDlg.cpp:84 Src/wptFileSaveDlg.cpp:89
 #: Src/wptFileSaveDlg.cpp:95 Src/wptFileSaveDlg.cpp:99
 #: Src/wptFileSaveDlg.cpp:104 Src/wptFileSaveDlg.cpp:110
@@ -1015,36 +1021,35 @@
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1561
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1568
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:1173
-#: Src/wptCommonDlg.cpp:134 Src/wptKeyEditDlgs.cpp:774
-#: Src/wptKeyEditDlgs.cpp:842 Src/wptKeyEditDlgs.cpp:882
-#: Src/wptKeyEditDlgs.cpp:895 Src/wptKeyEditDlgs.cpp:897
-#: Src/wptKeyEditDlgs.cpp:923 Src/wptKeyEditDlgs.cpp:954
-#: Src/wptKeyEditDlgs.cpp:987 Src/wptKeyEditDlgs.cpp:1031
-#: Src/wptKeyEditDlgs.cpp:1038 Src/wptKeyEditDlgs.cpp:1056
-#: Src/wptKeyEditDlgs.cpp:1067 Src/wptKeyEditDlgs.cpp:1115
-#: Src/wptKeyEditDlgs.cpp:1202 Src/wptKeyEditDlgs.cpp:1322
-#: Src/wptKeyEditDlgs.cpp:1326 Src/wptKeyEditDlgs.cpp:1330
-#: Src/wptKeyEditDlgs.cpp:1337 Src/wptKeyEditDlgs.cpp:1373
-#: Src/wptKeyEditDlgs.cpp:1377 Src/wptKeyEditDlgs.cpp:1387
-#: Src/wptKeyEditDlgs.cpp:1402 Src/wptKeyEditDlgs.cpp:1406
-#: Src/wptKeyEditDlgs.cpp:1448 Src/wptKeyEditDlgs.cpp:1453
-#: Src/wptKeyEditDlgs.cpp:1460 Src/wptKeyEditDlgs.cpp:1466
-#: Src/wptKeyEditDlgs.cpp:1471 Src/wptKeyEditDlgs.cpp:1516
-#: Src/wptKeyEditDlgs.cpp:1521 Src/wptKeyEditDlgs.cpp:1528
-#: Src/wptKeyEditDlgs.cpp:1535 Src/wptKeyEditDlgs.cpp:1538
-#: Src/wptKeyEditDlgs.cpp:1578 Src/wptKeyEditDlgs.cpp:1586
-#: Src/wptKeyEditDlgs.cpp:1603 Src/wptKeyEditDlgs.cpp:1623
-#: Src/wptKeyEditDlgs.cpp:1631 Src/wptKeyEditDlgs.cpp:1740
-#: Src/wptKeyEditDlgs.cpp:1778 Src/wptKeyEditDlgs.cpp:1813
-#: Src/wptKeyEditDlgs.cpp:1817 Src/wptKeyEditDlgs.cpp:1828
-#: Src/wptKeyEditDlgs.cpp:1950 Src/wptKeyEditDlgs.cpp:1952
-#: Src/wptKeyEditDlgs.cpp:1968 Src/wptKeyEditDlgs.cpp:1970
-#: Src/wptKeyEditDlgs.cpp:2003 Src/wptKeyEditDlgs.cpp:2008
-#: Src/wptKeyEditDlgs.cpp:2017 Src/wptKeyEditDlgs.cpp:2031
-#: Src/wptKeyEditDlgs.cpp:2035 Src/wptKeyEditDlgs.cpp:2102
-#: Src/wptKeyEditDlgs.cpp:2143 Src/wptKeyEditDlgs.cpp:2156
-#: Src/wptKeyEditDlgs.cpp:2170 Src/wptKeyEditDlgs.cpp:2210
-#: Src/wptKeyEditDlgs.cpp:2215 Src/wptKeyManagerDlg.cpp:993
+#: Src/wptCommonDlg.cpp:134 Src/wptKeyEditDlgs.cpp:754
+#: Src/wptKeyEditDlgs.cpp:822 Src/wptKeyEditDlgs.cpp:863
+#: Src/wptKeyEditDlgs.cpp:876 Src/wptKeyEditDlgs.cpp:878
+#: Src/wptKeyEditDlgs.cpp:904 Src/wptKeyEditDlgs.cpp:934
+#: Src/wptKeyEditDlgs.cpp:967 Src/wptKeyEditDlgs.cpp:1011
+#: Src/wptKeyEditDlgs.cpp:1018 Src/wptKeyEditDlgs.cpp:1036
+#: Src/wptKeyEditDlgs.cpp:1047 Src/wptKeyEditDlgs.cpp:1298
+#: Src/wptKeyEditDlgs.cpp:1303 Src/wptKeyEditDlgs.cpp:1307
+#: Src/wptKeyEditDlgs.cpp:1314 Src/wptKeyEditDlgs.cpp:1348
+#: Src/wptKeyEditDlgs.cpp:1353 Src/wptKeyEditDlgs.cpp:1363
+#: Src/wptKeyEditDlgs.cpp:1378 Src/wptKeyEditDlgs.cpp:1382
+#: Src/wptKeyEditDlgs.cpp:1422 Src/wptKeyEditDlgs.cpp:1427
+#: Src/wptKeyEditDlgs.cpp:1434 Src/wptKeyEditDlgs.cpp:1440
+#: Src/wptKeyEditDlgs.cpp:1445 Src/wptKeyEditDlgs.cpp:1488
+#: Src/wptKeyEditDlgs.cpp:1493 Src/wptKeyEditDlgs.cpp:1500
+#: Src/wptKeyEditDlgs.cpp:1507 Src/wptKeyEditDlgs.cpp:1510
+#: Src/wptKeyEditDlgs.cpp:1548 Src/wptKeyEditDlgs.cpp:1556
+#: Src/wptKeyEditDlgs.cpp:1571 Src/wptKeyEditDlgs.cpp:1592
+#: Src/wptKeyEditDlgs.cpp:1603 Src/wptKeyEditDlgs.cpp:1712
+#: Src/wptKeyEditDlgs.cpp:1750 Src/wptKeyEditDlgs.cpp:1785
+#: Src/wptKeyEditDlgs.cpp:1790 Src/wptKeyEditDlgs.cpp:1800
+#: Src/wptKeyEditDlgs.cpp:1905 Src/wptKeyEditDlgs.cpp:1907
+#: Src/wptKeyEditDlgs.cpp:1923 Src/wptKeyEditDlgs.cpp:1925
+#: Src/wptKeyEditDlgs.cpp:1960 Src/wptKeyEditDlgs.cpp:1968
+#: Src/wptKeyEditDlgs.cpp:1984 Src/wptKeyEditDlgs.cpp:1998
+#: Src/wptKeyEditDlgs.cpp:2002 Src/wptKeyEditDlgs.cpp:2069
+#: Src/wptKeyEditDlgs.cpp:2106 Src/wptKeyEditDlgs.cpp:2119
+#: Src/wptKeyEditDlgs.cpp:2133 Src/wptKeyEditDlgs.cpp:2173
+#: Src/wptKeyEditDlgs.cpp:2178 Src/wptKeyManagerDlg.cpp:993
 #: Src/wptKeyManagerDlg.cpp:1814
 msgid "Key Edit"
 msgstr "ƒL[‚̕ҏW"
@@ -1054,7 +1059,7 @@
 msgstr "Šó–]‚·‚éƒL[ƒT[ƒo[‚ð“ü—Í‚·‚é"
 
 # c:\oss\winpt\src\wptGPGPrefsDlg.cpp:210
-#: Src/wptCommonDlg.cpp:211 Src/wptGPGPrefsDlg.cpp:334
+#: Src/wptCommonDlg.cpp:211 Src/wptGPGPrefsDlg.cpp:330
 msgid "Choose Locale Directory"
 msgstr "'Locale'ÃÞ¨Ú¸ÄØ‚ð‘I‘ð‚µ‚Ä‚­‚¾‚³‚¢"
 
@@ -1075,7 +1080,7 @@
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:144
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:166
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:890
-#: Src/wptCommonDlg.cpp:252
+#: Src/wptCommonDlg.cpp:252 Src/wptPassphraseDlg.cpp:103 Src/wptPINDlg.cpp:55
 msgid "&OK"
 msgstr "&OK"
 
@@ -1319,8 +1324,8 @@
 #: Src/wptFileManager.cpp:1473 Src/wptFileManager.cpp:1500
 #: Src/wptFileManager.cpp:1519 Src/wptFileManager.cpp:1771
 #: Src/wptFileManager.cpp:1833 Src/wptFileManagerDlg.cpp:536
-#: Src/wptFileManagerDlg.cpp:635 Src/wptFileStatDlg.cpp:152
-#: Src/wptMainProc.cpp:404 Src/wptMDSumDlg.cpp:181
+#: Src/wptFileManagerDlg.cpp:635 Src/wptFileStatDlg.cpp:149
+#: Src/wptMainProc.cpp:406 Src/wptMDSumDlg.cpp:184
 msgid "File Manager"
 msgstr "ƒtƒ@ƒCƒ‹ƒ}ƒl[ƒWƒƒ["
 
@@ -1356,7 +1361,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:382 Src/wptKeyEditDlgs.cpp:1101
+#: Src/wptFileManager.cpp:382 Src/wptKeyEditDlgs.cpp:1081
 #: Src/wptVerifyList.cpp:161
 msgid "Status"
 msgstr "ó‹µ"
@@ -1365,8 +1370,8 @@
 # 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:383 Src/wptKeyEditDlgs.cpp:1193
-#: Src/wptKeyRevokersDlg.cpp:57 Src/wptMDSumDlg.cpp:104
+#: Src/wptFileManager.cpp:383 Src/wptKeyEditDlgs.cpp:1171
+#: Src/wptKeyRevokersDlg.cpp:57 Src/wptMDSumDlg.cpp:112
 #: Src/wptVerifyList.cpp:160
 msgid "Name"
 msgstr "–¼‘O"
@@ -1399,8 +1404,8 @@
 
 # c:\oss\winpt\src\wptFileManager.cpp:779
 # c:\oss\winpt\src\wptFileStatDlg.cpp:225
-#: Src/wptFileManager.cpp:1007 Src/wptFileStatDlg.cpp:274
-#: Src/wptFileStatDlg.cpp:281
+#: Src/wptFileManager.cpp:1007 Src/wptFileStatDlg.cpp:273
+#: Src/wptFileStatDlg.cpp:279
 msgid "File Status"
 msgstr "ƒtƒ@ƒCƒ‹‚̏ó‘Ô"
 
@@ -1421,7 +1426,7 @@
 # c:\oss\winpt\src\wptMainProc.cpp:211 c:\oss\winpt\src\wptMainProc.cpp:410
 #: Src/wptFileManager.cpp:1111 Src/wptFileManager.cpp:1423
 #: Src/wptFileManagerDlg.cpp:588 Src/wptMainProc.cpp:200
-#: Src/wptMainProc.cpp:414 Src/wptMainProc.cpp:421
+#: Src/wptMainProc.cpp:416 Src/wptMainProc.cpp:423
 msgid "Sign"
 msgstr "–¼"
 
@@ -1429,7 +1434,7 @@
 # c:\oss\winpt\src\wptFileManagerDlg.cpp:401
 # c:\oss\winpt\src\wptMainProc.cpp:403 c:\oss\winpt\src\wptMainProc.cpp:407
 #: Src/wptFileManager.cpp:1124 Src/wptFileManagerDlg.cpp:586
-#: Src/wptMainProc.cpp:413 Src/wptMainProc.cpp:418
+#: Src/wptMainProc.cpp:415 Src/wptMainProc.cpp:420
 msgid "Encrypt"
 msgstr "ŒöŠJˆÃ†‰»"
 
@@ -1438,7 +1443,7 @@
 # c:\oss\winpt\src\wptFileManager.cpp:919
 # c:\oss\winpt\src\wptMainProc.cpp:401
 #: Src/wptFileManager.cpp:1151 Src/wptFileManager.cpp:1184
-#: Src/wptFileManager.cpp:1189 Src/wptMainProc.cpp:412
+#: Src/wptFileManager.cpp:1189 Src/wptMainProc.cpp:414
 msgid "Symmetric"
 msgstr "‹¤’ʈ͆‰»"
 
@@ -1532,7 +1537,7 @@
 #: Src/wptImportList.cpp:410 Src/wptImportList.cpp:420
 #: Src/wptImportList.cpp:428 Src/wptImportList.cpp:437
 #: Src/wptKeyManager.cpp:460 Src/wptKeyManager.cpp:471
-#: Src/wptKeyManager.cpp:599 Src/wptKeyserverDlg.cpp:219
+#: Src/wptKeyManager.cpp:599 Src/wptKeyserverDlg.cpp:221
 msgid "Import"
 msgstr "ƒCƒ“ƒ|[ƒg"
 
@@ -1563,7 +1568,7 @@
 # c:\oss\winpt\src\wptFileManager.cpp:1335
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:79
 #: Src/wptFileManager.cpp:1699 Src/wptFileManager.cpp:1722
-#: Src/wptKeyserverDlg.cpp:90
+#: Src/wptKeyserverDlg.cpp:92
 msgid "Export"
 msgstr "ƒGƒLƒXƒ|[ƒg"
 
@@ -1580,9 +1585,9 @@
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1113
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1177
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:90
-#: Src/wptFileManager.cpp:1726 Src/wptKeyEditDlgs.cpp:1081
-#: Src/wptKeyEditDlgs.cpp:1354 Src/wptKeyEditDlgs.cpp:1427
-#: Src/wptKeyserverDlg.cpp:102
+#: Src/wptFileManager.cpp:1726 Src/wptKeyEditDlgs.cpp:1061
+#: Src/wptKeyEditDlgs.cpp:1329 Src/wptKeyEditDlgs.cpp:1401
+#: Src/wptKeyserverDlg.cpp:104
 msgid "GnuPG status"
 msgstr "GnuPG‚̏ó‘Ô"
 
@@ -1670,7 +1675,7 @@
 
 # c:\oss\winpt\src\wptFileManagerDlg.cpp:190
 # c:\oss\winpt\src\wptKeyManager.cpp:408
-#: Src/wptFileManagerDlg.cpp:216 Src/wptFileStatDlg.cpp:281
+#: Src/wptFileManagerDlg.cpp:216 Src/wptFileStatDlg.cpp:279
 #: Src/wptKeyManager.cpp:424
 msgid "No valid OpenPGP data found."
 msgstr "—LŒø‚ÈOpenPGPƒf[ƒ^‚ªŒ©‚‚©‚è‚Ü‚¹‚ñ‚Å‚µ‚½B"
@@ -1747,8 +1752,8 @@
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:1097
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:1115
 # c:\oss\winpt\src\wptKeyserverSearchDlg.cpp:115
-#: Src/wptFileManagerDlg.cpp:345 Src/wptKeyEditDlgs.cpp:1326
-#: Src/wptKeyEditDlgs.cpp:1377 Src/wptKeyEditDlgs.cpp:1453
+#: Src/wptFileManagerDlg.cpp:345 Src/wptKeyEditDlgs.cpp:1303
+#: Src/wptKeyEditDlgs.cpp:1353 Src/wptKeyEditDlgs.cpp:1427
 #: Src/wptKeyManager.cpp:683 Src/wptKeyManager.cpp:784
 #: Src/wptKeyManager.cpp:818 Src/wptKeyManagerDlg.cpp:1558
 #: Src/wptKeyManagerDlg.cpp:1574 Src/wptKeyManagerDlg.cpp:1602
@@ -1768,7 +1773,7 @@
 msgstr "%d ƒIƒuƒWƒFƒNƒg‚ªƒ}[ƒN‚³‚ê‚Ü‚µ‚½B"
 
 # c:\oss\winpt\src\wptFileManagerDlg.cpp:350
-#: Src/wptFileManagerDlg.cpp:503 Src/wptMainProc.cpp:542
+#: Src/wptFileManagerDlg.cpp:503 Src/wptMainProc.cpp:544
 msgid "File Manager (use drag & drop to add files)"
 msgstr "ƒtƒ@ƒCƒ‹ƒ}ƒl[ƒWƒƒ[(ƒhƒ‰ƒbƒOEƒAƒ“ƒhEƒhƒƒbƒv‚ðŽg—p‚µ‚ĒljÁ‚·‚é)"
 
@@ -1818,7 +1823,7 @@
 # c:\oss\winpt\src\wptFileManagerDlg.cpp:404
 # c:\oss\winpt\src\wptMainProc.cpp:404 c:\oss\winpt\src\wptMainProc.cpp:408
 #: Src/wptFileManagerDlg.cpp:513 Src/wptFileManagerDlg.cpp:589
-#: Src/wptMainProc.cpp:415 Src/wptMainProc.cpp:419
+#: Src/wptMainProc.cpp:417 Src/wptMainProc.cpp:421
 msgid "Sign && Encrypt"
 msgstr "–¼‹y‚ш͆‰»"
 
@@ -1845,7 +1850,7 @@
 
 # c:\oss\winpt\src\wptFileManagerDlg.cpp:364
 # c:\oss\winpt\src\wptMainProc.cpp:400
-#: Src/wptFileManagerDlg.cpp:518 Src/wptMainProc.cpp:411
+#: Src/wptFileManagerDlg.cpp:518 Src/wptMainProc.cpp:413
 msgid "Exit"
 msgstr "I—¹"
 
@@ -2077,12 +2082,12 @@
 # c:\oss\winpt\src\wptPreferencesDlg.cpp:270
 # c:\oss\winpt\src\wptPreferencesDlg.cpp:317
 # c:\oss\winpt\src\wptRegistry.cpp:492
-#: Src/wptGPG.cpp:888 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:1745 Src/wptKeyManagerDlg.cpp:958
-#: Src/wptMainProc.cpp:431 Src/wptPreferencesDlg.cpp:225
+#: Src/wptGPG.cpp:888 Src/wptGPGPrefsDlg.cpp:211 Src/wptGPGPrefsDlg.cpp:217
+#: Src/wptGPGPrefsDlg.cpp:223 Src/wptGPGPrefsDlg.cpp:229
+#: Src/wptGPGPrefsDlg.cpp:234 Src/wptGPGPrefsDlg.cpp:239
+#: Src/wptGPGPrefsDlg.cpp:245 Src/wptGPGPrefsDlg.cpp:259
+#: Src/wptKeyEditDlgs.cpp:1717 Src/wptKeyManagerDlg.cpp:958
+#: Src/wptMainProc.cpp:433 Src/wptPreferencesDlg.cpp:225
 #: Src/wptPreferencesDlg.cpp:270 Src/wptPreferencesDlg.cpp:282
 #: Src/wptPreferencesDlg.cpp:295 Src/wptPreferencesDlg.cpp:326
 #: Src/wptRegistry.cpp:596
@@ -2200,43 +2205,44 @@
 msgstr "—LŒø‚ȏ–¼i–³Œø‚ȃL[j"
 
 # c:\oss\winpt\src\wptGPGOptDlg.cpp:44
-#: Src/wptGPGOptDlg.cpp:49 Src/wptGPGOptDlg.cpp:99
+#: Src/wptGPGOptDlg.cpp:48 Src/wptGPGOptDlg.cpp:97
 msgid "Could not load GnuPG config file!"
 msgstr "GnuPG‚±‚¤‚¹‚¢ƒtƒ@ƒCƒ‹‚ðŽæ“¾‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
+# c:\oss\winpt\src\wptGPG.cpp:762
+#: Src/wptGPGOptDlg.cpp:49 Src/wptGPGOptDlg.cpp:69 Src/wptGPGOptDlg.cpp:75
+#: Src/wptGPGOptDlg.cpp:80 Src/wptGPGOptDlg.cpp:84 Src/wptGPGOptDlg.cpp:91
+#: Src/wptGPGOptDlg.cpp:97
+msgid "GPG Config"
+msgstr "GPG‚±‚¤‚¹‚¢"
+
 # c:\oss\winpt\src\wptGPG.cpp:737
-#: Src/wptGPGOptDlg.cpp:51
+#: Src/wptGPGOptDlg.cpp:54
 msgid "GnuPG Configuration File"
 msgstr "GnuPG‚±‚¤‚¹‚¢ƒtƒ@ƒCƒ‹"
 
 # c:\oss\winpt\src\wptGPGOptDlg.cpp:68
-#: Src/wptGPGOptDlg.cpp:71
+#: Src/wptGPGOptDlg.cpp:69
 msgid "The 'gpg.conf' file is not loaded."
 msgstr "'gpg.conf' ƒtƒ@ƒCƒ‹‚ªƒ[ƒh‚³‚ê‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
-# c:\oss\winpt\src\wptGPG.cpp:762
-#: Src/wptGPGOptDlg.cpp:71 Src/wptGPGOptDlg.cpp:77 Src/wptGPGOptDlg.cpp:82
-#: Src/wptGPGOptDlg.cpp:86 Src/wptGPGOptDlg.cpp:93 Src/wptGPGOptDlg.cpp:99
-msgid "GPG Config"
-msgstr "GPG‚±‚¤‚¹‚¢"
-
 # c:\oss\winpt\src\wptGPGOptDlg.cpp:74
-#: Src/wptGPGOptDlg.cpp:77
+#: Src/wptGPGOptDlg.cpp:75
 msgid "File contains invalid GnuPG keywords!"
 msgstr "ƒtƒ@ƒCƒ‹‚É–³Œø‚ÈGnuPGƒL[ƒ[ƒh‚ª“ü‚Á‚Ä‚¢‚Ü‚·I"
 
 # c:\oss\winpt\src\wptGPGOptDlg.cpp:44
-#: Src/wptGPGOptDlg.cpp:82
+#: Src/wptGPGOptDlg.cpp:80
 msgid "Could not save GnuPG config file."
 msgstr "GnuPG‚±‚¤‚¹‚¢ƒtƒ@ƒCƒ‹‚ð•Û‘¶‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
 # c:\oss\winpt\src\wptGPGOptDlg.cpp:83
-#: Src/wptGPGOptDlg.cpp:86
+#: Src/wptGPGOptDlg.cpp:84
 msgid "Successfully saved."
 msgstr "³‚µ‚­•Û‘¶‚³‚ê‚Ü‚µ‚½B"
 
 # c:\oss\winpt\src\wptGPGOptDlg.cpp:89
-#: Src/wptGPGOptDlg.cpp:92
+#: Src/wptGPGOptDlg.cpp:90
 msgid ""
 "Current data will be lost!\n"
 "Are you sure?"
@@ -2248,7 +2254,7 @@
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:1071
 # c:\oss\winpt\src\wptMainProc.cpp:572
 #: Src/wptGPGPrefsDlg.cpp:141 Src/wptKeyManagerDlg.cpp:1712
-#: Src/wptMainProc.cpp:590
+#: Src/wptMainProc.cpp:592
 msgid "GnuPG Preferences"
 msgstr "GnuPGƒJƒXƒ^ƒ€Ý’è"
 
@@ -2304,42 +2310,42 @@
 msgstr "‹K’èÝ’è‚ðã‘‚µ‚Ü‚·(&O)"
 
 # c:\oss\winpt\src\wptGPGPrefsDlg.cpp:107
-#: Src/wptGPGPrefsDlg.cpp:215
+#: Src/wptGPGPrefsDlg.cpp:210
 msgid "Please enter the GnuPG home directory."
 msgstr "GnuPGƒz[ƒ€ƒfƒBƒŒƒNƒgƒŠ‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptGPGPrefsDlg.cpp:154
-#: Src/wptGPGPrefsDlg.cpp:227
+#: Src/wptGPGPrefsDlg.cpp:222
 msgid "Could not save 'HomeDir' in the registry."
 msgstr "ƒŒƒWƒXƒgƒŠ‚É'HomeDir'‚ð•Û‘¶‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
 # c:\oss\winpt\src\wptGPGPrefsDlg.cpp:158
-#: Src/wptGPGPrefsDlg.cpp:233
+#: Src/wptGPGPrefsDlg.cpp:228
 msgid "Please enter where GPG.exe is located."
 msgstr "GPG.exeƒtƒ@ƒCƒ‹‚Ì‚ ‚éêŠ‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptGPGPrefsDlg.cpp:162
-#: Src/wptGPGPrefsDlg.cpp:238
+#: Src/wptGPGPrefsDlg.cpp:233
 msgid "Could not find the GPG program in this directory."
 msgstr "GPGƒvƒ‰ƒOƒ‰ƒ€‚ª‚±‚̃fƒBƒŒƒNƒgƒŠ‚É“ü‚Á‚Ä‚¢‚Ü‚¹‚ñB"
 
 # c:\oss\winpt\src\wptGPGPrefsDlg.cpp:166
-#: Src/wptGPGPrefsDlg.cpp:243
+#: Src/wptGPGPrefsDlg.cpp:238
 msgid "Could not save 'gpgProgram' in the registry"
 msgstr "ƒŒƒWƒXƒgƒŠ‚É'gpgProgram'‚ð•Û‘¶‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
 # c:\oss\winpt\src\wptGPGPrefsDlg.cpp:180
-#: Src/wptGPGPrefsDlg.cpp:263
+#: Src/wptGPGPrefsDlg.cpp:258
 msgid "Could not get GPG config file"
 msgstr "GPG‚±‚¤‚¹‚¢ƒtƒ@ƒCƒ‹‚ðŽæ“¾‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
 # c:\oss\winpt\src\wptGPGPrefsDlg.cpp:210
-#: Src/wptGPGPrefsDlg.cpp:312
+#: Src/wptGPGPrefsDlg.cpp:308
 msgid "Choose GPG Home Directory"
 msgstr "GPG‚̃z[ƒ€ƒfƒBƒŒƒNƒgƒŠ‚ð‘I‘ð‚·‚é"
 
 # c:\oss\winpt\src\wptGPGPrefsDlg.cpp:217
-#: Src/wptGPGPrefsDlg.cpp:340
+#: Src/wptGPGPrefsDlg.cpp:336
 msgid "Choose GPG Binary"
 msgstr "GPGƒoƒCƒiƒŠ‚ð‘I‘ð‚·‚é"
 
@@ -2439,10 +2445,10 @@
 #: Src/wptKeyManagerDlg.cpp:1741 Src/wptKeyManagerDlg.cpp:1759
 #: Src/wptKeyManagerDlg.cpp:1764 Src/wptKeyManagerDlg.cpp:1769
 #: Src/wptKeyManagerDlg.cpp:1840 Src/wptKeyManagerDlg.cpp:1845
-#: Src/wptKeyManagerDlg.cpp:1978 Src/wptKeysigDlg.cpp:93
-#: Src/wptKeysigDlg.cpp:105 Src/wptKeysigDlg.cpp:314 Src/wptKeysigDlg.cpp:387
-#: Src/wptKeysigDlg.cpp:397 Src/wptKeysigDlg.cpp:440 Src/wptMainProc.cpp:405
-#: Src/wptMainProc.cpp:553 Src/wptMainProc.cpp:561
+#: Src/wptKeyManagerDlg.cpp:1978 Src/wptKeysigDlg.cpp:94
+#: Src/wptKeysigDlg.cpp:106 Src/wptKeysigDlg.cpp:309 Src/wptKeysigDlg.cpp:381
+#: Src/wptKeysigDlg.cpp:391 Src/wptKeysigDlg.cpp:434 Src/wptMainProc.cpp:407
+#: Src/wptMainProc.cpp:555 Src/wptMainProc.cpp:563
 msgid "Key Manager"
 msgstr "ƒL[ƒ}ƒl[ƒWƒƒ["
 
@@ -2540,13 +2546,14 @@
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1273
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1303
 # c:\oss\winpt\src\wptKeysigDlg.cpp:191
-#: Src/wptImportList.cpp:266 Src/wptKeyEditDlgs.cpp:258
-#: Src/wptKeyEditDlgs.cpp:1166 Src/wptKeyEditDlgs.cpp:1218
-#: Src/wptKeyEditDlgs.cpp:1465 Src/wptKeyEditDlgs.cpp:1487
-#: Src/wptKeyEditDlgs.cpp:1526 Src/wptKeyEditDlgs.cpp:1559
-#: Src/wptKeyEditDlgs.cpp:1790 Src/wptKeylist.cpp:421 Src/wptKeylist.cpp:455
-#: Src/wptKeyPropsDlg.cpp:161 Src/wptKeysigDlg.cpp:144
-#: Src/wptKeysigDlg.cpp:214
+#: Src/wptImportList.cpp:266 Src/wptKeyEditDlgs.cpp:256
+#: Src/wptKeyEditDlgs.cpp:1144 Src/wptKeyEditDlgs.cpp:1194
+#: Src/wptKeyEditDlgs.cpp:1439 Src/wptKeyEditDlgs.cpp:1459
+#: Src/wptKeyEditDlgs.cpp:1498 Src/wptKeyEditDlgs.cpp:1529
+#: Src/wptKeyEditDlgs.cpp:1596 Src/wptKeyEditDlgs.cpp:1762
+#: Src/wptKeyEditDlgs.cpp:1964 Src/wptKeylist.cpp:421 Src/wptKeylist.cpp:455
+#: Src/wptKeyPropsDlg.cpp:161 Src/wptKeysigDlg.cpp:142
+#: Src/wptKeysigDlg.cpp:207
 msgid "Revoked"
 msgstr "–³Œø‚É‚È‚è‚Ü‚µ‚½"
 
@@ -2555,10 +2562,10 @@
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:886
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1141
 # c:\oss\winpt\src\wptKeysigDlg.cpp:192
-#: Src/wptImportList.cpp:268 Src/wptKeyEditDlgs.cpp:260
-#: Src/wptKeyEditDlgs.cpp:1164 Src/wptKeyEditDlgs.cpp:1384
+#: Src/wptImportList.cpp:268 Src/wptKeyEditDlgs.cpp:258
+#: Src/wptKeyEditDlgs.cpp:1142 Src/wptKeyEditDlgs.cpp:1360
 #: Src/wptKeylist.cpp:423 Src/wptKeylist.cpp:453 Src/wptKeyPropsDlg.cpp:159
-#: Src/wptKeysigDlg.cpp:143 Src/wptKeysigDlg.cpp:215
+#: Src/wptKeysigDlg.cpp:141 Src/wptKeysigDlg.cpp:208
 msgid "Expired"
 msgstr "ŠúŒÀØ‚ê"
 
@@ -2574,7 +2581,7 @@
 
 # c:\oss\winpt\src\wptImportList.cpp:84
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:967
-#: Src/wptImportList.cpp:304 Src/wptKeyEditDlgs.cpp:1226
+#: Src/wptImportList.cpp:304 Src/wptKeyEditDlgs.cpp:1202
 msgid "Invalid user ID"
 msgstr "–³Œø‚ȃ†[ƒU[ID"
 
@@ -2606,7 +2613,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:347 Src/wptKeyEditDlgs.cpp:1098
+#: Src/wptImportList.cpp:347 Src/wptKeyEditDlgs.cpp:1078
 #: Src/wptKeylist.cpp:577 Src/wptKeylist.cpp:585 Src/wptKeyManagerDlg.cpp:876
 #: Src/wptKeyManagerDlg.cpp:967 Src/wptKeyRevokersDlg.cpp:58
 #: Src/wptKeyserverSearchDlg.cpp:56 Src/wptSigList.cpp:57
@@ -2619,8 +2626,8 @@
 # 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:348 Src/wptKeyEditDlgs.cpp:1099
-#: Src/wptKeyEditDlgs.cpp:1195 Src/wptKeylist.cpp:591
+#: Src/wptImportList.cpp:348 Src/wptKeyEditDlgs.cpp:1079
+#: Src/wptKeyEditDlgs.cpp:1173 Src/wptKeylist.cpp:591
 #: Src/wptKeyManagerDlg.cpp:882 Src/wptKeyManagerDlg.cpp:970
 #: Src/wptKeyserverSearchDlg.cpp:57 Src/wptSigList.cpp:56
 msgid "Creation"
@@ -2663,14 +2670,14 @@
 msgstr "ƒL[ƒLƒƒƒbƒVƒ…"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:142
-#: Src/wptKeyEditDlgs.cpp:230 Src/wptKeylist.cpp:388
+#: Src/wptKeyEditDlgs.cpp:228 Src/wptKeylist.cpp:388
 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:245 Src/wptKeyEditDlgs.cpp:1161
+#: Src/wptKeyEditDlgs.cpp:243 Src/wptKeyEditDlgs.cpp:1139
 #: Src/wptKeylist.cpp:243 Src/wptKeylist.cpp:382
 msgid "Never"
 msgstr "‚Í‚¸‚Í‚È‚¢"
@@ -2678,17 +2685,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:262 Src/wptKeyEditDlgs.cpp:1168
+#: Src/wptKeyEditDlgs.cpp:260 Src/wptKeyEditDlgs.cpp:1146
 msgid "OK"
 msgstr "OK"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:186
-#: Src/wptKeyEditDlgs.cpp:284
+#: Src/wptKeyEditDlgs.cpp:282
 msgid "user ID"
 msgstr "ƒ†[ƒU[ID"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:186
-#: Src/wptKeyEditDlgs.cpp:285
+#: Src/wptKeyEditDlgs.cpp:283
 #, c-format
 msgid ""
 "Could not get key information for: \"%s\":\n"
@@ -2696,7 +2703,7 @@
 msgstr "ƒL[‚̏î•ñ‚ðˆÈ‰º‚ɑ΂µ‚ÄŽæ‚èo‚·‚±‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½: \"%s\"%s"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:223
-#: Src/wptKeyEditDlgs.cpp:357
+#: Src/wptKeyEditDlgs.cpp:355
 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 "
@@ -2707,7 +2714,7 @@
 "‚·B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:224
-#: Src/wptKeyEditDlgs.cpp:358
+#: Src/wptKeyEditDlgs.cpp:356
 msgid ""
 "Pick an image to use for your photo ID.\n"
 "The image must be a JPEG file."
@@ -2717,8 +2724,8 @@
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:225
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:320
-#: Src/wptKeyEditDlgs.cpp:359 Src/wptKeyEditDlgs.cpp:447
-#: Src/wptKeysignDlg.cpp:284
+#: Src/wptKeyEditDlgs.cpp:357 Src/wptKeyEditDlgs.cpp:438
+#: Src/wptKeysignDlg.cpp:292
 msgid "Passphrase"
 msgstr "ƒpƒXƒtƒŒ[ƒY"
 
@@ -2727,12 +2734,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:361
+#: Src/wptKeyEditDlgs.cpp:359
 msgid "Add Photo ID"
 msgstr "ƒtƒHƒg‚ð’ljÁ‚·‚é"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:241
-#: Src/wptKeyEditDlgs.cpp:376
+#: Src/wptKeyEditDlgs.cpp:366
 msgid "Select Image File"
 msgstr "‰æ‘œƒtƒ@ƒCƒ‹‚ð‘I‘ð"
 
@@ -2741,25 +2748,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:380 Src/wptKeyEditDlgs.cpp:390
-#: Src/wptKeyEditDlgs.cpp:396 Src/wptKeyEditDlgs.cpp:408
-#: Src/wptKeyEditDlgs.cpp:917
+#: Src/wptKeyEditDlgs.cpp:370 Src/wptKeyEditDlgs.cpp:381
+#: Src/wptKeyEditDlgs.cpp:387 Src/wptKeyEditDlgs.cpp:399
+#: Src/wptKeyEditDlgs.cpp:898
 msgid "Add Photo"
 msgstr "ƒtƒHƒg‚ð’ljÁ‚·‚é"
 
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:141
-#: Src/wptKeyEditDlgs.cpp:381
+#: Src/wptKeyEditDlgs.cpp:371
 #, 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:390 Src/wptKeyRevokeDlg.cpp:173
+#: Src/wptKeyEditDlgs.cpp:380 Src/wptKeyRevokeDlg.cpp:168
 msgid "Please enter a file name."
 msgstr "ƒtƒ@ƒCƒ‹–¼‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:252
-#: Src/wptKeyEditDlgs.cpp:394
+#: Src/wptKeyEditDlgs.cpp:385
 msgid ""
 "The JPEG is really large.\n"
 "Are you sure you want to use it?"
@@ -2768,7 +2775,7 @@
 "Žg—p‚·‚邱‚ƂɊԈႢ‚ª‚ ‚è‚Ü‚¹‚ñ‚©H"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:281
-#: Src/wptKeyEditDlgs.cpp:413
+#: Src/wptKeyEditDlgs.cpp:404
 msgid "Photo successfully added."
 msgstr "ƒtƒHƒg‚ª³‚µ‚­’ljÁ‚³‚ê‚Ü‚µ‚½B"
 
@@ -2787,23 +2794,23 @@
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:167
 # c:\oss\winpt\src\wptOwnertrustDlg.cpp:75
 # c:\oss\winpt\src\wptOwnertrustDlg.cpp:89
-#: Src/wptKeyEditDlgs.cpp:414 Src/wptKeyEditDlgs.cpp:482
-#: Src/wptKeyEditDlgs.cpp:566 Src/wptKeyEditDlgs.cpp:741
-#: Src/wptKeyEditDlgs.cpp:1489 Src/wptKeyEditDlgs.cpp:1561
-#: Src/wptKeyEditDlgs.cpp:1646 Src/wptKeyEditDlgs.cpp:1847
-#: Src/wptKeygenDlg.cpp:488 Src/wptKeygenDlg.cpp:604
-#: Src/wptKeyPropsDlg.cpp:380 Src/wptOwnertrustDlg.cpp:124
-#: Src/wptOwnertrustDlg.cpp:136
+#: Src/wptKeyEditDlgs.cpp:405 Src/wptKeyEditDlgs.cpp:468
+#: Src/wptKeyEditDlgs.cpp:550 Src/wptKeyEditDlgs.cpp:721
+#: Src/wptKeyEditDlgs.cpp:1461 Src/wptKeyEditDlgs.cpp:1531
+#: Src/wptKeyEditDlgs.cpp:1618 Src/wptKeyEditDlgs.cpp:1816
+#: Src/wptKeygenDlg.cpp:494 Src/wptKeygenDlg.cpp:603
+#: Src/wptKeyPropsDlg.cpp:382 Src/wptOwnertrustDlg.cpp:119
+#: Src/wptOwnertrustDlg.cpp:131
 msgid "GnuPG Status"
 msgstr "GnuPG‚̏ó‘Ô"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:318
-#: Src/wptKeyEditDlgs.cpp:445
+#: Src/wptKeyEditDlgs.cpp:436
 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:446
+#: Src/wptKeyEditDlgs.cpp:437
 msgid "Public key"
 msgstr "ŒöŠJŒ®"
 
@@ -2811,8 +2818,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:449 Src/wptKeyEditDlgs.cpp:463
-#: Src/wptKeyEditDlgs.cpp:476 Src/wptKeyEditDlgs.cpp:949
+#: Src/wptKeyEditDlgs.cpp:440 Src/wptKeyEditDlgs.cpp:449
+#: Src/wptKeyEditDlgs.cpp:462 Src/wptKeyEditDlgs.cpp:929
 msgid "Add Revoker"
 msgstr "–³Œø‰»‚«‚Ì‚¤‚ð’ljÁ‚·‚é"
 
@@ -2821,35 +2828,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:463 Src/wptKeyEditDlgs.cpp:1521
-#: Src/wptKeyEditDlgs.cpp:1578 Src/wptKeyEditDlgs.cpp:1623
-#: Src/wptKeyEditDlgs.cpp:1778 Src/wptKeyEditDlgs.cpp:1817
-#: Src/wptKeyEditDlgs.cpp:2003
+#: Src/wptKeyEditDlgs.cpp:449 Src/wptKeyEditDlgs.cpp:1493
+#: Src/wptKeyEditDlgs.cpp:1548 Src/wptKeyEditDlgs.cpp:1592
+#: Src/wptKeyEditDlgs.cpp:1750 Src/wptKeyEditDlgs.cpp:1790
+#: Src/wptKeyEditDlgs.cpp:1960
 msgid "Please select a user ID."
 msgstr "ƒ†[ƒU[ID‚ð‘I‚ñ‚Å‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:363
-#: Src/wptKeyEditDlgs.cpp:481
+#: Src/wptKeyEditDlgs.cpp:467
 msgid "Revoker successfully addded."
 msgstr "–³Œø‰»‚·‚é‚«‚Ì‚¤‚̒ljÁ‚ɐ¬Œ÷‚µ‚Ü‚µ‚½B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:394
-#: Src/wptKeyEditDlgs.cpp:515
+#: Src/wptKeyEditDlgs.cpp:501
 msgid "Add new User ID"
 msgstr "V‚µ‚¢ƒ†[ƒU[ID‚ð’ljÁ‚·‚é"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:396
-#: Src/wptKeyEditDlgs.cpp:517
+#: Src/wptKeyEditDlgs.cpp:503
 msgid "&Email"
 msgstr "“dŽqƒ[ƒ‹(&E)"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:397
-#: Src/wptKeyEditDlgs.cpp:518
+#: Src/wptKeyEditDlgs.cpp:504
 msgid "&Comment"
 msgstr "ƒRƒƒ“ƒg(&C)"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:414
-#: Src/wptKeyEditDlgs.cpp:535
+#: Src/wptKeyEditDlgs.cpp:516
 msgid "Please enter a name (min. 5 chars.)"
 msgstr "–¼‘O‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B(Å’á’·‚³‚T•¶Žš)"
 
@@ -2857,14 +2864,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:536 Src/wptKeyEditDlgs.cpp:542
-#: Src/wptKeyEditDlgs.cpp:547 Src/wptKeyEditDlgs.cpp:551
-#: Src/wptKeyEditDlgs.cpp:564
+#: Src/wptKeyEditDlgs.cpp:517 Src/wptKeyEditDlgs.cpp:523
+#: Src/wptKeyEditDlgs.cpp:529 Src/wptKeyEditDlgs.cpp:534
+#: Src/wptKeyEditDlgs.cpp:548
 msgid "UserID"
 msgstr "ƒ†[ƒU[ID"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:418
-#: Src/wptKeyEditDlgs.cpp:541
+#: Src/wptKeyEditDlgs.cpp:522
 msgid ""
 "Please enter the email address in the email field and not in the name field"
 msgstr ""
@@ -2872,43 +2879,43 @@
 "‚¢B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:423
-#: Src/wptKeyEditDlgs.cpp:547
+#: Src/wptKeyEditDlgs.cpp:529
 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:534
 msgid "Invalid email address."
 msgstr "–³Œø‚ȃ[ƒ‹ƒAƒhƒŒƒXB"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:615
-#: Src/wptKeyEditDlgs.cpp:566
+#: Src/wptKeyEditDlgs.cpp:550
 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:650 Src/wptKeyEditDlgs.cpp:855
+#: Src/wptKeyEditDlgs.cpp:635 Src/wptKeyEditDlgs.cpp:835
 msgid "Add new Subkey"
 msgstr "V‚µ‚¢ƒTƒuƒL[‚ð’ljÁ‚·‚é"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:473
-#: Src/wptKeyEditDlgs.cpp:651
+#: Src/wptKeyEditDlgs.cpp:636
 msgid "Key type"
 msgstr "ƒL[‚ÌŽí—Þ"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:146
-#: Src/wptKeyEditDlgs.cpp:652
+#: Src/wptKeyEditDlgs.cpp:637
 msgid "Size in bits"
 msgstr "ƒrƒbƒg’PˆÊ‚Ì‘å‚«‚³"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:150
-#: Src/wptKeyEditDlgs.cpp:653
+#: Src/wptKeyEditDlgs.cpp:638
 msgid "Key expiration"
 msgstr "ƒL[‚Ì—LŒøŠúŒÀ"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:508
-#: Src/wptKeyEditDlgs.cpp:700
+#: Src/wptKeyEditDlgs.cpp:680
 msgid "Please select one entry."
 msgstr "‘I‘ð€–Ú‚©‚çˆê‚‘I‚ñ‚Å‚­‚¾‚³‚¢B"
 
@@ -2921,18 +2928,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:701 Src/wptKeyEditDlgs.cpp:707
-#: Src/wptKeyEditDlgs.cpp:738 Src/wptKeyEditDlgs.cpp:838
+#: Src/wptKeyEditDlgs.cpp:681 Src/wptKeyEditDlgs.cpp:687
+#: Src/wptKeyEditDlgs.cpp:718 Src/wptKeyEditDlgs.cpp:818
 msgid "Add Subkey"
 msgstr "ƒTƒuƒL[‚ð’ljÁ‚·‚é"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:521
-#: Src/wptKeyEditDlgs.cpp:706
+#: Src/wptKeyEditDlgs.cpp:686
 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:720
 msgid "Subkey successfully added."
 msgstr "ƒTƒuƒL[‚ª³‚µ‚­’ljÁ‚³‚ê‚Ü‚µ‚½B"
 
@@ -2945,10 +2952,10 @@
 # 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:837
-#: Src/wptKeyEditDlgs.cpp:916 Src/wptKeyEditDlgs.cpp:949
-#: Src/wptKeyEditDlgs.cpp:1030 Src/wptKeyEditDlgs.cpp:1373
-#: Src/wptKeyEditDlgs.cpp:1448 Src/wptKeyEditDlgs.cpp:1510
+#: Src/wptKeyEditDlgs.cpp:748 Src/wptKeyEditDlgs.cpp:817
+#: Src/wptKeyEditDlgs.cpp:897 Src/wptKeyEditDlgs.cpp:929
+#: Src/wptKeyEditDlgs.cpp:1010 Src/wptKeyEditDlgs.cpp:1348
+#: Src/wptKeyEditDlgs.cpp:1422 Src/wptKeyEditDlgs.cpp:1482
 #: Src/wptKeyManagerDlg.cpp:1591
 msgid "There is no secret key available!"
 msgstr "”é–§Œ®‚ª‚ ‚è‚Ü‚¹‚ñB"
@@ -2956,29 +2963,29 @@
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:579
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:599
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:613
-#: Src/wptKeyEditDlgs.cpp:769 Src/wptKeyEditDlgs.cpp:788
+#: Src/wptKeyEditDlgs.cpp:749 Src/wptKeyEditDlgs.cpp:768
 msgid "Add user ID"
 msgstr "ƒ†[ƒU[ID‚ð’ljÁ‚·‚é"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1177
-#: Src/wptKeyEditDlgs.cpp:895
+#: Src/wptKeyEditDlgs.cpp:876
 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:984 Src/wptKeyEditOwnertrustDlg.cpp:55
-#: Src/wptKeyPropsDlg.cpp:371
+#: Src/wptKeyEditDlgs.cpp:964 Src/wptKeyEditOwnertrustDlg.cpp:55
+#: Src/wptKeyPropsDlg.cpp:373
 msgid "Change Ownertrust"
 msgstr "Š—LŽÒ‚̐M—Š(ownertrust)‚̕ύX"
 
 # c:\oss\winpt\src\wptKeyManager.cpp:156
-#: Src/wptKeyEditDlgs.cpp:987 Src/wptKeyManager.cpp:220
+#: Src/wptKeyEditDlgs.cpp:967 Src/wptKeyManager.cpp:220
 msgid "Key status changed."
 msgstr "ƒL[‚̏ó‘Ô‚ª•ÏX‚³‚ê‚Ä‚¢‚Ü‚·B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:753
-#: Src/wptKeyEditDlgs.cpp:1036
+#: Src/wptKeyEditDlgs.cpp:1016
 msgid ""
 "Cannot change passphrase because the key\n"
 "is protected with the IDEA encryption algorithm."
@@ -2987,16 +2994,16 @@
 "IDEAˆÃ†‰»ƒAƒ‹ƒSƒŠƒYƒ€‚ŕی삳‚ê‚Ä‚¢‚é‚©‚ç‚Å‚·B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:760
-#: Src/wptKeyEditDlgs.cpp:1043
+#: Src/wptKeyEditDlgs.cpp:1023
 msgid "Current (old) Passphrase"
 msgstr "ƒJƒŒƒ“ƒg(ŒÃ‚¢)ƒpƒXƒtƒŒ[ƒY"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:764
-#: Src/wptKeyEditDlgs.cpp:1047
+#: Src/wptKeyEditDlgs.cpp:1027
 msgid "New Passphrase"
 msgstr "V‚µ‚¢ƒpƒXƒtƒŒ[ƒY"
 
-#: Src/wptKeyEditDlgs.cpp:1054
+#: Src/wptKeyEditDlgs.cpp:1034
 msgid ""
 "Are you sure that you really don't want a passphrase?\n"
 "This is propably a bad idea, still proceed?"
@@ -3005,7 +3012,7 @@
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:771
 # c:\oss\winpt\src\wptKeygenDlg.cpp:250
 # c:\oss\winpt\src\wptPassphraseDlg.cpp:153
-#: Src/wptKeyEditDlgs.cpp:1065 Src/wptPassphraseDlg.cpp:191
+#: Src/wptKeyEditDlgs.cpp:1045 Src/wptPassphraseDlg.cpp:248
 msgid ""
 "The passphrase contains 8-bit characters.\n"
 "It is not suggested to use charset specific characters."
@@ -3014,49 +3021,39 @@
 "'charset' ê—p•¶Žš‚ÌŽg—p‚͐„‘E‚µ‚Ä‚¨‚è‚Ü‚¹‚ñB"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:789
-#: Src/wptKeyEditDlgs.cpp:1079
+#: Src/wptKeyEditDlgs.cpp:1059
 msgid "Change Passwd"
 msgstr "ƒpƒXƒ[ƒh‚̕ύX"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:791
-#: Src/wptKeyEditDlgs.cpp:1081
+#: Src/wptKeyEditDlgs.cpp:1061
 msgid "Passphrase successfully changed."
 msgstr "ƒpƒXƒtƒŒ[ƒY‚̕ύX‚͐³‚µ‚­‚Å‚«‚Ü‚µ‚½B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:806
-#: Src/wptKeyEditDlgs.cpp:1097 Src/wptKeyManagerDlg.cpp:883
+#: Src/wptKeyEditDlgs.cpp:1077 Src/wptKeyManagerDlg.cpp:883
 msgid "Description"
 msgstr "Ú×"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:809
-#: Src/wptKeyEditDlgs.cpp:1100
+#: Src/wptKeyEditDlgs.cpp:1080
 msgid "Expires"
 msgstr "ŠúŒÀØ‚ê‚·‚é"
 
-# c:\oss\winpt\src\wptKeyEditDlgs.cpp:829
-#: Src/wptKeyEditDlgs.cpp:1115
-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:1192 Src/wptKeylist.cpp:580 Src/wptKeylist.cpp:589
+#: Src/wptKeyEditDlgs.cpp:1170 Src/wptKeylist.cpp:580 Src/wptKeylist.cpp:589
 #: Src/wptKeyManagerDlg.cpp:880
 msgid "Validity"
 msgstr "—LŒø«"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:396
-#: Src/wptKeyEditDlgs.cpp:1194
+#: Src/wptKeyEditDlgs.cpp:1172
 msgid "Email"
 msgstr "“dŽqƒ[ƒ‹"
 
-# c:\oss\winpt\src\wptKeyEditDlgs.cpp:932
-#: Src/wptKeyEditDlgs.cpp:1202
-msgid "No user ID(s) found."
-msgstr "ƒ†[ƒU[ID‚ªŒ©‚‚©‚è‚Ü‚¹‚ñ‚Å‚µ‚½B"
-
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1043
-#: Src/wptKeyEditDlgs.cpp:1284
+#: Src/wptKeyEditDlgs.cpp:1260
 #, fuzzy
 msgid ""
 "ADDUID   \t\tadd a user ID\r\n"
@@ -3103,22 +3100,17 @@
 "CLEAN     \t\t•sˆÀ’è‚̏–¼‚ðƒL[‚©‚çŠO‚·\r\n"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1064
-#: Src/wptKeyEditDlgs.cpp:1306
+#: Src/wptKeyEditDlgs.cpp:1282
 msgid "Key Edit Help"
 msgstr "ƒL[•ÒW‚̃wƒ‹ƒv"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1078
-#: Src/wptKeyEditDlgs.cpp:1322
+#: Src/wptKeyEditDlgs.cpp:1298 Src/wptKeyEditDlgs.cpp:1307
 msgid "Primary key can not be deleted!"
 msgstr "ƒvƒ‰ƒCƒ}ƒŠ[ƒL[‚ªíœ‚Å‚«‚Ü‚¹‚ñI"
 
-# c:\oss\winpt\src\wptKeyEditDlgs.cpp:1086
-#: Src/wptKeyEditDlgs.cpp:1330
-msgid "Primary subkey can not be deleted!"
-msgstr "ƒvƒ‰ƒCƒ}ƒŠ[ƒTƒuƒL[‚ªíœ‚Å‚«‚Ü‚¹‚ñI"
-
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1092
-#: Src/wptKeyEditDlgs.cpp:1338
+#: Src/wptKeyEditDlgs.cpp:1315
 #, c-format
 msgid ""
 "\"Subkey %s.\"\n"
@@ -3136,16 +3128,16 @@
 "‚±‚̃TƒuƒL[‚ð–{“–‚ɍ폜‚µ‚Ü‚·‚©H"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1109
-#: Src/wptKeyEditDlgs.cpp:1350
+#: Src/wptKeyEditDlgs.cpp:1325
 msgid "Delete Subkey"
 msgstr "ƒTƒuƒL[‚̍폜"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1113
-#: Src/wptKeyEditDlgs.cpp:1354
+#: Src/wptKeyEditDlgs.cpp:1329
 msgid "Subkey successfully deleted."
 msgstr "ƒTƒuƒL[‚𐳂µ‚­íœ‚³‚ê‚Ü‚µ‚½B"
 
-#: Src/wptKeyEditDlgs.cpp:1385
+#: Src/wptKeyEditDlgs.cpp:1361
 msgid ""
 "Key already expired.\n"
 "\n"
@@ -3158,22 +3150,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:1394 Src/wptKeyEditDlgs.cpp:1397
+#: Src/wptKeyEditDlgs.cpp:1370 Src/wptKeyEditDlgs.cpp:1373
 msgid "Key Expiration Date"
 msgstr "ƒL[‚Ì—LŒøŠúŒÀ"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1173
-#: Src/wptKeyEditDlgs.cpp:1420
+#: Src/wptKeyEditDlgs.cpp:1394
 msgid "Expire Subkey"
 msgstr "ŠúŒÀ‚̐؂ꂽƒTƒuƒL["
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1177
-#: Src/wptKeyEditDlgs.cpp:1426
+#: Src/wptKeyEditDlgs.cpp:1400
 msgid "Subkey expire date successfully set."
 msgstr "ƒTƒuƒL[‚ÌŽ¸Œø“ú‚ª³‚µ‚­Ý’è‚Å‚«‚Ü‚µ‚½B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1206
-#: Src/wptKeyEditDlgs.cpp:1457
+#: Src/wptKeyEditDlgs.cpp:1431
 msgid ""
 "No subkeys were found, if you want to revoke the\n"
 "whole key, please use the Key Manager command directly.\n"
@@ -3186,37 +3178,37 @@
 "‚±‚̃Rƒ}ƒ“ƒh‚̓Vƒ“ƒOƒ‹ƒTƒuƒL[‚݂̂𖳌ø‚É‚·‚邽‚ߎg‚¦‚Ü‚·B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1215
-#: Src/wptKeyEditDlgs.cpp:1466
+#: Src/wptKeyEditDlgs.cpp:1440
 msgid "Key already revoked."
 msgstr "ƒL[‚ªŠù‚É–³Œø‚Æ‚È‚Á‚Ä‚¢‚Ü‚·B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1235
-#: Src/wptKeyEditDlgs.cpp:1485
+#: Src/wptKeyEditDlgs.cpp:1457
 msgid "Revoke Subkey"
 msgstr "ƒTƒuƒL[‚𖳌ø‚·‚é"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1239
-#: Src/wptKeyEditDlgs.cpp:1489
+#: Src/wptKeyEditDlgs.cpp:1461
 msgid "Subkey successfully revoked."
 msgstr "ƒTƒuƒL[‚𐳂µ‚­–³Œø‚É‚µ‚Ü‚µ‚½B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1258
-#: Src/wptKeyEditDlgs.cpp:1511
+#: Src/wptKeyEditDlgs.cpp:1483
 msgid "Revoke user ID"
 msgstr "ƒ†[ƒU[ID‚𖳌ø‚·‚é"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1263
-#: Src/wptKeyEditDlgs.cpp:1516
+#: Src/wptKeyEditDlgs.cpp:1488
 msgid "Key has only one user ID."
 msgstr "ƒL[‚̃†[ƒU[ID‚ª‚ЂƂ‚µ‚©‚ ‚è‚Ü‚¹‚ñB"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1274
-#: Src/wptKeyEditDlgs.cpp:1527
+#: Src/wptKeyEditDlgs.cpp:1499
 msgid "This user ID has been already revoked."
 msgstr "‚±‚̃†[ƒU[ID‚ª–³Œø‚Æ‚È‚Á‚Ä‚¢‚Ü‚·B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1279
-#: Src/wptKeyEditDlgs.cpp:1533
+#: Src/wptKeyEditDlgs.cpp:1505
 #, c-format
 msgid ""
 "user ID \"%s\".\n"
@@ -3228,55 +3220,55 @@
 "‚±‚̃†[ƒU[ID‚ð–{“–‚É–³Œø‚É‚µ‚Ü‚·‚©H"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1258
-#: Src/wptKeyEditDlgs.cpp:1557
+#: Src/wptKeyEditDlgs.cpp:1527
 msgid "Revoke User ID"
 msgstr "ƒ†[ƒU[ID‚𖳌ø‚·‚é"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1305
-#: Src/wptKeyEditDlgs.cpp:1561
+#: Src/wptKeyEditDlgs.cpp:1531
 msgid "User ID successfully revoked"
 msgstr "ƒ†[ƒU[ID‚𖳌ø‚É‚·‚邱‚Æ‚ª¬Œ÷‚µ‚Ü‚µ‚½"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1535
-#: Src/wptKeyEditDlgs.cpp:1603
+#: Src/wptKeyEditDlgs.cpp:1571
 msgid "Could not set user ID preferences"
 msgstr "ƒ†[ƒU[IDƒIƒvƒVƒ‡ƒ“‚ðƒZƒbƒg‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1388
-#: Src/wptKeyEditDlgs.cpp:1643
+#: Src/wptKeyEditDlgs.cpp:1615
 msgid "Primary"
 msgstr "ƒvƒ‰ƒCƒ}ƒŠ["
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1391
-#: Src/wptKeyEditDlgs.cpp:1646
+#: Src/wptKeyEditDlgs.cpp:1618
 msgid "User ID successfully flagged"
 msgstr "ƒ†[ƒU[ID‚ɐ³‚µ‚­ƒtƒ‰ƒO‚ð‚‚¯‚Ü‚µ‚½B"
 
-#: Src/wptKeyEditDlgs.cpp:1740
+#: Src/wptKeyEditDlgs.cpp:1712
 msgid "No preferences available."
 msgstr "ƒJƒXƒ^ƒ€Ý’肪‚ ‚è‚Ü‚¹‚ñB"
 
-#: Src/wptKeyEditDlgs.cpp:1744
+#: Src/wptKeyEditDlgs.cpp:1716
 msgid "MDC feature"
 msgstr "MDC‚«‚Ì‚¤"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:186
-#: Src/wptKeyEditDlgs.cpp:1746
+#: Src/wptKeyEditDlgs.cpp:1718
 msgid "user ID:"
 msgstr "ƒ†[ƒU[IDF"
 
 # c:\oss\winpt\src\wptKeyeditSetPrefDlg.cpp:112
-#: Src/wptKeyEditDlgs.cpp:1747 Src/wptKeyeditSetPrefDlg.cpp:116
+#: Src/wptKeyEditDlgs.cpp:1719 Src/wptKeyeditSetPrefDlg.cpp:116
 msgid "Key Preferences"
 msgstr "ƒL[‚̃JƒXƒ^ƒ€Ý’è"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1411
-#: Src/wptKeyEditDlgs.cpp:1812
+#: Src/wptKeyEditDlgs.cpp:1784
 msgid "Primary user ID can not be deleted!"
 msgstr "ƒvƒ‰ƒCƒ}ƒŠ[ƒ†[ƒU[ID‚ªíœ‚Å‚«‚Ü‚¹‚ñI"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1420
-#: Src/wptKeyEditDlgs.cpp:1823
+#: Src/wptKeyEditDlgs.cpp:1795
 #, c-format
 msgid ""
 "user ID \"%s\".\n"
@@ -3292,30 +3284,31 @@
 "‚±‚̃†[ƒU[ID‚ð–{“–‚ɍ폜‚µ‚Ü‚·‚©H"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1438
-#: Src/wptKeyEditDlgs.cpp:1843
-msgid "Delete user ID"
+#: Src/wptKeyEditDlgs.cpp:1812
+#, fuzzy
+msgid "Delete User ID"
 msgstr "ƒ†[ƒU[ID‚ðíœ‚·‚éB"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1442
-#: Src/wptKeyEditDlgs.cpp:1847
+#: Src/wptKeyEditDlgs.cpp:1816
 msgid "User ID successfully deleted"
 msgstr "ƒ†[ƒU[ID‚𐳂µ‚­íœ‚µ‚Ü‚µ‚½B"
 
-#: Src/wptKeyEditDlgs.cpp:1952 Src/wptKeyEditDlgs.cpp:1970
+#: Src/wptKeyEditDlgs.cpp:1907 Src/wptKeyEditDlgs.cpp:1925
 msgid "Finished to compact key."
 msgstr "ƒL[‚ðƒRƒ“ƒpƒNƒg‚·‚邱‚Æ‚ªŠ®¬‚µ‚Ü‚µ‚½B"
 
 # c:\oss\winpt\src\wptKeyManager.cpp:1064
-#: Src/wptKeyEditDlgs.cpp:2007
+#: Src/wptKeyEditDlgs.cpp:1967
 msgid "Do you really want to make this sig exportable?"
 msgstr "‚±‚̏–¼‚ð–{“–‚ɃGƒLƒXƒ|[ƒg‚Å—ˆ‚é‚à‚Ì‚µ‚Ü‚·‚©H"
 
 # c:\oss\winpt\src\wptKeysignDlg.cpp:325
-#: Src/wptKeyEditDlgs.cpp:2031 Src/wptKeysignDlg.cpp:393
+#: Src/wptKeyEditDlgs.cpp:1998 Src/wptKeysignDlg.cpp:401
 msgid "Key successfully signed."
 msgstr "ƒL[‚ð–¼‚·‚邱‚Ƃɐ¬Œ÷‚µ‚Ü‚µ‚½B"
 
-#: Src/wptKeyEditDlgs.cpp:2094
+#: Src/wptKeyEditDlgs.cpp:2061
 #, c-format
 msgid ""
 "Your keys is listed as a designated revoker for the key\n"
@@ -3327,33 +3320,33 @@
 msgstr ""
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1525
-#: Src/wptKeyEditDlgs.cpp:2142
+#: Src/wptKeyEditDlgs.cpp:2105
 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:2155
+#: Src/wptKeyEditDlgs.cpp:2118
 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:2164
+#: Src/wptKeyEditDlgs.cpp:2127
 msgid "Command>"
 msgstr "ƒRƒ}ƒ“ƒh"
 
 # c:\oss\winpt\src\wptKeyPropsDlg.cpp:115
-#: Src/wptKeyEditDlgs.cpp:2167
+#: Src/wptKeyEditDlgs.cpp:2130
 #, fuzzy
 msgid "&Revoke..."
 msgstr "–³Œø‰»‚«‚Ì‚¤"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1561
-#: Src/wptKeyEditDlgs.cpp:2210
+#: Src/wptKeyEditDlgs.cpp:2173
 msgid "Please select a command."
 msgstr "ƒRƒ}ƒ“ƒh‚ð‘I‚ñ‚Å‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1566
-#: Src/wptKeyEditDlgs.cpp:2214
+#: Src/wptKeyEditDlgs.cpp:2177
 msgid "This command cannot be used with PGP 2 (v3) keys.\n"
 msgstr "‚±‚̃Rƒ}ƒ“ƒh‚Í PGP 2 (v3) ‚̃L[‚ÆŽg‚¦‚Ü‚¹‚ñB\n"
 
@@ -3399,7 +3392,7 @@
 "ƒvƒŠƒ“ƒg‚ƃ`ƒFƒbƒN‚µ‚½‚è‚È‚Ç•û–@‚Å...)H"
 
 # c:\oss\winpt\src\wptKeyEditOwnertrustDlg.cpp:86
-#: Src/wptKeyEditOwnertrustDlg.cpp:88
+#: Src/wptKeyEditOwnertrustDlg.cpp:82
 msgid "Please choose one entry."
 msgstr "“ü—Í‚ð‘I‚ñ‚Å‚­‚¾‚³‚¢B"
 
@@ -3412,16 +3405,16 @@
 # c:\oss\winpt\src\wptOwnertrustDlg.cpp:72
 # c:\oss\winpt\src\wptOwnertrustDlg.cpp:81
 # c:\oss\winpt\src\wptOwnertrustDlg.cpp:86
-#: Src/wptKeyEditOwnertrustDlg.cpp:88 Src/wptKeyEditOwnertrustDlg.cpp:95
-#: Src/wptKeyEditOwnertrustDlg.cpp:104 Src/wptKeyManagerDlg.cpp:938
-#: Src/wptKeyManagerDlg.cpp:1806 Src/wptKeyPropsDlg.cpp:292
-#: Src/wptOwnertrustDlg.cpp:97 Src/wptOwnertrustDlg.cpp:121
-#: Src/wptOwnertrustDlg.cpp:133
+#: Src/wptKeyEditOwnertrustDlg.cpp:83 Src/wptKeyEditOwnertrustDlg.cpp:89
+#: Src/wptKeyEditOwnertrustDlg.cpp:98 Src/wptKeyManagerDlg.cpp:938
+#: Src/wptKeyManagerDlg.cpp:1806 Src/wptKeyPropsDlg.cpp:294
+#: Src/wptOwnertrustDlg.cpp:97 Src/wptOwnertrustDlg.cpp:116
+#: Src/wptOwnertrustDlg.cpp:128
 msgid "Ownertrust"
 msgstr "Š—LŽÒ‚̐M—Š(ownertrust)"
 
 # c:\oss\winpt\src\wptKeyEditOwnertrustDlg.cpp:90
-#: Src/wptKeyEditOwnertrustDlg.cpp:94
+#: Src/wptKeyEditOwnertrustDlg.cpp:88
 msgid "Do you really want to set this key to ultimate trust?"
 msgstr "‚±‚̃L[‚ð–{“–‚ɍō‚M—pŽÒ‚Æ‚µ‚Đݒ肵‚Ü‚·‚©H"
 
@@ -3447,17 +3440,17 @@
 # c:\oss\winpt\src\wptKeygenDlg.cpp:244 c:\oss\winpt\src\wptKeygenDlg.cpp:252
 # c:\oss\winpt\src\wptKeygenDlg.cpp:289 c:\oss\winpt\src\wptKeygenDlg.cpp:311
 # c:\oss\winpt\src\wptKeygenDlg.cpp:392
-#: Src/wptKeygenCBDlg.cpp:85 Src/wptKeygenDlg.cpp:297 Src/wptKeygenDlg.cpp:306
-#: Src/wptKeygenDlg.cpp:369 Src/wptKeygenDlg.cpp:408 Src/wptKeygenDlg.cpp:413
-#: Src/wptKeygenDlg.cpp:418 Src/wptKeygenDlg.cpp:423 Src/wptKeygenDlg.cpp:430
-#: Src/wptKeygenDlg.cpp:438 Src/wptKeygenDlg.cpp:452 Src/wptKeygenDlg.cpp:461
-#: Src/wptKeygenDlg.cpp:485 Src/wptKeygenDlg.cpp:581
-#: Src/wptKeyManagerDlg.cpp:1673 Src/wptPassphraseDlg.cpp:109
+#: Src/wptKeygenCBDlg.cpp:85 Src/wptKeygenDlg.cpp:298 Src/wptKeygenDlg.cpp:307
+#: Src/wptKeygenDlg.cpp:371 Src/wptKeygenDlg.cpp:410 Src/wptKeygenDlg.cpp:415
+#: Src/wptKeygenDlg.cpp:420 Src/wptKeygenDlg.cpp:425 Src/wptKeygenDlg.cpp:432
+#: Src/wptKeygenDlg.cpp:440 Src/wptKeygenDlg.cpp:454 Src/wptKeygenDlg.cpp:461
+#: Src/wptKeygenDlg.cpp:470 Src/wptKeygenDlg.cpp:491 Src/wptKeygenDlg.cpp:583
+#: Src/wptKeyManagerDlg.cpp:1673 Src/wptPassphraseDlg.cpp:145
 msgid "Key Generation"
 msgstr "ƒL[‚̍쐬"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:60
-#: Src/wptKeygenDlg.cpp:285
+#: Src/wptKeygenDlg.cpp:286
 msgid ""
 "It is STRONGLY recommend that you backup your keyrings because they both "
 "contain VERY important data.\n"
@@ -3475,58 +3468,58 @@
 "Ž©•ª‚̃L[ƒŠƒ“ƒO‚ðƒoƒbƒNƒAƒbƒv‚µ‚Ü‚·‚©H"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:65
-#: Src/wptKeygenDlg.cpp:290
+#: Src/wptKeygenDlg.cpp:291
 msgid "WARNING - Important hint"
 msgstr "Œx - d—v‚ȃqƒ“ƒg"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:67
-#: Src/wptKeygenDlg.cpp:292
+#: Src/wptKeygenDlg.cpp:293
 msgid "Destination for Public Keyring"
 msgstr "ŒöŠJƒL[ƒŠƒ“ƒO‚Ì‚ ‚Đæ"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:72 c:\oss\winpt\src\wptKeygenDlg.cpp:80
-#: Src/wptKeygenDlg.cpp:298 Src/wptKeygenDlg.cpp:307
+#: Src/wptKeygenDlg.cpp:299 Src/wptKeygenDlg.cpp:308
 #, c-format
 msgid "Could not copy %s -> %s"
 msgstr "ˆÈ‰º‚ðƒRƒs[‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½ %s -> %s"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:75
-#: Src/wptKeygenDlg.cpp:301
+#: Src/wptKeygenDlg.cpp:302
 msgid "Destination for Secret Keyring"
 msgstr "”é–§ƒL[ƒŠƒ“ƒO‚Ì‚ ‚Đæ"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:95
-#: Src/wptKeygenDlg.cpp:323
+#: Src/wptKeygenDlg.cpp:324
 msgid "DSA and ELG (default)"
 msgstr "DSA ‹y‚Ñ ELG (Šù’è)"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:96
-#: Src/wptKeygenDlg.cpp:324
+#: Src/wptKeygenDlg.cpp:325
 msgid "DSA and RSA"
 msgstr "DSA ‹y‚Ñ RSA"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:97
-#: Src/wptKeygenDlg.cpp:325
+#: Src/wptKeygenDlg.cpp:326
 msgid "DSA sign only"
 msgstr "DSA–¼‚Ì‚Ý"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:98
-#: Src/wptKeygenDlg.cpp:326
+#: Src/wptKeygenDlg.cpp:327
 msgid "RSA sign only"
 msgstr "RSA–¼‚Ì‚Ý"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:99
-#: Src/wptKeygenDlg.cpp:327
+#: Src/wptKeygenDlg.cpp:328
 msgid "RSA sign and encrypt"
 msgstr "RSA –¼‹y‚ш͆‰»"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:100
-#: Src/wptKeygenDlg.cpp:328
+#: Src/wptKeygenDlg.cpp:329
 msgid "RSA and RSA (PGP)"
 msgstr "RSA ‹y‚Ñ RSA (PGP)"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:144
-#: Src/wptKeygenDlg.cpp:371
+#: Src/wptKeygenDlg.cpp:373
 msgid ""
 "NOTE: Key generation can be a lengthy process! Please wait until you get the "
 "message that key generation was finished."
@@ -3535,84 +3528,84 @@
 "ƒZ[ƒW‚ª‚Ђ傤‚¶‚·‚é‚Ü‚Å‚¨‘Ò‚¿‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:146
-#: Src/wptKeygenDlg.cpp:373
+#: Src/wptKeygenDlg.cpp:375
 msgid "Subkey size in &bits"
 msgstr "ƒTƒuƒL[‚̃rƒbƒg’PˆÊ‚Å‚Ì‘å‚«‚³(&B)"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:147
-#: Src/wptKeygenDlg.cpp:374
+#: Src/wptKeygenDlg.cpp:376
 msgid "&Real name"
 msgstr "ŽÀ–¼(&R)"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:153
-#: Src/wptKeygenDlg.cpp:378
+#: Src/wptKeygenDlg.cpp:380
 msgid "Key &type"
 msgstr "ƒL[‚ÌŽí—Þ(&T)"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:189
-#: Src/wptKeygenDlg.cpp:407
+#: Src/wptKeygenDlg.cpp:409
 msgid "Invalid value. Allowed values 1024-4096 bits."
 msgstr "–³Œø‚È’lB—LŒø”͈͂Í1024`4096ƒrƒbƒg‚Å‚·B"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:194
-#: Src/wptKeygenDlg.cpp:412
+#: Src/wptKeygenDlg.cpp:414
 msgid "Do you really need such a large key?"
 msgstr "‚±‚̂悤‚È’·‚¢ƒL[‚ð–{“–‚É‚¢‚è‚Ü‚·‚©H"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:200 c:\oss\winpt\src\wptKeygenDlg.cpp:377
-#: Src/wptKeygenDlg.cpp:418 Src/wptKeygenDlg.cpp:558
+#: Src/wptKeygenDlg.cpp:420 Src/wptKeygenDlg.cpp:560
 msgid "Please enter the name."
 msgstr "–¼‘O‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:382
-#: Src/wptKeygenDlg.cpp:422 Src/wptKeygenDlg.cpp:563
+#: Src/wptKeygenDlg.cpp:424 Src/wptKeygenDlg.cpp:565
 msgid "Please do not enter the email address in the name field."
 msgstr "–¼‘O‚Ì•”•ª‚É“dŽqƒ[ƒ‹ƒAƒhƒŒƒX‚ð“ü‚ê‚È‚¢‚Å‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:205 c:\oss\winpt\src\wptKeygenDlg.cpp:388
-#: Src/wptKeygenDlg.cpp:429 Src/wptKeygenDlg.cpp:570
+#: Src/wptKeygenDlg.cpp:431 Src/wptKeygenDlg.cpp:572
 msgid "Please enter a valid email address."
 msgstr "—LŒø‚È“dŽqƒ[ƒ‹ƒAƒhƒŒƒX‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:211
-#: Src/wptKeygenDlg.cpp:437
+#: Src/wptKeygenDlg.cpp:439
 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:460 Src/wptKeyRevokeDlg.cpp:181
+#: Src/wptKeygenDlg.cpp:469 Src/wptKeyRevokeDlg.cpp:176
 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:488 Src/wptKeygenDlg.cpp:604
+#: Src/wptKeygenDlg.cpp:494 Src/wptKeygenDlg.cpp:603
 msgid "Key Generation completed"
 msgstr "ƒL[‚̍쐬‚ªŠ®—¹‚µ‚Ü‚µ‚½B"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:354
-#: Src/wptKeygenDlg.cpp:531
+#: Src/wptKeygenDlg.cpp:537
 msgid "&Prefer RSA keys"
 msgstr "RSAƒL[‚ð—Dæ‚·‚é(&P)"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:355
-#: Src/wptKeygenDlg.cpp:532
+#: Src/wptKeygenDlg.cpp:538
 msgid "Real name:"
 msgstr "³Ž®–¼"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:356
-#: Src/wptKeygenDlg.cpp:533
+#: Src/wptKeygenDlg.cpp:539
 msgid "Email address:"
 msgstr "ƒ[ƒ‹ƒAƒhƒŒƒXF"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:357
-#: Src/wptKeygenDlg.cpp:534
+#: Src/wptKeygenDlg.cpp:540
 msgid "Name and E-Mail Assignment"
 msgstr "–¼‘O‚ƃ[ƒ‹‚ÌŽw’è"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:358
-#: Src/wptKeygenDlg.cpp:535
+#: Src/wptKeygenDlg.cpp:541
 msgid ""
 "Every key pair must have a name associated with it. The name and\n"
 "email address let your correspondents that your public key they are\n"
@@ -3623,7 +3616,7 @@
 "Ž„‚½‚¿‚Ì‚à‚Ì‚Å‚ ‚邱‚Æ‚ð”FŽ¯‚µ‚Ü‚·B"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:359
-#: Src/wptKeygenDlg.cpp:536
+#: Src/wptKeygenDlg.cpp:542
 msgid ""
 "By accosiating an email address with your key pair, you will enable WinPT to "
 "assist your correspondents in selecting the correct public\n"
@@ -3636,19 +3629,19 @@
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:1057
 # c:\oss\winpt\src\wptKeygenDlg.cpp:378 c:\oss\winpt\src\wptKeygenDlg.cpp:383
 # c:\oss\winpt\src\wptKeygenDlg.cpp:389 c:\oss\winpt\src\wptKeygenDlg.cpp:413
-#: Src/wptKeygenDlg.cpp:537 Src/wptKeygenDlg.cpp:559 Src/wptKeygenDlg.cpp:564
-#: Src/wptKeygenDlg.cpp:571 Src/wptKeygenDlg.cpp:577 Src/wptKeygenDlg.cpp:600
+#: Src/wptKeygenDlg.cpp:543 Src/wptKeygenDlg.cpp:561 Src/wptKeygenDlg.cpp:566
+#: Src/wptKeygenDlg.cpp:573 Src/wptKeygenDlg.cpp:579 Src/wptKeygenDlg.cpp:599
 #: Src/wptKeyManagerDlg.cpp:1696
 msgid "Key Generation Wizard"
 msgstr "ƒL[ì¬‚̃EƒBƒU[ƒh"
 
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:571
-#: Src/wptKeygenDlg.cpp:539
+#: Src/wptKeygenDlg.cpp:545
 msgid "E&xpert"
 msgstr "ƒGƒNƒXƒp[ƒg(&E)"
 
 # c:\oss\winpt\src\wptGroupsDlg.cpp:65
-#: Src/wptKeygenDlg.cpp:576
+#: Src/wptKeygenDlg.cpp:578
 msgid "Please do not add '<' or '>' to the email address."
 msgstr "“dŽqƒ[ƒ‹ƒAƒhƒŒƒX‚É'<' ‚Ü‚½‚Í '>'‚ð’ljÁ‚È‚¢‚Å‚­‚¾‚³‚¢B"
 
@@ -4134,7 +4127,7 @@
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:579
 # c:\oss\winpt\src\wptKeysigDlg.cpp:334
 #: Src/wptKeyManagerDlg.cpp:956 Src/wptKeyManagerDlg.cpp:992
-#: Src/wptKeysigDlg.cpp:425
+#: Src/wptKeysigDlg.cpp:419
 msgid "&Properties"
 msgstr "‘®«(&P)"
 
@@ -4364,10 +4357,10 @@
 # c:\oss\winpt\src\wptKeysignDlg.cpp:318
 # c:\oss\winpt\src\wptKeysignDlg.cpp:320
 # c:\oss\winpt\src\wptKeysignDlg.cpp:322
-#: Src/wptKeyManagerDlg.cpp:1567 Src/wptKeysignDlg.cpp:259
-#: Src/wptKeysignDlg.cpp:274 Src/wptKeysignDlg.cpp:354
-#: Src/wptKeysignDlg.cpp:369 Src/wptKeysignDlg.cpp:386
-#: Src/wptKeysignDlg.cpp:391 Src/wptKeysignDlg.cpp:393
+#: Src/wptKeyManagerDlg.cpp:1567 Src/wptKeysignDlg.cpp:282
+#: Src/wptKeysignDlg.cpp:296 Src/wptKeysignDlg.cpp:358
+#: Src/wptKeysignDlg.cpp:374 Src/wptKeysignDlg.cpp:391
+#: Src/wptKeysignDlg.cpp:396 Src/wptKeysignDlg.cpp:401
 msgid "Key Signing"
 msgstr "ƒL[‚ð–¼‚·‚é"
 
@@ -4384,9 +4377,9 @@
 # c:\oss\winpt\src\wptKeyRevokeDlg.cpp:140
 # c:\oss\winpt\src\wptKeyRevokeDlg.cpp:151
 #: Src/wptKeyManagerDlg.cpp:1597 Src/wptKeyRevokeDlg.cpp:70
-#: Src/wptKeyRevokeDlg.cpp:80 Src/wptKeyRevokeDlg.cpp:169
-#: Src/wptKeyRevokeDlg.cpp:174 Src/wptKeyRevokeDlg.cpp:182
-#: Src/wptKeyRevokeDlg.cpp:191 Src/wptKeyRevokeDlg.cpp:196
+#: Src/wptKeyRevokeDlg.cpp:80 Src/wptKeyRevokeDlg.cpp:164
+#: Src/wptKeyRevokeDlg.cpp:169 Src/wptKeyRevokeDlg.cpp:177
+#: Src/wptKeyRevokeDlg.cpp:186 Src/wptKeyRevokeDlg.cpp:192
 msgid "Key Revocation Cert"
 msgstr "ƒL[‚Ì–³Œø‰»Ø–¾‘"
 
@@ -4402,7 +4395,7 @@
 
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:992
 # c:\oss\winpt\src\wptKeyPropsDlg.cpp:113
-#: Src/wptKeyManagerDlg.cpp:1641 Src/wptKeyPropsDlg.cpp:288
+#: Src/wptKeyManagerDlg.cpp:1641 Src/wptKeyPropsDlg.cpp:290
 msgid "Key Properties"
 msgstr "ƒL[‚Ì‘®«"
 
@@ -4422,7 +4415,7 @@
 
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:1065
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:298
-#: Src/wptKeyManagerDlg.cpp:1704 Src/wptKeyserverDlg.cpp:568
+#: Src/wptKeyManagerDlg.cpp:1704 Src/wptKeyserverDlg.cpp:576
 msgid "Keyserver Access"
 msgstr "ƒL[ƒT[ƒo[‚̃AƒNƒZƒX"
 
@@ -4489,12 +4482,18 @@
 msgid "Unknown"
 msgstr "–³–¼"
 
-#: Src/wptKeyPropsDlg.cpp:211
+# c:\oss\winpt\src\wptKeyManager.cpp:444
+#: Src/wptKeyPropsDlg.cpp:165
+#, fuzzy
+msgid "Invalid"
+msgstr "–³Œø‚ÈURLB"
+
+#: Src/wptKeyPropsDlg.cpp:213
 #, c-format
 msgid "Card-Type: %s\r\n"
 msgstr "ƒJ[ƒhƒ^ƒCƒv: %s\r\n"
 
-#: Src/wptKeyPropsDlg.cpp:250
+#: Src/wptKeyPropsDlg.cpp:252
 #, fuzzy, c-format
 msgid ""
 "Type: %s\r\n"
@@ -4518,26 +4517,26 @@
 "%s\r\n"
 
 # c:\oss\winpt\src\wptKeyPropsDlg.cpp:114
-#: Src/wptKeyPropsDlg.cpp:289
+#: Src/wptKeyPropsDlg.cpp:291
 msgid "&Change"
 msgstr "•ÏX(&C)"
 
 # c:\oss\winpt\src\wptKeyPropsDlg.cpp:115
-#: Src/wptKeyPropsDlg.cpp:290
+#: Src/wptKeyPropsDlg.cpp:292
 msgid "&Revokers"
 msgstr "–³Œø‰»‚«‚Ì‚¤(&R)"
 
 # c:\oss\winpt\src\wptKeyPropsDlg.cpp:116
-#: Src/wptKeyPropsDlg.cpp:291
+#: Src/wptKeyPropsDlg.cpp:293
 msgid "Change &Password"
 msgstr "ƒpƒXƒ[ƒh‚̕ύX(&P)"
 
-#: Src/wptKeyPropsDlg.cpp:298
+#: Src/wptKeyPropsDlg.cpp:300
 msgid "Photo-ID not validated."
 msgstr "ƒtƒHƒgID—LŒø‚³‚ê‚Ä‚¢‚Ü‚¹‚ñB"
 
 # c:\oss\winpt\src\wptKeyPropsDlg.cpp:171
-#: Src/wptKeyPropsDlg.cpp:355
+#: Src/wptKeyPropsDlg.cpp:357
 msgid ""
 "The status of this key is 'revoked' or 'expired'.\n"
 "You cannot change the ownertrust of such keys."
@@ -4546,7 +4545,7 @@
 "‚±‚ê‚ç‚̃L[‚̏Š—LŽÒ‚̐M—Š(ownertrust)‚ð•ÏX‚Å‚«‚Ü‚¹‚ñB"
 
 # c:\oss\winpt\src\wptKeyPropsDlg.cpp:177
-#: Src/wptKeyPropsDlg.cpp:361
+#: Src/wptKeyPropsDlg.cpp:363
 msgid ""
 "This is a non-valid key.\n"
 "Modifying the ownertrust has no effect on such keys.\n"
@@ -4558,12 +4557,12 @@
 "–{“–‚ÉŒp‘±‚µ‚Ü‚·‚©H"
 
 # c:\oss\winpt\src\wptKeyPropsDlg.cpp:208
-#: Src/wptKeyPropsDlg.cpp:379
+#: Src/wptKeyPropsDlg.cpp:381
 msgid "Ownertrust successfully changed."
 msgstr "Š—LŽÒ‚̐M—Š(ownertrust)‚͐³‚µ‚­•ÏX‚µ‚Ü‚µ‚½B"
 
 # c:\oss\winpt\src\wptKeyPropsDlg.cpp:226
-#: Src/wptKeyPropsDlg.cpp:392 Src/wptKeyRevokersDlg.cpp:162
+#: Src/wptKeyPropsDlg.cpp:394 Src/wptKeyRevokersDlg.cpp:160
 msgid "Key Revokers"
 msgstr "ƒL[‚𖳌ø‰»‚«‚Ì‚¤"
 
@@ -4598,17 +4597,17 @@
 "‚ª‚Å‚«‚Ü‚·I"
 
 # c:\oss\winpt\src\wptKeyRevokeDlg.cpp:98
-#: Src/wptKeyRevokeDlg.cpp:159
+#: Src/wptKeyRevokeDlg.cpp:154
 msgid "Choose File to save the Certificate"
 msgstr "Ø–¾‘‚ð•Û‘¶‚·‚éƒtƒ@ƒCƒ‹‚ð‘I‘ð‚·‚é"
 
 # c:\oss\winpt\src\wptKeyRevokeDlg.cpp:107
-#: Src/wptKeyRevokeDlg.cpp:168
+#: Src/wptKeyRevokeDlg.cpp:163
 msgid "Please select a reason."
 msgstr "——R‚ð‘I‚ñ‚Å‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptKeyRevokeDlg.cpp:148
-#: Src/wptKeyRevokeDlg.cpp:195
+#: Src/wptKeyRevokeDlg.cpp:191
 msgid "Revocation certificate generated."
 msgstr "–³Œø‰»Ø–¾‘‚ªì¬‚³‚ê‚Ü‚µ‚½B"
 
@@ -4619,59 +4618,59 @@
 msgstr "ƒAƒ‹ƒSƒŠƒYƒ€"
 
 # c:\oss\winpt\src\wptKeyRevokersDlg.cpp:122
-#: Src/wptKeyRevokersDlg.cpp:121 Src/wptKeyRevokersDlg.cpp:176
+#: Src/wptKeyRevokersDlg.cpp:121 Src/wptKeyRevokersDlg.cpp:174
 msgid "Designated Key Revokers"
 msgstr "Žw’è‚̃L[‚𖳌ø‰»‚«‚Ì‚¤"
 
 # c:\oss\winpt\src\wptKeyRevokersDlg.cpp:122
-#: Src/wptKeyRevokersDlg.cpp:161
+#: Src/wptKeyRevokersDlg.cpp:159
 msgid "Designated Revoker Keys"
 msgstr "Žw’è‚Ì–³Œø‰»‚·‚éƒL["
 
 # c:\oss\winpt\src\wptKeyRevokersDlg.cpp:123
-#: Src/wptKeyRevokersDlg.cpp:177
+#: Src/wptKeyRevokersDlg.cpp:175
 #, fuzzy, c-format
 msgid "Do you want to retrieve %s via the default keyserver?"
 msgstr "‹K’èƒL[ƒT[ƒo[Œo—R‚Å 0x%s ‚ðŽæ‚èo‚µ‚½‚¢‚Å‚·‚©H"
 
-#: Src/wptKeyserver.cpp:401
+#: Src/wptKeyserver.cpp:402
 msgid "Network unreachable"
 msgstr ""
 
-#: Src/wptKeyserver.cpp:404
+#: Src/wptKeyserver.cpp:405
 #, fuzzy
 msgid "Host unreachable"
 msgstr "ƒzƒXƒg"
 
 # c:\oss\winpt\src\wptErrors.cpp:84
-#: Src/wptKeyserver.cpp:407
+#: Src/wptKeyserver.cpp:408
 #, fuzzy
 msgid "Could not resolve host name"
 msgstr "ƒzƒXƒg–¼‚ð‘ÅŠJ‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
-#: Src/wptKeyserver.cpp:410
+#: Src/wptKeyserver.cpp:411
 msgid "Connection refused"
 msgstr ""
 
-#: Src/wptKeyserver.cpp:414
+#: Src/wptKeyserver.cpp:415
 msgid "Connection timeout"
 msgstr ""
 
-#: Src/wptKeyserver.cpp:418
+#: Src/wptKeyserver.cpp:419
 msgid "Connection resetted by peer"
 msgstr ""
 
-#: Src/wptKeyserver.cpp:421
+#: Src/wptKeyserver.cpp:422
 msgid "Socket has been shutdown"
 msgstr ""
 
 # c:\oss\winpt\src\wptPreferencesDlg.cpp:221
-#: Src/wptKeyserver.cpp:599
+#: Src/wptKeyserver.cpp:600
 msgid "Could not save keyserver.conf file"
 msgstr "keyserver.confƒtƒ@ƒCƒ‹‚ð•Û‘¶‚·‚邱‚Æ‚ªo—ˆ‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
 # c:\oss\winpt\src\wptKeyserver.cpp:436
-#: Src/wptKeyserver.cpp:644
+#: Src/wptKeyserver.cpp:645
 msgid ""
 "Invalid proxy configuration.You need to set a user and a passwordto use "
 "proxy authentication!"
@@ -4680,12 +4679,12 @@
 "ƒvƒƒNƒV[‚Ì”FØI"
 
 # c:\oss\winpt\src\wptKeyserver.cpp:438
-#: Src/wptKeyserver.cpp:647
+#: Src/wptKeyserver.cpp:648
 msgid "Proxy Error"
 msgstr "ƒvƒƒNƒV[ƒGƒ‰["
 
 # c:\oss\winpt\src\wptKeyserver.cpp:462
-#: Src/wptKeyserver.cpp:672
+#: Src/wptKeyserver.cpp:673
 msgid ""
 "All entries of this file must have a valid prefix.\n"
 "Currently HKP/HTTP, LDAP and FINGER are supported.\n"
@@ -4708,27 +4707,27 @@
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:420
 # c:\oss\winpt\src\wptKeyserverSearchDlg.cpp:72
 # c:\oss\winpt\src\wptKeyserverSearchDlg.cpp:115
-#: Src/wptKeyserver.cpp:674
+#: Src/wptKeyserver.cpp:675
 msgid "Keyserver Error"
 msgstr "ƒL[ƒT[ƒo[ƒGƒ‰["
 
 # c:\oss\winpt\src\wptKeyserver.cpp:473
-#: Src/wptKeyserver.cpp:693
+#: Src/wptKeyserver.cpp:694
 msgid "The keyserver limit is exceeded"
 msgstr "ƒL[ƒT[ƒo[‚̐§ŒÀ‚ª’´‚¦‚Ä‚¢‚Ü‚·B"
 
 # c:\oss\winpt\src\wptKeyserverSearchDlg.cpp:59
-#: Src/wptKeyserver.cpp:694
+#: Src/wptKeyserver.cpp:695
 msgid "Keyserver Warning"
 msgstr "ƒL[ƒT[ƒo[Œx"
 
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:89
-#: Src/wptKeyserverDlg.cpp:101
+#: Src/wptKeyserverDlg.cpp:103
 #, c-format
 msgid "Key '%s' successfully sent"
 msgstr "'%s' ƒL[‚Ì‘—M‚ª¬Œ÷‚µ‚Ü‚µ‚½B"
 
-#: Src/wptKeyserverDlg.cpp:135
+#: Src/wptKeyserverDlg.cpp:137
 msgid ""
 "WARNING: multiple keys matched request.\n"
 "\n"
@@ -4737,12 +4736,12 @@
 "\n"
 
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:161
-#: Src/wptKeyserverDlg.cpp:140
+#: Src/wptKeyserverDlg.cpp:142
 msgid "Key(s) successfully received but nothing was changed."
 msgstr "ƒL[‚ÌŽóM‚ɐ¬Œ÷‚µ‚Ü‚µ‚½‚ªA‚Å‚à‰½‚à•Ï‚í‚Á‚Ä‚¢‚Ü‚¹‚ñB"
 
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:166
-#: Src/wptKeyserverDlg.cpp:142
+#: Src/wptKeyserverDlg.cpp:144
 msgid "Key(s) sucessfully received and imported."
 msgstr "ƒL[‚ÌŽóM‚ª¬Œ÷‚µAƒCƒ“ƒ|[ƒg‚³‚ê‚Ü‚µ‚½B"
 
@@ -4757,12 +4756,12 @@
 # c:\oss\winpt\src\wptImportList.cpp:220
 # c:\oss\winpt\src\wptKeyManager.cpp:516
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:150
-#: Src/wptKeyserverDlg.cpp:158
+#: Src/wptKeyserverDlg.cpp:160
 msgid "Imported Keys"
 msgstr "ƒCƒ“ƒ|[ƒg‚µ‚½ƒL["
 
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:116
-#: Src/wptKeyserverDlg.cpp:184
+#: Src/wptKeyserverDlg.cpp:186
 msgid ""
 "LDAP key import failed.\n"
 "Please make sure you have an online connection and gpgkeys_ldap.exe is "
@@ -4773,36 +4772,36 @@
 "”F‚µ‚Ä‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:127
-#: Src/wptKeyserverDlg.cpp:196
+#: Src/wptKeyserverDlg.cpp:198
 #, c-format
 msgid "Finger key import failed: %s\n"
 msgstr "FINGERƒL[‚̃Cƒ“ƒ|[ƒg‚ÉŽ¸”s‚µ‚Ü‚µ‚½: %s\n"
 
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:141
-#: Src/wptKeyserverDlg.cpp:210
+#: Src/wptKeyserverDlg.cpp:212
 msgid "This is not a valid OpenPGP key."
 msgstr "‚±‚ê‚Í—LŒø‚ÈOpenPGPƒL[‚Å‚Í‚ ‚è‚Ü‚¹‚ñB"
 
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:261
-#: Src/wptKeyserverDlg.cpp:352
+#: Src/wptKeyserverDlg.cpp:360
 msgid "Please select one of the servers."
 msgstr "ˆê‚‚̃T[ƒo[‚ð‘I‚ñ‚Å‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:266
-#: Src/wptKeyserverDlg.cpp:357
+#: Src/wptKeyserverDlg.cpp:365
 msgid "Only HTTP keyserver can be used."
 msgstr "HTTPƒT[ƒo[ƒL[‚Ì‚Ý‚ªŽg—p‚©‚Ì‚¤‚Å‚·B"
 
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:289
-#: Src/wptKeyserverDlg.cpp:374
+#: Src/wptKeyserverDlg.cpp:382
 msgid "DNS Name"
 msgstr "DNS–¼"
 
-#: Src/wptKeyserverDlg.cpp:375
+#: Src/wptKeyserverDlg.cpp:383
 msgid "Port"
 msgstr "ƒ|[ƒg"
 
-#: Src/wptKeyserverDlg.cpp:459
+#: Src/wptKeyserverDlg.cpp:467
 msgid "No space for new keyserver entry"
 msgstr "V‚µ‚¢ƒL[ƒT[ƒo[‚ÌŽQ‰Á‚É—]—T‚ª‚ ‚è‚Ü‚¹‚ñB"
 
@@ -4821,12 +4820,12 @@
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:420
 # c:\oss\winpt\src\wptKeyserverSearchDlg.cpp:72
 # c:\oss\winpt\src\wptKeyserverSearchDlg.cpp:115
-#: Src/wptKeyserverDlg.cpp:480
+#: Src/wptKeyserverDlg.cpp:488
 msgid "HKP Keyserver"
 msgstr "HKPƒL[ƒT[ƒo["
 
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:411
-#: Src/wptKeyserverDlg.cpp:481
+#: Src/wptKeyserverDlg.cpp:489
 msgid "LDAP Keyserver"
 msgstr "LDAPƒL[ƒT[ƒo["
 
@@ -4845,7 +4844,7 @@
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:420
 # c:\oss\winpt\src\wptKeyserverSearchDlg.cpp:72
 # c:\oss\winpt\src\wptKeyserverSearchDlg.cpp:115
-#: Src/wptKeyserverDlg.cpp:482
+#: Src/wptKeyserverDlg.cpp:490
 msgid "Finger Keyserver"
 msgstr "ƒtƒBƒ“ƒK[ƒL[ƒT[ƒo["
 
@@ -4864,74 +4863,74 @@
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:420
 # c:\oss\winpt\src\wptKeyserverSearchDlg.cpp:72
 # c:\oss\winpt\src\wptKeyserverSearchDlg.cpp:115
-#: Src/wptKeyserverDlg.cpp:507 Src/wptKeyserverDlg.cpp:724
-#: Src/wptKeyserverDlg.cpp:744
+#: Src/wptKeyserverDlg.cpp:515 Src/wptKeyserverDlg.cpp:732
+#: Src/wptKeyserverDlg.cpp:752
 msgid "Edit Keyserver"
 msgstr "ƒL[ƒT[ƒo[•ÒW"
 
-#: Src/wptKeyserverDlg.cpp:508 Src/wptKeyserverDlg.cpp:600
+#: Src/wptKeyserverDlg.cpp:516 Src/wptKeyserverDlg.cpp:608
 msgid "&Add"
 msgstr "’ljÁ(&A)"
 
 # c:\oss\winpt\src\wptImportList.cpp:135 c:\oss\winpt\src\wptKeylist.cpp:50
-#: Src/wptKeyserverDlg.cpp:510
+#: Src/wptKeyserverDlg.cpp:518
 msgid "Type:"
 msgstr "Ží—Þ"
 
-#: Src/wptKeyserverDlg.cpp:511
+#: Src/wptKeyserverDlg.cpp:519
 msgid "Port:"
 msgstr "ƒ|[ƒg"
 
-#: Src/wptKeyserverDlg.cpp:512
+#: Src/wptKeyserverDlg.cpp:520
 msgid "Host name:"
 msgstr "ƒzƒXƒg"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:200 c:\oss\winpt\src\wptKeygenDlg.cpp:377
-#: Src/wptKeyserverDlg.cpp:520
+#: Src/wptKeyserverDlg.cpp:528
 msgid "Please enter a host name"
 msgstr "ƒzƒXƒg–¼‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B"
 
-#: Src/wptKeyserverDlg.cpp:525
+#: Src/wptKeyserverDlg.cpp:533
 msgid "Invalid port, valid numbers are < 65535"
 msgstr "–³Œø‚ȃ|[ƒgB—LŒø‚È’l‚Í <65535 ‚Å‚·B"
 
 # c:\oss\winpt\src\wptKeyserverSearchDlg.cpp:61
-#: Src/wptKeyserverDlg.cpp:569 Src/wptKeyserverSearchDlg.cpp:65
+#: Src/wptKeyserverDlg.cpp:577 Src/wptKeyserverSearchDlg.cpp:65
 msgid "&Receive"
 msgstr "ŽóM(&R)"
 
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:300
-#: Src/wptKeyserverDlg.cpp:571
+#: Src/wptKeyserverDlg.cpp:579
 msgid "Send key (default is receiving)"
 msgstr "ƒL[‚𑗐M‚·‚é(‹K’è‚ÍŽóM‚·‚邱‚Æ‚Å‚·)"
 
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:302
-#: Src/wptKeyserverDlg.cpp:573
+#: Src/wptKeyserverDlg.cpp:581
 msgid "Please enter the key ID or email address you search for"
 msgstr "ŒŸõ‚·‚é‚à‚̂̃L[ID‚Ü‚½‚Í“dŽqƒ[ƒ‹ƒAƒhƒŒƒX‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:304
-#: Src/wptKeyserverDlg.cpp:574
+#: Src/wptKeyserverDlg.cpp:582
 msgid "&Search"
 msgstr "ŒŸõ(&S)"
 
 # c:\oss\winpt\src\wptKeyPropsDlg.cpp:114
-#: Src/wptKeyserverDlg.cpp:575
+#: Src/wptKeyserverDlg.cpp:583
 msgid "C&hange proxy"
 msgstr "ƒvƒƒNƒV[•ÏX(&C)"
 
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:291
-#: Src/wptKeyserverDlg.cpp:576
+#: Src/wptKeyserverDlg.cpp:584
 msgid "Set &default"
 msgstr "‹K’èÝ’è(&D)"
 
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:576
-#: Src/wptKeyserverDlg.cpp:601
+#: Src/wptKeyserverDlg.cpp:609
 msgid "&Remove"
 msgstr "Žæ‚菜‚­(&R)"
 
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:573
-#: Src/wptKeyserverDlg.cpp:602
+#: Src/wptKeyserverDlg.cpp:610
 msgid "&Edit"
 msgstr "•ÒW(&E)"
 
@@ -4939,38 +4938,38 @@
 # c:\oss\winpt\src\wptProxySettingsDlg.cpp:52
 # c:\oss\winpt\src\wptProxySettingsDlg.cpp:57
 # c:\oss\winpt\src\wptProxySettingsDlg.cpp:61
-#: Src/wptKeyserverDlg.cpp:636 Src/wptProxySettingsDlg.cpp:69
-#: Src/wptProxySettingsDlg.cpp:79 Src/wptProxySettingsDlg.cpp:84
-#: Src/wptProxySettingsDlg.cpp:91 Src/wptProxySettingsDlg.cpp:96
-#: Src/wptProxySettingsDlg.cpp:101 Src/wptProxySettingsDlg.cpp:157
-#: Src/wptProxySettingsDlg.cpp:197
+#: Src/wptKeyserverDlg.cpp:644 Src/wptProxySettingsDlg.cpp:73
+#: Src/wptProxySettingsDlg.cpp:83 Src/wptProxySettingsDlg.cpp:88
+#: Src/wptProxySettingsDlg.cpp:95 Src/wptProxySettingsDlg.cpp:100
+#: Src/wptProxySettingsDlg.cpp:105 Src/wptProxySettingsDlg.cpp:164
+#: Src/wptProxySettingsDlg.cpp:199
 msgid "Proxy Settings"
 msgstr "ƒvƒƒNƒV[Ý’è"
 
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:381
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:407
-#: Src/wptKeyserverDlg.cpp:644 Src/wptKeyserverDlg.cpp:685
+#: Src/wptKeyserverDlg.cpp:652 Src/wptKeyserverDlg.cpp:693
 msgid "Please enter the search pattern."
 msgstr "ŒŸõƒpƒ^[ƒ“‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:370
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:395
-#: Src/wptKeyserverDlg.cpp:669
+#: Src/wptKeyserverDlg.cpp:677
 msgid "Please select one of the keyservers."
 msgstr "ˆê‚‚̃L[ƒT[ƒo[‚ð‘I‚ñ‚Å‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:411
-#: Src/wptKeyserverDlg.cpp:690
+#: Src/wptKeyserverDlg.cpp:698
 msgid "Only keyids are allowed."
 msgstr "ƒL[ID‚Ì‚Ý‚ªŽg—p‚©‚Ì‚¤‚Å‚·B"
 
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:416
-#: Src/wptKeyserverDlg.cpp:696
+#: Src/wptKeyserverDlg.cpp:704
 msgid "Only enter the name of the user."
 msgstr "ƒ†[ƒU[‚Ì–¼‘O‚¾‚¯‚ð“ü—Í‚·‚é"
 
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:420
-#: Src/wptKeyserverDlg.cpp:702
+#: Src/wptKeyserverDlg.cpp:710
 msgid "Only email addresses or keyids are allowed."
 msgstr "ƒ[ƒ‹ƒAƒhƒŒƒX‚Ü‚½‚̓L[ID‚Ì‚Ý‚ÍŽg—p‚©‚Ì‚¤‚Å‚·B"
 
@@ -5004,7 +5003,7 @@
 "–{“–‚ÉŒp‘±‚µ‚Ü‚·‚©H"
 
 # c:\oss\winpt\src\wptKeysigDlg.cpp:82
-#: Src/wptKeysigDlg.cpp:94
+#: Src/wptKeysigDlg.cpp:95
 #, c-format
 msgid ""
 "Are you really sure you want to delete this %s from\n"
@@ -5015,39 +5014,33 @@
 "  \"%s\""
 
 # c:\oss\winpt\src\wptFileManager.cpp:1019
-#: Src/wptKeysigDlg.cpp:95
+#: Src/wptKeysigDlg.cpp:96
 msgid "self signature"
 msgstr "Ž©ŒÈ–¼"
 
 # c:\oss\winpt\src\wptFileManager.cpp:1019
-#: Src/wptKeysigDlg.cpp:95
+#: Src/wptKeysigDlg.cpp:96
 msgid "signature"
 msgstr "–¼"
 
 # c:\oss\winpt\src\wptFileManager.cpp:1019
-#: Src/wptKeysigDlg.cpp:130
+#: Src/wptKeysigDlg.cpp:131
 #, c-format
 msgid "%s %s signature"
 msgstr "%s %s –¼"
 
-# c:\oss\winpt\src\wptKeyManagerDlg.cpp:992
-# c:\oss\winpt\src\wptKeyPropsDlg.cpp:113
-#: Src/wptKeysigDlg.cpp:140 Src/wptKeysigDlg.cpp:216
-msgid "Signature Properties"
-msgstr "–¼‚Ì‘®«"
-
 # c:\oss\winpt\src\wptKeysigDlg.cpp:189
-#: Src/wptKeysigDlg.cpp:141 Src/wptKeysigDlg.cpp:166 Src/wptKeysigDlg.cpp:212
+#: Src/wptKeysigDlg.cpp:139 Src/wptKeysigDlg.cpp:163 Src/wptKeysigDlg.cpp:205
 msgid "Exportable"
 msgstr "ƒGƒLƒXƒ|[ƒg‚Å‚«‚é‚à‚Ì"
 
 # c:\oss\winpt\src\wptKeysigDlg.cpp:190
-#: Src/wptKeysigDlg.cpp:142 Src/wptKeysigDlg.cpp:213
+#: Src/wptKeysigDlg.cpp:140 Src/wptKeysigDlg.cpp:206
 msgid "Non-revocably"
 msgstr "–³Œø‚ɏo—ˆ‚È‚¢‚æ"
 
 # c:\oss\winpt\src\wptSigList.cpp:43
-#: Src/wptKeysigDlg.cpp:145 Src/wptSigList.cpp:55
+#: Src/wptKeysigDlg.cpp:143 Src/wptSigList.cpp:55
 msgid "Class"
 msgstr "ƒNƒ‰ƒX"
 
@@ -5056,87 +5049,93 @@
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:886
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1141
 # c:\oss\winpt\src\wptKeysigDlg.cpp:192
-#: Src/wptKeysigDlg.cpp:146
+#: Src/wptKeysigDlg.cpp:144
 msgid "Expire date"
 msgstr "—LŒøŠúŒÀ"
 
 # c:\oss\winpt\src\wptImportList.cpp:55
-#: Src/wptKeysigDlg.cpp:147
+#: Src/wptKeysigDlg.cpp:145
 msgid "Issuer key"
 msgstr "”­sŽÒƒL["
 
 # c:\oss\winpt\src\wptImportList.cpp:55
-#: Src/wptKeysigDlg.cpp:148
+#: Src/wptKeysigDlg.cpp:146
 msgid "Issuer key ID"
 msgstr "”­sŽÒƒL[ID"
 
 # c:\oss\winpt\src\wptClipVerifyDlg.cpp:135
-#: Src/wptKeysigDlg.cpp:149
+#: Src/wptKeysigDlg.cpp:147
 #, fuzzy
 msgid "Policy URL"
 msgstr "ƒ|ƒŠƒV[URL:"
 
+# c:\oss\winpt\src\wptKeyManagerDlg.cpp:992
+# c:\oss\winpt\src\wptKeyPropsDlg.cpp:113
+#: Src/wptKeysigDlg.cpp:148 Src/wptKeysigDlg.cpp:209
+msgid "Signature Properties"
+msgstr "–¼‚Ì‘®«"
+
 # c:\oss\winpt\src\wptKeysigDlg.cpp:189
-#: Src/wptKeysigDlg.cpp:166
+#: Src/wptKeysigDlg.cpp:163
 msgid "Non-exportable"
 msgstr "ƒGƒLƒXƒ|[ƒg‚Å‚«‚È‚¢‚à‚Ì"
 
 # c:\oss\winpt\src\wptSigList.cpp:118
-#: Src/wptKeysigDlg.cpp:178 Src/wptSigList.cpp:153
+#: Src/wptKeysigDlg.cpp:176 Src/wptSigList.cpp:153
 msgid "  user ID not found"
 msgstr "ƒ†[ƒU[ID‚ªŒ©‚‚©‚è‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
 # c:\oss\winpt\src\wptKeysigDlg.cpp:396
-#: Src/wptKeysigDlg.cpp:313
+#: Src/wptKeysigDlg.cpp:308
 msgid "Really receive all missing keys?"
 msgstr "‚·‚ׂĂ̎¸‚Á‚½ƒL[‚ð–{“–‚ÉŽóM‚µ‚Ü‚·‚©H"
 
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:579
 # c:\oss\winpt\src\wptKeysigDlg.cpp:334
-#: Src/wptKeysigDlg.cpp:347 Src/wptSigTreeDlg.cpp:112
+#: Src/wptKeysigDlg.cpp:342 Src/wptSigTreeDlg.cpp:115
 msgid "Signature &Properties"
 msgstr "–¼‚Ì‘®«(&P)"
 
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:992
 # c:\oss\winpt\src\wptKeyPropsDlg.cpp:113
-#: Src/wptKeysigDlg.cpp:348
+#: Src/wptKeysigDlg.cpp:343
 msgid "Signing &Key Properties"
 msgstr "ƒL[‚Ì‘®«‚ð–¼‚·‚é(&K)"
 
 # c:\oss\winpt\src\wptKeysigDlg.cpp:301
-#: Src/wptKeysigDlg.cpp:386
+#: Src/wptKeysigDlg.cpp:380
 msgid "Key not found in keyring, do you want to fetch it from the keyserver?"
 msgstr "ƒL[‚ªƒL[ƒŠƒ“ƒO‚É‚ ‚è‚Ü‚¹‚ñBƒL[ƒT[ƒo[‚æ‚èŽóM‚³‚ê‚Ü‚·‚©H"
 
-#: Src/wptKeysigDlg.cpp:397
+#: Src/wptKeysigDlg.cpp:391
 msgid "Key not found in keyring."
 msgstr "ƒL[‚ªƒL[ƒŠƒ“ƒO‚É‚ ‚è‚Ü‚¹‚ñB"
 
 # c:\oss\winpt\src\wptKeysigDlg.cpp:330
-#: Src/wptKeysigDlg.cpp:422
+#: Src/wptKeysigDlg.cpp:416
 #, c-format
 msgid "Signature List for \"%s\""
 msgstr "–¼ˆê——‚Ђ傤\"%s\"—p"
 
 # c:\oss\winpt\src\wptKeysigDlg.cpp:333
-#: Src/wptKeysigDlg.cpp:424
+#: Src/wptKeysigDlg.cpp:418
 msgid "&Receive Key"
 msgstr "ƒL[‚ðŽóM‚·‚é(&R)"
 
 # c:\oss\winpt\src\wptFileManager.cpp:1026
-#: Src/wptKeysignDlg.cpp:72
+#: Src/wptKeysignDlg.cpp:73
 #, fuzzy, c-format
 msgid "%d-bit %s key, ID 0x%s"
 msgstr "%s ƒL[ID‚ðŽg—p 0x%s"
 
 # c:\oss\winpt\src\wptKeysignDlg.cpp:152
 # c:\oss\winpt\src\wptKeysignDlg.cpp:266
-#: Src/wptKeysignDlg.cpp:167 Src/wptKeysignDlg.cpp:337
+#: Src/wptKeysignDlg.cpp:170 Src/wptKeysignDlg.cpp:341
 msgid "Choose Signature Class"
 msgstr "–¼ƒNƒ‰ƒX‚ð‘I‘ð‚·‚é"
 
 # c:\oss\winpt\src\wptKeysignDlg.cpp:153
-#: Src/wptKeysignDlg.cpp:168
+#: Src/wptKeysignDlg.cpp:172
 msgid ""
 "How carefully have you verified the key you are about to sign actually "
 "belongs to the person? If you don't know what to anwser, use \"0\"."
@@ -5145,34 +5144,34 @@
 "‚ð”»‚ç‚È‚¢ê‡‚͈ȉº‚ðŽg—p‚µ‚ĉº‚³‚¢B\"0\""
 
 # c:\oss\winpt\src\wptKeysignDlg.cpp:154
-#: Src/wptKeysignDlg.cpp:169
+#: Src/wptKeysignDlg.cpp:174
 msgid "(0) I will not answer (default)"
 msgstr "(0)‚Í•ÔŽ–‚ð‚µ‚Ü‚¹‚ñ(‹K’è)"
 
 # c:\oss\winpt\src\wptKeysignDlg.cpp:155
-#: Src/wptKeysignDlg.cpp:170
+#: Src/wptKeysignDlg.cpp:176
 msgid "(1) I have not checked at all."
 msgstr "(1) ‚Ü‚Á‚½‚­ƒ`ƒFƒbƒN‚µ‚Ä‚¢‚Ü‚¹‚ñB"
 
 # c:\oss\winpt\src\wptKeysignDlg.cpp:156
-#: Src/wptKeysignDlg.cpp:171
+#: Src/wptKeysignDlg.cpp:178
 msgid "(2) I have done causal checking."
 msgstr "(2) ‚³‚è‚°‚È‚­ƒ`ƒFƒbƒN‚µ‚Ä‚¢‚Ü‚·B"
 
 # c:\oss\winpt\src\wptKeysignDlg.cpp:157
-#: Src/wptKeysignDlg.cpp:172
+#: Src/wptKeysignDlg.cpp:180
 msgid "(3) I have done very careful checkings."
 msgstr "(3) Td‚Ƀ`ƒFƒbƒN‚µ‚Ä‚¢‚Ü‚·B"
 
 # 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/wptKeysignDlg.cpp:211
+#: Src/wptKeysignDlg.cpp:219
 msgid "never"
 msgstr "‚Í‚¸‚Í‚È‚¢"
 
 # c:\oss\winpt\src\wptKeysignDlg.cpp:214
-#: Src/wptKeysignDlg.cpp:262
+#: Src/wptKeysignDlg.cpp:270
 #, c-format
 msgid ""
 "pub %d/%s  created: %s    expires: %s\n"
@@ -5194,52 +5193,52 @@
 "‚±‚̃L[‚ðŽ©•ª‚̃L[‚Æ–{“–‚ɏ–¼‚µ‚Ü‚·‚©H\n"
 
 # c:\oss\winpt\src\wptKeysignDlg.cpp:226
-#: Src/wptKeysignDlg.cpp:274
+#: Src/wptKeysignDlg.cpp:282
 msgid "No valid secret key found."
 msgstr "—LŒø‚Ȕ閧Œ®‚ªŒ©‚‚©‚è‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
 # c:\oss\winpt\src\wptKeysignDlg.cpp:231
-#: Src/wptKeysignDlg.cpp:280
+#: Src/wptKeysignDlg.cpp:288
 msgid "Sign local only (non exportable signature)"
 msgstr "ƒ[ƒJƒ‹—pƒVƒOƒjƒ`ƒƒ[(ƒGƒLƒXƒ|[ƒg‚Å‚«‚È‚¢ƒVƒOƒjƒ`ƒƒ[)"
 
 # c:\oss\winpt\src\wptKeysignDlg.cpp:232
-#: Src/wptKeysignDlg.cpp:281
+#: Src/wptKeysignDlg.cpp:289
 msgid "Signature expires on"
 msgstr "–¼‚Ì—LŒøŠúŒÀ‚Í"
 
 # c:\oss\winpt\src\wptKeysignDlg.cpp:233
-#: Src/wptKeysignDlg.cpp:282
+#: Src/wptKeysignDlg.cpp:290
 msgid "Sign non-revocably"
 msgstr "–³Œø‰»‚Å‚«‚È‚¢‚悤‚ɏ–¼‚·‚é"
 
-#: Src/wptKeysignDlg.cpp:283
+#: Src/wptKeysignDlg.cpp:291
 msgid "&Ask for certification level"
 msgstr "–¼‚·‚郌ƒxƒ‹‚ð—v‹‚·‚é(&A)"
 
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:765
-#: Src/wptKeysignDlg.cpp:286
+#: Src/wptKeysignDlg.cpp:294
 msgid "&Show photo"
 msgstr "ƒtƒHƒg‚ðŒ©‚¹‚é(&S)"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:155
-#: Src/wptKeysignDlg.cpp:287 Src/wptPassphraseCB.cpp:96
-#: Src/wptPassphraseCB.cpp:102 Src/wptPassphraseDlg.cpp:68
-#: Src/wptPINDlg.cpp:54
+#: Src/wptKeysignDlg.cpp:295 Src/wptPassphraseCB.cpp:96
+#: Src/wptPassphraseCB.cpp:102 Src/wptPassphraseDlg.cpp:101
+#: Src/wptPINDlg.cpp:53
 msgid "&Hide Typing"
 msgstr "“ü—Í‚ð‰B‚·(&H)"
 
-#: Src/wptKeysignDlg.cpp:353
+#: Src/wptKeysignDlg.cpp:357
 msgid "You cannot select today as the expiration date."
 msgstr "¡“ú‚Ì“ú•t‚ð—LŒøŠúŒÀ“ú‚Æ‚µ‚Ä‘I‘ð‚Å‚«‚Ü‚¹‚ñB"
 
 # c:\oss\winpt\src\wptKeysignDlg.cpp:288
-#: Src/wptKeysignDlg.cpp:369
+#: Src/wptKeysignDlg.cpp:374
 msgid "Could not get Key ID from key."
 msgstr "ƒL[‚ÌID‚ðƒL[‚©‚çŽæ‚èo‚·‚±‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
 # c:\oss\winpt\src\wptKeysignDlg.cpp:318
-#: Src/wptKeysignDlg.cpp:390
+#: Src/wptKeysignDlg.cpp:395
 msgid "This key is already signed by your key"
 msgstr "ƒL[‚ª‚ ‚È‚½‚̃L[‚ÆŠù‚ɏ–¼‚µ‚Ä‚¢‚Ü‚·B"
 
@@ -5268,60 +5267,60 @@
 
 # c:\oss\winpt\src\wptMainProc.cpp:265
 # c:\oss\winpt\src\wptTextInputDlg.cpp:76
-#: Src/wptMainProc.cpp:254 Src/wptTextInputDlg.cpp:78
+#: Src/wptMainProc.cpp:254 Src/wptTextInputDlg.cpp:79
 msgid "Text Input"
 msgstr "ƒeƒLƒXƒg“ü—Í"
 
 # c:\oss\winpt\src\wptMainProc.cpp:284
-#: Src/wptMainProc.cpp:273
+#: Src/wptMainProc.cpp:275
 msgid "Unknown OpenPGP type."
 msgstr "–¢’m‚ÌOpenPGPƒ^ƒCƒv"
 
 # c:\oss\winpt\src\wptMainProc.cpp:336
-#: Src/wptMainProc.cpp:350
+#: Src/wptMainProc.cpp:352
 msgid "Could not set current window mode hooks."
 msgstr ""
 "Œ»Ý‚̃EƒBƒ“ƒhƒ‚[ƒh‚ɃtƒbƒNƒXuhooksv‚ðƒZƒbƒg‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
 # c:\oss\winpt\src\wptMainProc.cpp:398
-#: Src/wptMainProc.cpp:409
+#: Src/wptMainProc.cpp:411
 msgid "Edit Clipboard"
 msgstr "ƒNƒŠƒbƒvƒ{[ƒh‚̕ҏW"
 
 # c:\oss\winpt\src\wptMainProc.cpp:399
-#: Src/wptMainProc.cpp:410
+#: Src/wptMainProc.cpp:412
 msgid "About..."
 msgstr "WinPT‚ɂ‚¢‚Ä..."
 
 # c:\oss\winpt\src\wptMainProc.cpp:405 c:\oss\winpt\src\wptMainProc.cpp:409
-#: Src/wptMainProc.cpp:416 Src/wptMainProc.cpp:420
+#: Src/wptMainProc.cpp:418 Src/wptMainProc.cpp:422
 msgid "Decrypt/Verify"
 msgstr "•œ†/Šm”F"
 
-#: Src/wptMainProc.cpp:430
+#: Src/wptMainProc.cpp:432
 msgid "Current Window"
 msgstr "Œ»Ý‚̃EƒBƒ“ƒhƒE"
 
 # c:\oss\winpt\src\wptMainProc.cpp:465
-#: Src/wptMainProc.cpp:486
+#: Src/wptMainProc.cpp:488
 msgid "Remove all passphrases from cache?"
 msgstr "‚·‚ׂẴpƒXƒtƒŒ[ƒY‚ðƒLƒƒƒbƒVƒ…‚©‚çŠO‚¹‚Ü‚·B"
 
 # c:\oss\winpt\src\wptClipImportDlg.cpp:112
 # c:\oss\winpt\src\wptMainProc.cpp:466 c:\oss\winpt\src\wptProgressDlg.cpp:98
 # c:\oss\winpt\src\wptRegistry.cpp:133
-#: Src/wptMainProc.cpp:487 Src/wptProgressDlg.cpp:122 Src/wptRegistry.cpp:198
+#: Src/wptMainProc.cpp:489 Src/wptProgressDlg.cpp:122 Src/wptRegistry.cpp:198
 msgid "WinPT"
 msgstr "WinPT"
 
 # c:\oss\winpt\src\wptMainProc.cpp:476
-#: Src/wptMainProc.cpp:497
+#: Src/wptMainProc.cpp:499
 msgid "Could not access public keyring, exit WinPT?"
 msgstr ""
 "ŒöŠJƒL[ƒŠƒ“ƒO‚ðƒAƒNƒZƒX‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½BWinPT‚ðI—¹‚µ‚Ü‚·‚©H"
 
 # c:\oss\winpt\src\wptMainProc.cpp:510
-#: Src/wptMainProc.cpp:530
+#: Src/wptMainProc.cpp:532
 #, c-format
 msgid ""
 "Make sure that the window contains text.\n"
@@ -5332,7 +5331,7 @@
 
 # c:\oss\winpt\src\wptMainProc.cpp:566
 # c:\oss\winpt\src\wptPreferencesDlg.cpp:121
-#: Src/wptMainProc.cpp:584 Src/wptPreferencesDlg.cpp:139
+#: Src/wptMainProc.cpp:586 Src/wptPreferencesDlg.cpp:139
 msgid "WinPT Preferences"
 msgstr "WinPTƒJƒXƒ^ƒ€Ý’è"
 
@@ -5347,30 +5346,31 @@
 msgstr "ƒ[ƒ‹‚𑗐M‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
 # c:\oss\winpt\src\wptMDSumDlg.cpp:52
-#: Src/wptMDSumDlg.cpp:103
+#: Src/wptMDSumDlg.cpp:111
 msgid "Digest"
 msgstr "ƒ_ƒCƒWƒFƒXƒg"
 
 # c:\oss\winpt\src\wptClipEditDlg.cpp:49 c:\oss\winpt\src\wptGPGOptDlg.cpp:48
-#: Src/wptMDSumDlg.cpp:121
+#: Src/wptMDSumDlg.cpp:129
 msgid "&Save..."
 msgstr "•Û‘¶...(&S)"
 
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:762
-#: Src/wptMDSumDlg.cpp:123
+#: Src/wptMDSumDlg.cpp:131
 msgid "Save to clipboard"
 msgstr "ƒNƒŠƒbƒvƒ{[ƒh‚É•Û‘¶‚·‚é"
 
-#: Src/wptMDSumDlg.cpp:124
+#: Src/wptMDSumDlg.cpp:132
 msgid "Print Message Digest"
 msgstr "ƒƒbƒZ[ƒWƒ_ƒCƒWƒFƒXƒg‚ðˆóü‚·‚éB"
 
-#: Src/wptMDSumDlg.cpp:177
-msgid "Select file to save checksums"
+#: Src/wptMDSumDlg.cpp:180
+#, fuzzy
+msgid "Select File to Save Checksums"
 msgstr "ƒ`ƒFƒbƒNƒTƒ€‚ð•Û‘¶‚·‚邽‚߂̃tƒ@ƒCƒ‹‚ð‘I‘ð‚·‚é"
 
 # c:\oss\winpt\src\wptKeyManager.cpp:360
-#: Src/wptMDSumDlg.cpp:182
+#: Src/wptMDSumDlg.cpp:185
 #, c-format
 msgid "Checksums successfully saved in '%s'"
 msgstr "ƒ`ƒFƒbƒNƒTƒ€‚𐳂µ‚­'%s'‚É•Û‘¶‚·‚邱‚Æ‚ªo—ˆ‚Ü‚µ‚½B"
@@ -5386,22 +5386,24 @@
 "‘¶‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B’l‚ªƒL[ƒŠƒ“ƒO‚É•Û‘¶‚³‚ê‚È‚¢‚½‚߁A‘å•Ï—LŒø‚Å‚·B"
 
 # c:\oss\winpt\src\wptFileManager.cpp:963
-#: Src/wptOwnertrustDlg.cpp:116
-msgid "Select file name for output"
+#: Src/wptOwnertrustDlg.cpp:111
+#, fuzzy
+msgid "Select File Name for Output"
 msgstr "o—̓tƒ@ƒCƒ‹–¼‚ð‘I‘ð‚·‚é"
 
 # c:\oss\winpt\src\wptOwnertrustDlg.cpp:75
-#: Src/wptOwnertrustDlg.cpp:124
+#: Src/wptOwnertrustDlg.cpp:119
 msgid "Ownertrust successfully exported."
 msgstr "Š—LŽÒ‚̐M—Š(ownertrust)‚̃GƒLƒXƒ|[ƒg‚ɐ¬Œ÷‚µ‚Ü‚µ‚½B"
 
 # c:\oss\winpt\src\wptFileManager.cpp:963
-#: Src/wptOwnertrustDlg.cpp:128
-msgid "Select file name for input"
+#: Src/wptOwnertrustDlg.cpp:123
+#, fuzzy
+msgid "Select File Name for Input"
 msgstr "“ü—̓tƒ@ƒCƒ‹–¼‚ð‘I‘ð‚·‚é"
 
 # c:\oss\winpt\src\wptOwnertrustDlg.cpp:89
-#: Src/wptOwnertrustDlg.cpp:136
+#: Src/wptOwnertrustDlg.cpp:131
 msgid "Ownertrust succefully imported."
 msgstr "Š—LŽÒ‚̐M—Š(ownertrust)‚̃Cƒ“ƒ|[ƒg‚ɐ¬Œ÷‚µ‚Ü‚µ‚½B"
 
@@ -5470,27 +5472,27 @@
 "ƒJ[ƒhF %s"
 
 # c:\oss\winpt\src\wptPassphraseDlg.cpp:56
-#: Src/wptPassphraseDlg.cpp:60 Src/wptPassphraseDlg.cpp:99
+#: Src/wptPassphraseDlg.cpp:89 Src/wptPassphraseDlg.cpp:135
 msgid "Passphrase Dialog"
 msgstr "ƒpƒXƒtƒŒ[ƒYƒ_ƒCƒ„ƒƒO"
 
 # c:\oss\winpt\src\wptPassphraseDlg.cpp:62
-#: Src/wptPassphraseDlg.cpp:65
+#: Src/wptPassphraseDlg.cpp:94
 msgid "Repeat Passphrase"
 msgstr "ƒpƒXƒtƒŒ[ƒY‚ðÄ“x“ü—Í‚·‚é"
 
 # c:\oss\winpt\src\wptPassphraseDlg.cpp:64
-#: Src/wptPassphraseDlg.cpp:67
+#: Src/wptPassphraseDlg.cpp:96
 msgid "Enter Passphrase"
 msgstr "ƒpƒXƒtƒŒ[ƒY‚ð“ü—Í‚·‚é"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:260
-#: Src/wptPassphraseDlg.cpp:99
+#: Src/wptPassphraseDlg.cpp:134
 msgid "Please enter a passphrase."
 msgstr "ƒpƒXƒtƒŒ[ƒY‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:227
-#: Src/wptPassphraseDlg.cpp:106
+#: Src/wptPassphraseDlg.cpp:142
 msgid ""
 "Your passphrase should be at least 8 characters long\n"
 "and should contain non-alphabetic characters.\n"
@@ -5679,63 +5681,63 @@
 msgstr "isƒXƒŒƒbƒh‚ðì¬‚»‚邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:427
-#: Src/wptProxySettingsDlg.cpp:69
+#: Src/wptProxySettingsDlg.cpp:73
 msgid "Invalid host/IP address."
 msgstr "–³Œø‚ȃzƒXƒg‚Ü‚½‚ÍIPƒAƒhƒŒƒXB"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:200 c:\oss\winpt\src\wptKeygenDlg.cpp:377
-#: Src/wptProxySettingsDlg.cpp:78
+#: Src/wptProxySettingsDlg.cpp:82
 msgid "Please enter the proxy hostname."
 msgstr "ƒvƒƒNƒV[ƒzƒXƒg–¼‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptImportList.cpp:84
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:967
-#: Src/wptProxySettingsDlg.cpp:84
+#: Src/wptProxySettingsDlg.cpp:88
 msgid "Invalid port number."
 msgstr "–³Œø‚ȃ|[ƒg”ԍ†"
 
 # c:\oss\winpt\src\wptProxySettingsDlg.cpp:52
-#: Src/wptProxySettingsDlg.cpp:90
+#: Src/wptProxySettingsDlg.cpp:94
 msgid "Please select a value from 0-65535 for the port"
 msgstr "‚O`‚U‚T‚T‚R‚T‚͈̔͂̒l‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptProxySettingsDlg.cpp:56
-#: Src/wptProxySettingsDlg.cpp:95
+#: Src/wptProxySettingsDlg.cpp:99
 msgid "When you want to use authentication, please fill out both fields."
 msgstr "”FØ‚ðŽg—p‚·‚éê‡‚́A—¼•û‚̃tƒB[ƒ‹ƒh‚ðŽg‚Á‚Ä‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptProxySettingsDlg.cpp:61
-#: Src/wptProxySettingsDlg.cpp:100
+#: Src/wptProxySettingsDlg.cpp:104
 msgid "Please enter a host name and a port."
 msgstr "ƒzƒXƒg–¼‚ƃ|[ƒg‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B"
 
-#: Src/wptProxySettingsDlg.cpp:151
+#: Src/wptProxySettingsDlg.cpp:158
 msgid "Proxy host name or IP address"
 msgstr "ƒvƒƒbƒNƒV[ƒzƒXƒg–¼‚Ü‚½‚ÍIPƒAƒhƒŒƒX"
 
-#: Src/wptProxySettingsDlg.cpp:152
+#: Src/wptProxySettingsDlg.cpp:159
 msgid "Server requires &authentication"
 msgstr "ƒT[ƒo[‚É”FØ‚ª•K—v‚Å‚·(&A)"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:147
-#: Src/wptProxySettingsDlg.cpp:153
+#: Src/wptProxySettingsDlg.cpp:160
 msgid "User name"
 msgstr "ƒ†[ƒU[–¼"
 
-#: Src/wptProxySettingsDlg.cpp:154
+#: Src/wptProxySettingsDlg.cpp:161
 msgid "Password"
 msgstr "ƒpƒXƒ[ƒh"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:473
-#: Src/wptProxySettingsDlg.cpp:155
+#: Src/wptProxySettingsDlg.cpp:162
 msgid "Proxy type"
 msgstr "ƒvƒƒNƒV[‚ÌŽí—Þ"
 
-#: Src/wptProxySettingsDlg.cpp:156
+#: Src/wptProxySettingsDlg.cpp:163
 msgid "Authentication"
 msgstr "”FØ"
 
-#: Src/wptProxySettingsDlg.cpp:196
+#: Src/wptProxySettingsDlg.cpp:198
 msgid "Please fill out all required fields for authentication."
 msgstr "”FØ‚·‚邽‚É‚ß‘S€–Ú‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B"
 
@@ -5795,13 +5797,13 @@
 msgstr "ŠúŒÀ"
 
 # c:\oss\winpt\src\wptKeysigDlg.cpp:330
-#: Src/wptSigTreeDlg.cpp:160
+#: Src/wptSigTreeDlg.cpp:164
 #, c-format
 msgid "Signature Tree for \"%s\" (0x%s)"
 msgstr "ˆÈ‰º—p‚̏–¼ƒcƒŠ[\"%s\" (0x%s)"
 
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:573
-#: Src/wptSigTreeDlg.cpp:162
+#: Src/wptSigTreeDlg.cpp:166
 msgid "Edit..."
 msgstr "•ÒW..."
 
@@ -5816,7 +5818,7 @@
 msgstr "ƒf[ƒ^‚̓Rƒs[‚·‚é‚Ì‚É‘å‚«‚·‚¬‚Ü‚·B"
 
 # c:\oss\winpt\src\wptTextInputDlg.cpp:80
-#: Src/wptTextInputDlg.cpp:81
+#: Src/wptTextInputDlg.cpp:83
 msgid "Enter the text that was signed"
 msgstr "–¼‚µ‚½ƒeƒLƒXƒg‚ð“ü—Í‚·‚é"
 
@@ -5847,6 +5849,18 @@
 msgid "Signed"
 msgstr "–¼‚µ‚Ü‚µ‚½"
 
+# c:\oss\winpt\src\wptKeyEditDlgs.cpp:829
+#~ msgid "No subkey(s) found."
+#~ msgstr "ƒTƒuƒL[‚ªŒ©‚‚©‚è‚Ü‚¹‚ñB"
+
+# c:\oss\winpt\src\wptKeyEditDlgs.cpp:932
+#~ msgid "No user ID(s) found."
+#~ msgstr "ƒ†[ƒU[ID‚ªŒ©‚‚©‚è‚Ü‚¹‚ñ‚Å‚µ‚½B"
+
+# c:\oss\winpt\src\wptKeyEditDlgs.cpp:1086
+#~ msgid "Primary subkey can not be deleted!"
+#~ msgstr "ƒvƒ‰ƒCƒ}ƒŠ[ƒTƒuƒL[‚ªíœ‚Å‚«‚Ü‚¹‚ñI"
+
 # c:\oss\winpt\src\wptClipDecryptDlg.cpp:187
 #~ msgid "WinPT Verify"
 #~ msgstr "WinPT Šm”F"

Modified: trunk/Src/ChangeLog
===================================================================
--- trunk/Src/ChangeLog	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/Src/ChangeLog	2006-06-06 13:37:59 UTC (rev 225)
@@ -1,3 +1,31 @@
+2006-06-06  Timo Schulz  <ts at g10code.de>
+
+	* wptKeyEditCB.cpp (cmd_sign_handler): Return 0 by default
+	if no expire date were given.
+	
+2006-06-05  Timo Schulz  <ts at g10code.de>
+
+	* wptPassphraseDlg.cpp (request_passphrase): Release mem
+	in case of errors.
+	(request_key_passphrase): New.
+	(set_passphrase_hint): New.
+	* wptKeyEditDlgs.cpp (do_editkey_sign_userid): Show passphrase
+	hint. Suggested by vedaal.
+	
+2006-06-03  Timo Schulz  <ts at g10code.de>
+
+	* wptPINDlg.cpp (pin_dlg_proc): Remove static var.
+	* wptClipEncryptDlg.cpp (show_invalid_recipients): Handle
+	the case that 'encrypt-to' points to a non-existing item.
+	* wptKeyRevokeDlg.cpp (key_revoke_dlg_proc): Do not close
+	the dialog if an error occurred.
+	* wptKeygenDlg.cpp (keygn_dlg_proc): Check expirate date.
+	* wptKeyEditDlgs.cpp (keyedit_adduid_dlg_proc): Release mem
+	in case of errors.
+	* wptKeyserverDlg.cpp (check_pattern): Improved code.
+	(keyserver_dlg_proc): All comparisons are case insentensive.
+	* wptKeyserver.cpp (parse_uid_record): utf8 decode user id.
+	
 2006-06-02  Timo Schulz  <ts at g10code.de>
 
 	* wptKeygenDlg.cpp (keygen_dlg_proc): Forgot to apply patch.

Modified: trunk/Src/WinPT-en.rc
===================================================================
--- trunk/Src/WinPT-en.rc	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/Src/WinPT-en.rc	2006-06-06 13:37:59 UTC (rev 225)
@@ -484,10 +484,10 @@
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,109,112,10
     CONTROL         "Sign &non-revocably",IDC_KEYSIGN_NREV,"Button",
                     BS_AUTOCHECKBOX | WS_TABSTOP,5,122,100,10
-    COMBOBOX        IDC_KEYSIGN_KEYLIST,5,137,192,49,CBS_DROPDOWNLIST | 
+    COMBOBOX        IDC_KEYSIGN_KEYLIST,5,137,219,49,CBS_DROPDOWNLIST | 
                     WS_VSCROLL | WS_TABSTOP
     LTEXT           "Passphrase",IDC_KEYSIGN_PWDINF,5,155,44,8
-    EDITTEXT        IDC_KEYSIGN_PASSPHRASE,53,153,144,13,ES_PASSWORD | 
+    EDITTEXT        IDC_KEYSIGN_PASSPHRASE,53,153,170,13,ES_PASSWORD | 
                     ES_AUTOHSCROLL
     CONTROL         "&Hide typing",IDC_KEYSIGN_HIDE,"Button",BS_AUTOCHECKBOX | 
                     WS_TABSTOP,127,168,74,9
@@ -582,6 +582,7 @@
                     LVS_SINGLESEL | WS_BORDER | WS_TABSTOP,6,4,377,46
     EDITTEXT        IDC_VERIFY_INFO,6,53,377,21,ES_MULTILINE | 
                     ES_AUTOHSCROLL | ES_WANTRETURN | WS_DISABLED
+    PUSHBUTTON      "Notation data",IDC_VERIFY_SIGNOT,6,82,61,14
 END
 
 IDD_WINPT_OWNERTRUST DIALOG DISCARDABLE  0, 0, 182, 76
@@ -819,17 +820,19 @@
     PUSHBUTTON      "&Cancel",IDCANCEL,119,130,50,14
 END
 
-IDD_WINPT_PASSWD DIALOG DISCARDABLE  0, 0, 219, 71
+IDD_WINPT_PASSWD DIALOG DISCARDABLE  0, 0, 235, 87
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "Passphrase Dialog"
 FONT 8, "MS Sans Serif"
 BEGIN
-    LTEXT           "Enter passphrase",IDC_PASSWD_INFO,9,7,108,8
-    EDITTEXT        IDC_PASSWD_PWD,9,18,202,12,ES_PASSWORD | ES_AUTOHSCROLL
-    DEFPUSHBUTTON   "&OK",IDOK,107,50,50,14
-    PUSHBUTTON      "&Cancel",IDCANCEL,160,50,50,14
+    LTEXT           "Enter passphrase",IDC_PASSWD_INFO,4,19,195,10
+    EDITTEXT        IDC_PASSWD_PWD,4,32,224,12,ES_PASSWORD | ES_AUTOHSCROLL
+    DEFPUSHBUTTON   "&OK",IDOK,125,66,50,14
+    PUSHBUTTON      "&Cancel",IDCANCEL,178,66,50,14
     CONTROL         "&Hide Typing",IDC_PASSWD_HIDE,"Button",BS_AUTOCHECKBOX | 
-                    WS_TABSTOP,134,31,78,10
+                    WS_TABSTOP,150,46,78,10
+    COMBOBOX        IDC_PASSWD_KEYINF,4,3,224,57,CBS_DROPDOWNLIST | 
+                    WS_VSCROLL | WS_TABSTOP
 END
 
 IDD_WINPT_DATE DIALOG DISCARDABLE  0, 0, 93, 58
@@ -1652,9 +1655,9 @@
     IDD_WINPT_PASSWD, DIALOG
     BEGIN
         LEFTMARGIN, 4
-        RIGHTMARGIN, 212
+        RIGHTMARGIN, 228
         TOPMARGIN, 3
-        BOTTOMMARGIN, 65
+        BOTTOMMARGIN, 81
     END
 
     IDD_WINPT_DATE, DIALOG
@@ -1958,14 +1961,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.12.3\0"
+            VALUE "FileVersion", "1.0.0-pre0\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.12.3\0"
+            VALUE "ProductVersion", "1.0.0-pre0\0"
             VALUE "SpecialBuild", "\0"
         END
     END

Modified: trunk/Src/resource.h
===================================================================
--- trunk/Src/resource.h	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/Src/resource.h	2006-06-06 13:37:59 UTC (rev 225)
@@ -655,6 +655,8 @@
 #define IDC_PREFS_EXTINF                1530
 #define IDC_PREFS_DEFEXT                1531
 #define IDC_PREFS_BAKSECRING            1532
+#define IDC_VERIFY_SIGNOT               1533
+#define IDC_PASSWD_KEYINF               1534
 #define ID_GPG_ENCRYPT                  40003
 #define ID_GPG_DECRYPT                  40004
 #define ID_GPG_SIGN                     40005
@@ -839,7 +841,7 @@
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_NEXT_RESOURCE_VALUE        247
 #define _APS_NEXT_COMMAND_VALUE         40190
-#define _APS_NEXT_CONTROL_VALUE         1533
+#define _APS_NEXT_CONTROL_VALUE         1535
 #define _APS_NEXT_SYMED_VALUE           101
 #endif
 #endif

Modified: trunk/Src/wptClipEditDlg.cpp
===================================================================
--- trunk/Src/wptClipEditDlg.cpp	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/Src/wptClipEditDlg.cpp	2006-06-06 13:37:59 UTC (rev 225)
@@ -1,5 +1,5 @@
 /* wptClipEditDlg.cpp - Clipboard Editor dialog
- *	Copyright (C) 2000-2005 Timo Schulz
+ *	Copyright (C) 2000-2006 Timo Schulz
  *
  * This file is part of WinPT.
  *
@@ -44,6 +44,7 @@
     0, 0};
 #endif
 
+
 /* Load the clipboard contents into the text field in @dlg.
    Return value: 0 on success. */
 static int
@@ -76,8 +77,8 @@
     strcpy (p, cliptext);
     
     GlobalUnlock (clipmem);
-    CloseClipboard ();	
-    SetDlgItemText (dlg, IDC_CLIPEDIT_CLIPTEXT2, p);	
+    CloseClipboard ();
+    SetDlgItemText (dlg, IDC_CLIPEDIT_CLIPTEXT2, p);
     free_if_alloc (p);
     
     return 0;
@@ -96,17 +97,17 @@
     int id;
 
     memset (&open, 0, sizeof (open));
-    open.lStructSize = sizeof (OPENFILENAME);	    
-    open.hInstance = glob_hinst;	    
-    open.lpstrTitle = _("File Open");	    
-    open.lpstrFilter = (char *)"All Files (*.*)\0*.*\0\0";
+    open.lStructSize = sizeof (OPENFILENAME);
+    open.hInstance = glob_hinst;
+    open.lpstrTitle = _("File Open");
+    open.lpstrFilter = "All Files (*.*)\0*.*\0\0";
     open.hwndOwner = dlg;	    
     open.lpstrFile = file;		    
     open.nMaxFile = sizeof (file)-1;		    
     open.Flags = OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST;
 	    
     if (GetOpenFileName (&open)) {
-	if( (size=get_file_size (file)) > MAX_CLIPTEXT_SIZE) {	    
+	if( (size=get_file_size (file)) > MAX_CLIPTEXT_SIZE) {
 	    id = msg_box (dlg, _("The file you want to add is very large.\n"
 			         "Still proceed?"), _("Clipboard"), 
 			  MB_INFO|MB_YESNO);
@@ -122,8 +123,8 @@
 	p = new char[size+1];
 	if (!p)
 	    BUG (0);
-	fread (p, 1, size, fp);
-	p[size] = '\0';
+	memset (p, 0, size+1);
+	size = fread (p, 1, size, fp);
 	fclose (fp);
 	SetDlgItemText (dlg, IDC_CLIPEDIT_CLIPTEXT2, p);	
 	free_if_alloc (p);
@@ -152,9 +153,9 @@
     save.lpstrFile = file;		    
     save.nMaxFile = sizeof (file) - 1;
     save.Flags = OFN_OVERWRITEPROMPT;
-            	    
-    if( GetSaveFileName( &save ) ) {
-	if( file_exist_check( file ) == 0 ) {	    
+
+    if (GetSaveFileName (&save)) {
+	if (file_exist_check (file) == 0) {
 	    id = log_box (_("Clipboard"), MB_YESNO,
 			  _("\"%s\" already exists.\n"
 			    "Replace existing file?"), file);	    
@@ -207,11 +208,6 @@
     case WM_HELP:
 	html_help_dispatch (lparam, "winpt.chm::winpt_texts.txt", help_arr);
 	break;
-
-    case WM_SYSCOMMAND:
-	if (LOWORD (wparam) == SC_CLOSE)
-	    EndDialog (dlg, TRUE);
-	return TRUE;
         
     case WM_COMMAND:
 	switch (LOWORD (wparam)) {
@@ -252,8 +248,8 @@
             
 	case IDC_CLIPEDIT_LOAD:
 	    if (!load_clipboard_from_file (dlg)) {
-		/* XXX: for some files the code produces a crash! */
-		PostMessage (dlg, WM_COMMAND, MAKEWPARAM(IDC_CLIPEDIT_SEND, 0), 0);
+		CheckDlgButton (dlg, IDC_CLIPEDIT_QUOTE, BST_UNCHECKED);
+		PostMessage (dlg, WM_COMMAND, MAKEWPARAM (IDC_CLIPEDIT_SEND, 0), 0);
 	    }
 	    return TRUE;
             

Modified: trunk/Src/wptClipEncryptDlg.cpp
===================================================================
--- trunk/Src/wptClipEncryptDlg.cpp	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/Src/wptClipEncryptDlg.cpp	2006-06-06 13:37:59 UTC (rev 225)
@@ -95,6 +95,8 @@
     gpgme_invalid_key_t k;
     gpgme_key_t key;
     size_t len=0;
+    const char *keyid;
+    const char *warn = _("key not found");
     char *uid, *p;
 
     if (!ctx)
@@ -104,9 +106,10 @@
 	return -1;
 
     for (k=res->invalid_recipients; k; k = k->next) {
-	if (get_pubkey (k->fpr, &key))
-	    continue;
-	len += (32 + 16 + strlen (key->uids->name) + 2) + 4;
+	if (!get_pubkey (k->fpr, &key))
+	    len += (32 + strlen (k->fpr)+8 + strlen (key->uids->name) + 2) + 4;
+	else
+	    len += strlen (warn) + strlen (k->fpr)+8 + 2 + 4;
     }
 
     p = (char *)calloc (1, len+64);
@@ -114,10 +117,15 @@
 	BUG (NULL);
     strcpy (p, _("Recipients unsuable for encryption:\n"));
     for (k = res->invalid_recipients; k; k = k->next) {
-	if (get_pubkey (k->fpr, &key))
-	    continue;
-	uid = utf8_to_native (key->uids->name);
-	strcat (p, key->subkeys->keyid+8);
+	if (!get_pubkey (k->fpr, &key)) {
+	    uid = utf8_to_native (key->uids->name);
+	    keyid = key->subkeys->keyid+8;
+	}
+	else {
+	    uid = strdup (warn);
+	    keyid = k->fpr;
+	}
+	strcat (p, keyid);
 	strcat (p, " : ");
 	strcat (p, uid);
 	strcat (p, "\n");

Modified: trunk/Src/wptClipSignDlg.cpp
===================================================================
--- trunk/Src/wptClipSignDlg.cpp	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/Src/wptClipSignDlg.cpp	2006-06-06 13:37:59 UTC (rev 225)
@@ -148,15 +148,11 @@
 {
     listview_ctrl_t lv;
     gpg_keycache_t kc, sec_kc;
-    int nkeys = 0;
+    int nkeys;
 
     SetWindowText (dlg, _("Signing"));
     kc = keycache_get_ctx (KEYCACHE_PUB);
-    if (!kc)
-	BUG (0);
     sec_kc = keycache_get_ctx (KEYCACHE_PRV);
-    if (!sec_kc)
-	BUG (0);
 
     nkeys = count_useable_seckeys (sec_kc);
     if (nkeys < 1) {
@@ -175,6 +171,18 @@
 }
 
 
+static const char*
+lookup_key_userid (const char *patt)
+{
+    winpt_key_s key;
+
+    memset (&key, 0, sizeof (key));
+    if (winpt_get_pubkey (patt, &key))
+	return patt;
+    return key.ext->uids->uid;
+}
+
+
 /* Dialog box procedure for clipboard signing. */
 BOOL CALLBACK 
 clip_sign_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)
@@ -184,7 +192,7 @@
     gpgme_error_t err;
     passphrase_cb_s pwd;
     int lv_idx = 0;
-    int rc = 0, no_signer = 0;
+    int rc = 0, sel_signer = 0;
     char *signer = NULL;
     
     switch (msg) {
@@ -202,50 +210,44 @@
         return FALSE;
         
     case WM_NOTIFY:
-        NMHDR * notify;
+        NMHDR *notify;
         notify = (NMHDR *)lparam;
-        if( notify && notify->code == NM_DBLCLK
-            && notify->idFrom == IDC_SIGN_KEYLIST )
-            PostMessage (dlg, WM_COMMAND, MAKEWPARAM(IDOK, 0), 0);
+        if (notify && notify->code == NM_DBLCLK
+            && notify->idFrom == IDC_SIGN_KEYLIST)
+            PostMessage (dlg, WM_COMMAND, MAKEWPARAM (IDOK, 0), 0);
         return TRUE;
         
-    case WM_SYSCOMMAND:
-        if( LOWORD (wparam) == SC_CLOSE )
-            EndDialog(dlg, TRUE);
-        return FALSE;
-        
     case WM_COMMAND:
         switch (LOWORD (wparam)) {
         case IDOK:
+	    sel_signer = 1;
             signer = get_gnupg_default_key ();
             if (!signer) {
-                msg_box( dlg, _("Could not get default key."), _("Signing"), MB_ERR );
+                msg_box (dlg, _("Could not get default key."), 
+			 _("Signing"), MB_ERR);
                 return FALSE;
             }
-            if (listview_count_items (lv, 0) == 1) {
-                listview_get_item_text (lv, 0, 1, signer, sizeof signer-1);
-                no_signer = 0;
-            }
             else if ((lv_idx = listview_get_selected_item (lv)) == -1) {
 		rc = log_box (_("Signing"), MB_YESNO,
-		              _("No key was chosen.\nUse the GPG default key '%s'?"),
-			      signer);
+		              _("No key was chosen.\n"
+			        "Use the GPG default key '%s'?"),
+			      lookup_key_userid (signer));
                 if (rc == IDNO) {
 		    free_if_alloc (signer);
                     return FALSE;
 		}
-                no_signer = 1;
+                sel_signer = 0;
             }
-            if (!no_signer) {
+            if (sel_signer) {
 		free_if_alloc (signer);
 		signer = new char[32+1];
 		if (!signer)
 		    BUG (NULL);
-                listview_get_item_text (lv, lv_idx, 1, signer, 32);
+                listview_get_item_text (lv, lv_idx, KM_COL_KEYID, signer, 32);
 	    }
             err = gpgme_new (&ctx);
 	    if (err)
-		BUG (dlg);
+		BUG (NULL);
 	    set_gpg_passphrase_cb (&pwd, ctx, GPG_CMD_SIGN, dlg, _("Signing"));
             err = gpg_clip_sign (ctx, signer, reg_prefs.word_wrap);
 	    free_if_alloc (signer);
@@ -259,10 +261,10 @@
             if (err) {
 		msg_box (dlg, gpgme_strerror (err), _("Signing"), MB_ERR);
 		gpgme_release (ctx);
-                return FALSE;
+                return TRUE;
             }
-	    else	             
-		show_msg( dlg, 1500, _("GnuPG Status: Finished") );
+	    else
+		show_msg (dlg, 1500, _("GnuPG Status: Finished"));
 	    gpgme_release (ctx);
             EndDialog (dlg, TRUE);
             return TRUE;

Modified: trunk/Src/wptClipSignEncDlg.cpp
===================================================================
--- trunk/Src/wptClipSignEncDlg.cpp	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/Src/wptClipSignEncDlg.cpp	2006-06-06 13:37:59 UTC (rev 225)
@@ -1,5 +1,5 @@
 /* wptSignEncDlg.cpp - Sign & encrypt dialog
- *	Copyright (C) 2000-2005 Timo Schulz
+ *	Copyright (C) 2000-2006 Timo Schulz
  *
  * This file is part of WinPT.
  *
@@ -106,13 +106,11 @@
     int force_trust = 0;
     int n;
     
-    switch( msg ) {
+    switch (msg) {
     case WM_INITDIALOG:
         SetWindowText (dlg, _("Sign & Encrypt"));
 	SetDlgItemText (dlg, IDCANCEL, _("&Cancel"));
         kc = keycache_get_ctx (KEYCACHE_PUB);
-	if (!kc)
-	    BUG (NULL);
         lv = keylist_load (GetDlgItem (dlg, IDC_SIGNENC_KEYLIST),
 			   kc, NULL, KEYLIST_ENCRYPT_MIN, KEY_SORT_USERID);
 	seclist_init (dlg, IDC_SIGNENC_SECLIST, KEYLIST_FLAG_SHORT, &list);
@@ -132,18 +130,13 @@
         return FALSE;
         
     case WM_NOTIFY:
-        NMHDR * notify;
+        NMHDR *notify;
         notify = (NMHDR *)lparam;
         if (notify && notify->code == NM_DBLCLK
             && notify->idFrom == IDC_SIGNENC_KEYLIST)
             PostMessage (dlg, WM_COMMAND, MAKEWPARAM (IDOK, 0), 0);
         return TRUE;
         
-    case WM_SYSCOMMAND:
-        if (LOWORD (wparam) == SC_CLOSE)
-            EndDialog (dlg, TRUE);
-        return FALSE;
-        
     case WM_COMMAND:
 	if (HIWORD (wparam) == BN_CLICKED
 	    && LOWORD (wparam) == IDC_SIGNENC_SELKEY) {
@@ -158,12 +151,13 @@
 			 _("Sign & Encrypt"), MB_ERR);
                 return FALSE;
             }
-            if( IsDlgButtonChecked( dlg, IDC_SIGNENC_SELKEY ) ) {
+            if (IsDlgButtonChecked (dlg, IDC_SIGNENC_SELKEY)) {
 		gpgme_key_t key;
-		const char * s;
+		const char *s;
 
-		if( seclist_select_key( dlg, IDC_SIGNENC_SECLIST, &key ) ) {
+		if (seclist_select_key (dlg, IDC_SIGNENC_SECLIST, &key)) {
 		    msg_box (dlg, _("No key was selected."), _("Signing"), MB_ERR);
+		    safe_free (rset);
                     return FALSE;
 		}
 		s = key->subkeys->keyid;
@@ -174,6 +168,7 @@
 		signer = get_gnupg_default_key ();
 		if (!signer) {
                     msg_box (dlg, _("Could not get default key."), _("Signing"), MB_ERR);
+		    safe_free (rset);
                     return FALSE;
                 }
             }
@@ -181,25 +176,24 @@
 	    err = gpgme_new (&ctx);
 	    if (err)
 		BUG (NULL);
-
 	    set_gpg_passphrase_cb (&pwd, ctx, GPG_CMD_SIGN, dlg, _("Sign & Encrypt"));
             err = gpg_clip_sign_encrypt (ctx, signer, rset, force_trust);
 	    release_gpg_passphrase_cb (&pwd);
-            free (rset);
+            safe_free (rset);
 	    free_if_alloc (signer);
 	    gpgme_release (ctx);
 	    if (gpgme_err_code (err) ==  GPG_ERR_BAD_PASSPHRASE)
 		agent_del_cache (pwd.keyid);
-	    if (err) {
-		msg_box (dlg, gpgme_strerror (err), _("Sign & Encrypt"), MB_ERR );
-		return FALSE;
+	    if (err)
+		msg_box (dlg, gpgme_strerror (err), _("Sign & Encrypt"), MB_ERR);
+	    else {
+		show_msg (dlg, 1500, _("GnuPG Status: Finished"));
+		EndDialog (dlg, TRUE);
 	    }
-	    show_msg (dlg, 1500, _("GnuPG Status: Finished"));
-            EndDialog (dlg, TRUE);
             return TRUE;
             
         case IDCANCEL:
-            EndDialog( dlg, FALSE );
+            EndDialog (dlg, FALSE);
             return FALSE;
         }
         break;

Modified: trunk/Src/wptClipVerifyDlg.cpp
===================================================================
--- trunk/Src/wptClipVerifyDlg.cpp	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/Src/wptClipVerifyDlg.cpp	2006-06-06 13:37:59 UTC (rev 225)
@@ -99,16 +99,20 @@
 }
 
 
-/* Display the policy URL and the notation data of a signature.
-   If @not is NULL, it is assumed there is no data. 
-   @dlg is the handle to the calling dialog. */
+/* Display the policy URL and the notation data of a signature. */
 static void
-show_notation_data (HWND dlg, gpgme_sig_notation_t nota)
+show_notation_data (HWND dlg, gpgme_ctx_t ctx)
 {
+    gpgme_sig_notation_t nota;
     gpgme_sig_notation_t n;
+    gpgme_verify_result_t res;
     size_t len=0;
     char *p;
 
+    res = gpgme_op_verify_result (ctx);
+    if (!res || !res->signatures || !res->signatures->notations)
+	return;
+    nota = res->signatures->notations;
     for (n=nota; n; n = n->next) {
 	if (n->name)
 	    len += strlen (n->name) + 1 + 2;
@@ -134,22 +138,57 @@
     }
 
     msg_box (dlg, p, _("Signature Information"), MB_INFO);
-    free (p);
+    safe_free (p);
 }
 
 
+/* Ask the user whether to fetch the missing key from the keyserver. */  
+static BOOL
+fetch_key_from_keyserver (HWND dlg, gpgme_signature_t sig)
+{
+    const char *keyid;
+    const char *kserv;
+    WORD port;
+    int id;
+
+    if (!sig->fpr)
+	return FALSE;
+    keyid = get_keyid_from_fpr (sig->fpr);	    
+    id = log_box (_("Verify"), MB_INFO|MB_YESNO,
+		  _("Signature made %s using %s key ID 0x%s\n"
+		    "Cannot check signature: public key not found\n\n"
+		    "Do you want to try to retrieve the key from the keyserver?"),
+		  strtimestamp (sig->timestamp),
+		  get_key_pubalgo (sig->pubkey_algo), keyid);
+    if (id == IDNO) {
+	msg_box (dlg, get_gpg_sigstat (GPGME_SIGSUM_KEY_MISSING), 
+		 _("Verify"), MB_WARN);
+        return FALSE;
+    }
+
+    kserv = default_keyserver;
+    port = default_keyserver_port;
+
+    /* XXX: gpgme currently does not include to return the preferred
+	    keyserver that might be stored within the signature. */
+
+    if (!hkp_recv_key (dlg, kserv, port, keyid+8, 0, 0))
+	keycache_update (0, keyid+8);
+    return TRUE;
+}
+
+
 /* Dialog procedure for the clipboard verification. */
 BOOL CALLBACK
 clip_verify_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)
 {
     static verlist_ctrl_t vlv = NULL;
+    static gpgme_ctx_t c = NULL;
     text_input_s *ctx;
     gpgme_error_t err;
     gpgme_signature_t sig = NULL, s;
     gpg_keycache_t kc = NULL;
-    gpgme_ctx_t c=NULL;
     const char *det_data=NULL;
-    WORD port = HKP_PORT;
     int rc = 0, det_len=0;
     
     switch (msg) {
@@ -157,14 +196,12 @@
         SetWindowText (dlg, _("Verify"));
 	SetDlgItemText (dlg, IDC_VERIFY_SAVE, _("&Save"));
         kc = keycache_get_ctx (KEYCACHE_PUB);
-        if (!kc)
-	    BUG (NULL);
         ctx = (text_input_s *)lparam;
 	if (ctx) {
 	    det_data = ctx->data;
 	    det_len = ctx->length;
 	}
-	err = gpg_clip_verify (ctx && ctx->length > 0, 
+	err = gpg_clip_verify (ctx && ctx->length > 0,
 			       det_data, det_len, &c, &sig);
         if (err) {
 	    msg_box (dlg, gpgme_strerror (err), _("Verify"), MB_ERR);
@@ -175,46 +212,12 @@
         }
 
 	if (gpgme_err_code (sig->status) == GPG_ERR_NO_PUBKEY) {
-	    const char *keyid;
-	    const char *kserv;
-	    if (!sig->fpr)
-		BUG (NULL);
-	    keyid = get_keyid_from_fpr (sig->fpr);
-	    rc = log_box (_("Verify"), MB_INFO|MB_YESNO,
-			  _("Signature made %s using %s key ID 0x%s\n"
-			  "Cannot check signature: public key not found\n\n"
-			  "Do you want to try to retrieve the key from the keyserver?"),
-			  strtimestamp (sig->timestamp),
-			  get_key_pubalgo (sig->pubkey_algo), keyid);
-            if (rc == IDNO) {
-                msg_box (dlg, get_gpg_sigstat (GPGME_SIGSUM_KEY_MISSING), _("Verify"), MB_WARN);
+	    if (fetch_key_from_keyserver (dlg, sig)) {
 		gpgme_release (c);
-                EndDialog (dlg, FALSE);
-                return FALSE;
-            }
-	    if (0) {
-	    /* FIXME: does GPGME include the keyserver status
-	    kserv = gpgme_sig_get_string_attr (sig, GPGME_ATTR_KEYSERVER);
-	    if (kserv && strncmp (kserv, "hkp://", 6)) {
-		rc = log_box (_("Verify"), MB_INFO|MB_YESNO,
-			      _("The users preferred keyserver is '%s'.\n"
-			        "Do you want to use it to fetch the key?"), kserv);
-		if (rc == IDNO) {
-		    kserv = default_keyserver;
-		    port = default_keyserver_port;
-		}*/
+		EndDialog (dlg, FALSE);
+		return TRUE;
 	    }
-	    else {
-		kserv = default_keyserver;
-		port = default_keyserver_port;
-	    }
-            if (!hkp_recv_key (dlg, kserv, port, keyid+8, 0, 0)) {
-		keycache_update (0, keyid+8);
-		kc = keycache_get_ctx (KEYCACHE_PUB);
-		if (!kc)
-		    BUG (dlg);
-	    }
-        }
+	}
 	else if (gpgme_err_code (sig->status) == GPG_ERR_BAD_SIGNATURE && 
 		 !sig->timestamp)
 		 ;
@@ -234,14 +237,17 @@
 			 _("Verify"), MB_ERR);
 	}
 	
-	if (sig->notations)
-	    show_notation_data (dlg, sig->notations);
-	gpgme_release (c);
+	if (!sig->notations)
+	    ShowWindow (GetDlgItem (dlg, IDC_VERIFY_SIGNOT), SW_HIDE);
         SetForegroundWindow (dlg);
         return TRUE;
         
     case WM_DESTROY:
-        if (vlv) {
+	if (c != NULL) {
+	    gpgme_release (c);
+	    c = NULL;
+	}
+        if (vlv != NULL) {
             verlist_delete (vlv);
             vlv = NULL;
         }
@@ -251,11 +257,15 @@
         switch (LOWORD (wparam )) {
 	case IDCANCEL:
 	    EndDialog (dlg, FALSE);
-	    break;
+	    return TRUE;
 
         case IDOK:
             EndDialog (dlg, TRUE);
-            return FALSE;
+            return TRUE;
+
+	case IDC_VERIFY_SIGNOT:	    
+	    show_notation_data (dlg, c);
+	    return TRUE;
             
         case IDC_VERIFY_SAVE:
             dialog_box_param (glob_hinst, (LPCTSTR)IDD_WINPT_FILE_SAVE, dlg,

Modified: trunk/Src/wptCurrWnd.cpp
===================================================================
--- trunk/Src/wptCurrWnd.cpp	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/Src/wptCurrWnd.cpp	2006-06-06 13:37:59 UTC (rev 225)
@@ -32,9 +32,9 @@
 #define KEYUP( vcode, scode)	keybd_event( (vcode), (scode), KEYEVENTF_KEYUP, 0 )
 
     
-extern HWND PTD_get_curr_hwnd( void );
-extern BOOL PTD_keyb_send( UINT *keys, UINT n_keys );
-int PTD_is_used( void );
+extern "C" HWND PTD_get_curr_hwnd( void );
+extern "C" BOOL PTD_keyb_send( UINT *keys, UINT n_keys );
+extern "C" int PTD_is_used( void );
 
 static void
 clip_clear (void)
@@ -65,8 +65,9 @@
     return 0;
 } /* clip_check */
 
+
 static void
-wnd_msg_markall( HWND hwnd )
+wnd_msg_markall (void)
 {
     unsigned keys[4] = {0};
 
@@ -84,11 +85,11 @@
 	KEYUP( (BYTE)'A', 0x1e );
 	KEYUP( VK_CONTROL, 0x1d );	
     }
-} /* msg_wm_markall */
+}
 
 
 static void
-wnd_msg_paste( HWND hwnd )
+wnd_msg_paste (void)
 {
     unsigned keys[4] = {0};
 
@@ -105,15 +106,15 @@
 	KEYUP( (BYTE)'V', 0x2f );	
 	KEYUP( VK_CONTROL, 0x1d );	
     }
-} /* msg_wm_paste */
+}
 
 
 static void
-wnd_msg_copy( HWND hwnd )
+wnd_msg_copy (void)
 {
     unsigned keys[4] = {0};
 
-    if( PTD_is_used() ) {
+    if (PTD_is_used ()) {
 	keys[0] = VK_CONTROL | 0x8000;
 	keys[1] = 'C' | 0x8000;
 	keys[2] = 'C';
@@ -202,8 +203,8 @@
     }
 	
     /* The last try is to send a mark all and copy to clipboard command */
-    wnd_msg_markall( hwnd );
-    wnd_msg_copy( hwnd );
+    wnd_msg_markall ();
+    wnd_msg_copy ();
     if( !clip_check( ) )
 	rc = 0;
 
@@ -235,7 +236,7 @@
     lost = SetFocus( hwnd );
 
     wnd_msg_em_set_pos( hwnd, 0 );
-    wnd_msg_paste( hwnd );
+    wnd_msg_paste ();
     wnd_msg_em_set_pos( hwnd, 1 );
 	
     AttachThreadInput( GetCurrentThreadId(),

Modified: trunk/Src/wptFileStatDlg.cpp
===================================================================
--- trunk/Src/wptFileStatDlg.cpp	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/Src/wptFileStatDlg.cpp	2006-06-06 13:37:59 UTC (rev 225)
@@ -1,5 +1,5 @@
-/* wptFileStatDlg.cpp - (File Manager) Show file statistics
- *	Copyright (C) 2002, 2003, 2005 Timo Schulz
+/* wptFileStatDlg.cpp - List the status of an OpenPGP file
+ *	Copyright (C) 2002, 2003, 2005, 2006 Timo Schulz
  *
  * This file is part of WinPT.
  *
@@ -27,15 +27,25 @@
 
 #include "resource.h"
 #include "wptTypes.h"
-#include "wptNLS.h"
 #include "wptGPG.h"
 #include "wptCommonCtl.h"
 #include "wptContext.h"
-#include "wptDlgs.h"
 #include "wptErrors.h"
 #include "wptW32API.h"
+#include "wptUTF8.h"
 #include "openpgp.h"
 
+
+const char*
+get_fmt_date (long timest)
+{
+    static char buf[64];
+
+    get_locale_date (timest, buf, sizeof (buf)-1);
+    return buf;
+}
+
+
 static const char*
 get_pubkey_algo (int algo)
 {	
@@ -60,7 +70,7 @@
     case 4: return "BLOWFISH";
     case 5: return "RESERVED";
     case 6: return "RESERVED";
-    case 7: return "AES";
+    case 7: return "AES-128";
     case 8: return "AES-192";
     case 9: return "AES-256";
     default: break;
@@ -117,20 +127,7 @@
 }
 
 
-static const char*
-get_timestring (long timestamp)
-{
-    static char ts[64];
-    struct tm *ltm;
-
-    ltm = localtime (&timestamp);
-    _snprintf(ts, sizeof ts -1, "%04d-%02d-%02d",
-		ltm->tm_year + 1900, ltm->tm_mon + 1, ltm->tm_mday);
-    return ts;
-}
-
-
-/* List all PGP packets from the file @file.
+/* List all OpenPGP packets from the file @file.
    Return value: number of packets. */
 static int
 do_list_packets (HWND list, const char *file)
@@ -140,7 +137,7 @@
     armor_filter_context_t afx;
     size_t n=0;
     int rc = 0;
-    char inf[1024];
+    char inf[1024], *p;
 
     if (!list || !file) {
 	log_debug ("do_list_packets: !list || !file");
@@ -178,8 +175,9 @@
 		break;
 	    _snprintf (inf, sizeof(inf)-1,
 		"symmetric key encrypted packet: version %d, cipher %s, s2k %s, hash %s",
-		enc->version, get_symkey_algo(enc->cipher_algo),		
-		get_s2k_algo (enc->s2k.mode), get_digest_algo(enc->s2k.hash_algo));
+		enc->version, get_symkey_algo (enc->cipher_algo),
+		get_s2k_algo (enc->s2k.mode), 
+		get_digest_algo (enc->s2k.hash_algo));
 	    listbox_add_string (list, inf); }
 	    break;
 
@@ -188,10 +186,10 @@
 	    {PKT_encrypted *enc = pkt->pkt.encrypted; n++;
 	    if (!enc)
 		break;
-	    _snprintf( inf, sizeof(inf)-1,	
-		"encrypted data packet: mdc method %d, length %d",		
-		enc->mdc_method, enc->len );
-	    listbox_add_string( list, inf ); }
+	    _snprintf (inf, sizeof(inf)-1,	
+			"encrypted data packet: mdc method %d, length %d",
+			enc->mdc_method, enc->len);
+	    listbox_add_string (list, inf); }
 	    break;
 
 	case PKT_PUBLIC_KEY:
@@ -201,9 +199,9 @@
 		break;
 	    _snprintf( inf, sizeof(inf)-1,
 		"public key packet: version %d, algo %s, created %s",
-		pk->version, get_pubkey_algo(pk->pubkey_algo),
-		get_timestring(pk->timestamp));
-	    listbox_add_string( list, inf ); }
+		pk->version, get_pubkey_algo (pk->pubkey_algo),
+		get_fmt_date (pk->timestamp));
+	    listbox_add_string (list, inf); }
 	    break;
 
 	case PKT_SECRET_KEY:
@@ -213,13 +211,12 @@
 		break;
 	    _snprintf( inf, sizeof(inf)-1,
 		"secret key packet: version %d, algo %s, created %s mode %d",
-		sk->version,  get_pubkey_algo( sk->pubkey_algo ),
-		get_timestring( sk->timestamp ), 
-		sk->protect.s2k.mode );
-	    listbox_add_string( list, inf ); }
+		sk->version,  get_pubkey_algo (sk->pubkey_algo),
+		get_fmt_date (sk->timestamp),
+		sk->protect.s2k.mode);
+	    listbox_add_string (list, inf); }
 	    break;
-
-		
+	    
 	case PKT_SIGNATURE:
 	    {PKT_signature *sig = pkt->pkt.signature; n++;
 	    if (!sig)
@@ -227,8 +224,8 @@
 	    _snprintf( inf, sizeof(inf)-1,
 		"signature packet: version %d, algo %s, keyid 0x%08X, created %s",
 		sig->version, get_pubkey_algo(sig->pubkey_algo), sig->keyid[1],
-		get_timestring(sig->timestamp));
-	    listbox_add_string( list, inf ); }
+		get_fmt_date (sig->timestamp));
+	    listbox_add_string (list, inf); }
 	    break;
 
 		
@@ -236,17 +233,20 @@
 	    {PKT_user_id *id = pkt->pkt.user_id; n++;
 	    if (!id)
 		break;
-	    _snprintf( inf, sizeof(inf)-1, "user id packet: %s", id->name );
-	    listbox_add_string( list, inf ); }
+	    p = utf8_to_native (id->name);
+	    _snprintf (inf, sizeof (inf)-1, "user id packet: %s", p);
+	    free_if_alloc (p);
+	    listbox_add_string (list, inf); }
 	    break;
 	    
 	case PKT_COMPRESSED:
 	    {PKT_compressed *zip = pkt->pkt.compressed; n++;
 	    if (!zip)
 		break;
-	    _snprintf( inf, sizeof(inf)-1, "compressed packet: algo %s, length %d",
-		get_compress_algo(zip->algorithm), zip->len );
-	    listbox_add_string( list, inf ); }
+	    _snprintf (inf, sizeof(inf)-1, 
+			"compressed packet: algo %s, length %d",
+			get_compress_algo(zip->algorithm), zip->len);
+	    listbox_add_string (list, inf); }
 	    break;
 
 	default:
@@ -270,25 +270,19 @@
     
     switch (msg) {
     case WM_INITDIALOG:
-	#ifndef LANG_DE
         SetWindowText (dlg, _("File Status"));
-	#endif
         file = (const char*)lparam;
-        if (file == NULL)
-            dlg_fatal_error( dlg, "Could not get dialog state!" );
+	if (!file)
+	    BUG (0);
 	n = do_list_packets (GetDlgItem (dlg, IDC_FILE_STAT_LIST), file);
 	if (n < 1) {
 	    msg_box (dlg, _("No valid OpenPGP data found."), _("File Status"), MB_ERR);
 	    EndDialog (dlg, FALSE);
+	    return TRUE;
 	}
         SetForegroundWindow (dlg);
         break;
         
-    case WM_SYSCOMMAND:
-        if (LOWORD (wparam) == SC_CLOSE)
-            EndDialog (dlg, TRUE);
-        return TRUE;
-        
     case WM_COMMAND:
         switch (LOWORD (wparam)) {
         case IDOK:

Modified: trunk/Src/wptGPGOptDlg.cpp
===================================================================
--- trunk/Src/wptGPGOptDlg.cpp	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/Src/wptGPGOptDlg.cpp	2006-06-06 13:37:59 UTC (rev 225)
@@ -17,7 +17,6 @@
  * along with WinPT; if not, write to the Free Software Foundation, 
  * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
  */
-
 #ifdef HAVE_CONFIG_H
 #include <config.h>
 #endif
@@ -45,31 +44,30 @@
     switch (msg)  {
     case WM_INITDIALOG:	  
 	optbuf = get_gnupg_config ();
-	if (!optbuf)
-	    dlg_fatal_error (dlg,  _("Could not load GnuPG config file!"));
+	if (!optbuf) {
+	    msg_box (dlg,  _("Could not load GnuPG config file!"),
+		     _("GPG Config"), MB_ERR);
+	    EndDialog (dlg, FALSE);
+	    return TRUE;
+	}
 	SetDlgItemText (dlg, IDC_GPGOPT_FILE, optbuf);
 	SetWindowText (dlg, _("GnuPG Configuration File" ));
 	SetDlgItemText (dlg, IDC_GPGOPT_SAVE, _("&Save"));
 	SetDlgItemText (dlg, IDC_GPGOPT_LOAD, _("&Load"));
-	free_if_alloc( optbuf );
-	SetForegroundWindow( dlg );
+	free_if_alloc (optbuf);
+	SetForegroundWindow (dlg);
 	return TRUE;
         
-    case WM_SYSCOMMAND:
-	if( LOWORD (wparam) == SC_CLOSE )
-	    EndDialog(dlg, TRUE);
-	return FALSE;
-        
     case WM_COMMAND:
         switch( LOWORD( wparam ) ) {
         case IDC_GPGOPT_SAVE:		    
             optbuf = new char[nbytes + 1];
-            if( !optbuf )
-		BUG( dlg);
-            nbytes = GetDlgItemText( dlg, IDC_GPGOPT_FILE, optbuf, nbytes );
-            if( !nbytes ) {
-                msg_box( dlg, _("The 'gpg.conf' file is not loaded."), _("GPG Config"), MB_ERR );
-                free_if_alloc( optbuf );
+            if (!optbuf)
+		BUG (0);
+            nbytes = GetDlgItemText (dlg, IDC_GPGOPT_FILE, optbuf, nbytes);
+            if (!nbytes) {
+                msg_box (dlg, _("The 'gpg.conf' file is not loaded."), _("GPG Config"), MB_ERR);
+                free_if_alloc (optbuf);
                 return FALSE;		
             }
             optbuf[nbytes] = '\0';

Modified: trunk/Src/wptGPGPrefsDlg.cpp
===================================================================
--- trunk/Src/wptGPGPrefsDlg.cpp	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/Src/wptGPGPrefsDlg.cpp	2006-06-06 13:37:59 UTC (rev 225)
@@ -100,17 +100,17 @@
     p = get_reg_entry_gpg ("HomeDir");
     if (p) {
 	SetDlgItemText (dlg, IDC_GPGPREFS_HOMEDIR, p);
-	free_if_alloc (p);	
+	free_if_alloc (p);
     }
     p = get_reg_entry_gpg ("gpgProgram");
     if (p) {
 	SetDlgItemText (dlg, IDC_GPGPREFS_EXEDIR, p);
-	free_if_alloc (p);	
+	free_if_alloc (p);
     }
     p = get_reg_entry_mo ();
     if (p) {
         SetDlgItemText (dlg, IDC_GPGPREFS_LOCALE, p);
-	free_if_alloc (p);        
+	free_if_alloc (p);
     }
     if (!item_get_text_length (dlg, IDC_GPGPREFS_HOMEDIR)) {
 	p = multi_gnupg_path (0);
@@ -188,11 +188,6 @@
     case WM_DESTROY:
 	gpg4win = false;
 	break;
-
-    case WM_SYSCOMMAND:
-        if (LOWORD (wparam) == SC_CLOSE)
-            EndDialog (dlg, FALSE);
-        return FALSE;
         
     case WM_COMMAND:
 	if (HIWORD (wparam) == BN_CLICKED &&
@@ -263,6 +258,7 @@
 		msg_box (dlg, _("Could not get GPG config file"), 
 			 _("Preferences"), MB_ERR);
 		EndDialog (dlg, FALSE);
+		return TRUE;
 	    }
 	    parse_gpg_options (p, &opt);
 
@@ -283,7 +279,7 @@
 		reg_prefs.gpg.ask_cert_expire = 0;
 	    }
 
-	    n = GetDlgItemText(dlg, IDC_GPGPREFS_COMMENT, t, sizeof t - 1);
+	    n = GetDlgItemText(dlg, IDC_GPGPREFS_COMMENT, t, DIM (t)-1);
             if (n > 0)
 		modify_entry (opt, ENTRY_MULTI, "comment", t);
 	    else if (n == 0)
@@ -291,7 +287,7 @@
 	    else
 		delete_option (opt, "comment");
 
-	    n = GetDlgItemText (dlg, IDC_GPGPREFS_ENCTO, t, sizeof t -1);
+	    n = GetDlgItemText (dlg, IDC_GPGPREFS_ENCTO, t, DIM (t)-1);
             if (n > 0)
 		modify_entry (opt, ENTRY_MULTI, "encrypt-to", t);
             else

Modified: trunk/Src/wptKeyEdit.cpp
===================================================================
--- trunk/Src/wptKeyEdit.cpp	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/Src/wptKeyEdit.cpp	2006-06-06 13:37:59 UTC (rev 225)
@@ -22,8 +22,9 @@
 #ifdef HAVE_CONFIG_H
 #include <config.h>
 #endif
+
+#include <windows.h>
 #include <time.h>
-#include <windows.h>
 
 #include "gpgme.h"
 #include "wptCommonCtl.h"

Modified: trunk/Src/wptKeyEditCB.cpp
===================================================================
--- trunk/Src/wptKeyEditCB.cpp	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/Src/wptKeyEditCB.cpp	2006-06-06 13:37:59 UTC (rev 225)
@@ -119,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")) {
@@ -133,7 +133,7 @@
     if (!strcmp (key, "sign_uid.expire"))
 	return "Y"; /* the sig expires when the key expires */
     if (!strcmp (key, "siggen.valid"))
-	return ctx->exp_date;
+	return ctx->exp_date? ctx->exp_date : "0";
     if (!strcmp (key, "trustsig_prompt.trust_value")) {
 	sprintf (buf, "%d", ctx->trust_id);
 	return buf;

Modified: trunk/Src/wptKeyEditDlgs.cpp
===================================================================
--- trunk/Src/wptKeyEditDlgs.cpp	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/Src/wptKeyEditDlgs.cpp	2006-06-06 13:37:59 UTC (rev 225)
@@ -151,11 +151,12 @@
 static subclass_s keyedit_uid_proc;
 
 int keygen_check_date (SYSTEMTIME *st);
-void get_userid_preflist (char **r_prefs, int * r_flags);
+void get_userid_preflist (char **r_prefs, int *r_flags);
 char* get_subkey_keyid (const char *keyid);
-
 void ComboBox_AddString_utf8 (HWND cb, const char *txt);
 
+
+/* Safe wrapper for allocation. */
 static GpgKeyEdit*
 create_GpgKeyEdit (const char *keyid)
 {
@@ -179,11 +180,8 @@
     int i, n;
 
     pub = keycache_get_ctx (1);
-    if (!pub)
-	BUG (0);
-
     gpg_keycache_rewind (pub);
-    while( !gpg_keycache_next_key (pub, 0, &key)) {
+    while (!gpg_keycache_next_key (pub, 0, &key)) {
 	if (key->expired || key->revoked || 
 	    key->disabled || key->invalid)
 	    continue;
@@ -282,8 +280,8 @@
     delete ke;
     if (err) {
 	log_box (_("user ID"), MB_ERR, 
-		_("Could not get key information for: \"%s\":\n%s"), 
-		name, gpgme_strerror (err));
+		 _("Could not get key information for: \"%s\":\n%s"), 
+		 name, gpgme_strerror (err));
 	return -1;
     }
 
@@ -362,14 +360,6 @@
 	SetForegroundWindow (dlg);
 	break;
 
-    case WM_DESTROY:
-	break;
-
-    case WM_SYSCOMMAND:
-        if (LOWORD (wparam) == SC_CLOSE)
-            EndDialog (dlg, TRUE);
-	break;
-
     case WM_COMMAND:
 	switch( LOWORD (wparam)) {
 	case IDC_ADDPHOTO_SELFILE:
@@ -387,7 +377,8 @@
 
 	case IDOK:
 	    if (!GetDlgItemText (dlg, IDC_ADDPHOTO_FILE, file, sizeof (file)-1)){
-		msg_box( dlg, _("Please enter a file name."), _("Add Photo"), MB_ERR);
+		msg_box (dlg, _("Please enter a file name."), 
+			 _("Add Photo"), MB_ERR);
 		return FALSE;
 	    }
 	    if (get_file_size (file) == 0 || get_file_size (file) > 6144) {
@@ -451,11 +442,6 @@
 	center_window (dlg, cb->parent);
 	break;
 
-    case WM_SYSCOMMAND:
-        if (LOWORD (wparam) == SC_CLOSE)
-            EndDialog (dlg, FALSE);
-	break;
-
     case WM_COMMAND:
 	switch (LOWORD (wparam)) {
 	case IDOK:
@@ -521,11 +507,6 @@
 	center_window (dlg, ctx->parent);
         return FALSE;
         
-    case WM_SYSCOMMAND:
-        if (LOWORD (wparam) == SC_CLOSE)
-            EndDialog(dlg, TRUE);
-        return FALSE;
-        
     case WM_COMMAND:
         switch ( LOWORD( wparam ) )  {
         case IDOK:
@@ -540,15 +521,18 @@
 	    if (strchr (utf8_name, '@')) {
 		msg_box (dlg, _("Please enter the email address in the email field and not in the name field"), 
 			 _("UserID"), MB_INFO);
+		free_if_alloc (utf8_name);
 		return FALSE;
 	    }
 
             if( !GetDlgItemText (dlg, IDC_ADDUID_EMAIL, email, sizeof (email) -1)) {
-                msg_box( dlg, _("Please enter an email address."), _("UserID"), MB_ERR );
+                msg_box (dlg, _("Please enter an email address."), _("UserID"), MB_ERR);
+		free_if_alloc (utf8_name);
                 return FALSE;
             }
 	    if (check_email_address (email)) {
 		msg_box (dlg, _("Invalid email address."), _("UserID"), MB_ERR);
+		free_if_alloc (utf8_name);
 		return FALSE;
 	    }
             
@@ -565,6 +549,7 @@
 	    else {
 		msg_box (dlg, _("user ID successfully added."), _("GnuPG Status"), MB_OK);
 		ctx->finished = 1;
+		/* The caller releases this items later. */
 		keygen->name = utf8_name;
 		keygen->comment = utf8_comment;
 		keygen->email = m_strdup (email);
@@ -584,6 +569,7 @@
 }
 
 
+/* Initalize a combo box with default key sizes (1024-4096). */
 static void
 init_keysize_box (HWND dlg, int ctlid)
 {
@@ -644,9 +630,8 @@
     switch (msg) {
     case WM_INITDIALOG:
         ctx = (keyedit_cb_t)lparam;
-        if (!ctx)
-            dlg_fatal_error (dlg, "Could not get dialog param!");
-
+	if (!ctx)
+	    BUG (0);
         SetWindowText (dlg, _("Add new Subkey"));
         SetDlgItemText (dlg, IDC_ADDSUBKEY_INFALGO, _("Key type"));
         SetDlgItemText (dlg, IDC_ADDSUBKEY_INFSIZE, _("Size in bits"));
@@ -666,11 +651,6 @@
 	center_window (dlg, ctx->parent);
         return FALSE;
         
-    case WM_SYSCOMMAND:
-        if (LOWORD (wparam) == SC_CLOSE)
-            EndDialog (dlg, TRUE);
-        return FALSE;
-        
     case WM_COMMAND:
 	if (HIWORD (wparam) == BN_CLICKED && 
 	    LOWORD (wparam) == IDC_ADDSUBKEY_EXPIRE) {
@@ -771,7 +751,7 @@
     }
 
     if (k->is_protected) {
-	pass = request_passphrase (_("Key Edit"), 1, &cancel);
+	pass = request_key_passphrase (k->ctx, _("Key Edit"), &cancel);
 	if (cancel)
 	    return FALSE;
     }
@@ -839,7 +819,7 @@
         return FALSE;
     }
     if (k->is_protected) {
-	pass = request_passphrase (_("Key Edit"), 1, &cancel);
+	pass = request_key_passphrase (k->ctx, _("Key Edit"), &cancel);
 	if (cancel)
 	    return FALSE;
     }
@@ -865,6 +845,7 @@
 }
 
 
+/* Set the preferred keyserver of the given key @k. */
 BOOL
 keyedit_set_pref_keyserver (winpt_key_t k, HWND dlg)
 {
@@ -879,7 +860,7 @@
 	return FALSE;
     }
 
-    pass = request_passphrase (_("Key Edit"), 1, &url->cancel);
+    pass = request_key_passphrase (k->ctx, _("Key Edit"), &url->cancel);
     if (url->cancel) {
 	delete url;
 	return FALSE;
@@ -920,14 +901,13 @@
 
     memset (&cb, 0, sizeof (cb));
     if (k->is_protected) {
-	pass = request_passphrase (_("Key Edit"), 1, &cancel);
+	pass = request_key_passphrase (k->ctx, _("Key Edit"), &cancel);
 	if (cancel)
 	    return FALSE;
     }
     cb.parent = dlg;
     cb.pass = pass;
     cb.keyid = k->keyid;
-
     DialogBoxParam (glob_hinst, (LPCTSTR)IDD_WINPT_KEYEDIT_ADDPHOTO, dlg,
 		    keyedit_addphoto_dlg_proc, (LPARAM)&cb);
 
@@ -951,7 +931,7 @@
     }
 
     if (k->is_protected) {
-	pass = request_passphrase (_("Key Edit"), 1, &cancel);
+	pass = request_key_passphrase (k->ctx, _("Key Edit"), &cancel);
 	if (cancel)
 	    return FALSE;
     }
@@ -1111,10 +1091,8 @@
     int nkeys = 0, i, bits;
 
     nkeys = count_subkeys (k->ctx);
-    if( !nkeys ) {
-        msg_box (dlg, _("No subkey(s) found."), _("Key Edit"), MB_ERR);
-	return NULL;
-    }
+    if (!nkeys)
+	BUG (0); /* should never happen. */
         
     listview_new (&lv, GetDlgItem (dlg, IDC_KEYEDIT_KEYLIST));
     for (i = 0; cols[i].fieldname != NULL; i++)
@@ -1126,8 +1104,8 @@
 	memset (&lvi, 0, sizeof (lvi));
 	lvi.mask = LVIF_PARAM;	
 	lvi.lParam = (LPARAM)k->ext;
-	if( ListView_SetItem (lv->ctrl, &lvi) == FALSE)
-	    return NULL; 
+	if (ListView_SetItem (lv->ctrl, &lvi) == FALSE)
+	    BUG (0);
     }
         
     listview_set_ext_style( lv );
@@ -1198,13 +1176,11 @@
     const char *attr;
     
     nuids = count_userids (k->ctx);
-    if (!nuids) {
-        msg_box (dlg, _("No user ID(s) found."), _("Key Edit"), MB_ERR);
-	return NULL;
-    }
+    if (!nuids)
+	BUG (0); /* should never happen. */
         
     listview_new (&lv, GetDlgItem (dlg, IDC_KEYEDIT_UIDLIST));
-    for( j = 0; cols[j].fieldname != NULL; j++ )
+    for (j = 0; cols[j].fieldname != NULL; j++)
         listview_add_column (lv, &cols[j]);
         
     for (j = 0; j < nuids; j++) {
@@ -1232,7 +1208,7 @@
 	    listview_add_sub_item (lv, j, UID_COL_CREATION, 
 				   get_key_created (ks->timestamp));
     }
-    if( !k->key_pair ) {
+    if (!k->key_pair) {
 	CheckDlgButton (dlg, IDC_KEYUID_ADD, BST_INDETERMINATE);
 	CheckDlgButton (dlg, IDC_KEYUID_REVOKE, BST_INDETERMINATE);
     }
@@ -1312,28 +1288,29 @@
 {
     gpgme_error_t err;
     GpgKeyEdit *ke;
-    int j, id;
+    int pos, id;
     char tmp[64];
 
     if (!k->key_pair)
-	return FALSE; /* XXX: shall we allow to modify non-secret keys?? */
+	return FALSE;
 
-    if( listview_count_items( lv, 0 ) == 1 ) {
-	msg_box( dlg, _("Primary key can not be deleted!"), _("Key Edit"), MB_ERR);
+    if (listview_count_items (lv, 0) == 1) {
+	msg_box (dlg, _("Primary key can not be deleted!"), _("Key Edit"), MB_ERR);
         return FALSE;
     }
-    if( (j = listview_get_curr_pos( lv )) == -1 ) {
-	msg_box( dlg, _("Please select a key."), _("Key Edit"), MB_ERR );
+    pos = listview_get_curr_pos (lv);
+    if (pos == -1) {
+	msg_box (dlg, _("Please select a key."), _("Key Edit"), MB_ERR);
         return FALSE;
     }
-    if( j == 0 ) {
-	msg_box( dlg, _("Primary subkey can not be deleted!"), _("Key Edit"), MB_ERR );
+    if (pos == 0) {
+	msg_box (dlg, _("Primary key can not be deleted!"), _("Key Edit"), MB_ERR);
         return FALSE;
     }
      
     /* 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);
+    listview_get_item_text (lv, pos, 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"
@@ -1342,14 +1319,12 @@
     if (id == IDNO)
 	return FALSE;
 
-    ke = new GpgKeyEdit (k->keyid);
-    if (!ke)
-	BUG (NULL);
-    err = ke->delKey (j);
+    ke = create_GpgKeyEdit (k->keyid);
+    err = ke->delKey (pos);
     if (err)
 	msg_box (dlg, gpgme_strerror (err), _("Delete Subkey"), MB_ERR);
     else {
-	listview_del_item (lv, j);
+	listview_del_item (lv, pos);
 	k->update = 1;
 	status_box (dlg, _("Subkey successfully deleted."), _("GnuPG status"));
     }
@@ -1367,20 +1342,21 @@
     GpgKeyEdit *ke;
     date_s udd = {0};
     char buf[256], * pass = NULL;
-    int j, cancel = 0;
+    int pos, cancel = 0;
 
     if (!k->key_pair) {
 	msg_box (dlg, _("There is no secret key available!"), _("Key Edit"), MB_ERR);
         return FALSE;
     }
-    if ((j = listview_get_curr_pos (lv)) == -1) {
-	msg_box( dlg, _("Please select a key."), _("Key Edit"), MB_ERR );
+    pos = listview_get_curr_pos (lv);
+    if (pos == -1) {
+	msg_box (dlg, _("Please select a key."), _("Key Edit"), MB_ERR);
         return FALSE;
     }
 
     /* If a key already expired, it is possible the user wants to
-       set a new expiration date.. */   
-    listview_get_item_text (lv, j, SUBK_COL_STATUS, buf, sizeof buf -1);
+       set a new expiration date.. */
+    listview_get_item_text (lv, pos, SUBK_COL_STATUS, buf, sizeof (buf)-1);
     if (!strcmp (buf, _("Expired"))) {
 	cancel = msg_box (dlg, _("Key already expired.\n\n"
 			  "Do you want to change the expiration date?"),
@@ -1402,26 +1378,24 @@
 		 _("Key Edit"), MB_ERR);
         return FALSE;
     }
-    if( k->is_protected ) {
-	pass = request_passphrase (_("Key Edit"), 1, &cancel);
+    if (k->is_protected) {
+	pass = request_key_passphrase (k->ctx, _("Key Edit"), &cancel);
 	if (cancel)
 	    return FALSE;
     }
 
-    ke = new GpgKeyEdit (k->keyid);
-    if (!ke)
-	BUG (NULL);
+    ke = create_GpgKeyEdit (k->keyid);
     if (k->is_protected)
 	ke->setPassphrase (pass);
     else
 	ke->setNoPassphrase (true);
-    err = ke->setKeyExpireDate (j, w32_mktime (&udd.st), false);
+    err = ke->setKeyExpireDate (pos, w32_mktime (&udd.st), false);
     if (err)
 	msg_box (dlg, gpgme_strerror (err), _("Expire Subkey"), MB_ERR);
     else {
-	_snprintf (buf, sizeof buf - 1, "%04d-%02d-%02d",	
+	_snprintf (buf, sizeof (buf)-1, "%04d-%02d-%02d",
 		   udd.st.wYear, udd.st.wMonth, udd.st.wDay);
-	listview_add_sub_item (lv, j, SUBK_COL_EXPIRES, buf);
+	listview_add_sub_item (lv, pos, SUBK_COL_EXPIRES, buf);
 	k->update = 1;
 	msg_box (dlg, _("Subkey expire date successfully set."), 
 		 _("GnuPG status"), MB_OK);
@@ -1468,14 +1442,12 @@
     }
     
     if (k->is_protected) {
-	pass = request_passphrase (_("Key Edit"), 1, &cancel);
+	pass = request_key_passphrase (k->ctx, _("Key Edit"), &cancel);
 	if (cancel)
 	    return FALSE;	    
     }
 
-    ke = new GpgKeyEdit (k->keyid);
-    if (!ke)
-	BUG (NULL);
+    ke = create_GpgKeyEdit (k->keyid);
     if (k->is_protected)
 	ke->setPassphrase (pass);
     else
@@ -1535,7 +1507,7 @@
     if (msg_box (dlg, inf, _("Key Edit"), MB_WARN_ASK) == IDNO)
 	return FALSE;
     if (k->is_protected) {
-	pass = request_passphrase (_("Key Edit"), 1, &cancel);
+	pass = request_key_passphrase (k->ctx, _("Key Edit"), &cancel);
 	if (cancel)
 	    return FALSE;	    
     }
@@ -1545,9 +1517,7 @@
     if (id == -1)
 	BUG (NULL);
 
-    ke = new GpgKeyEdit (k->keyid);
-    if (!ke)
-	BUG (NULL);
+    ke = create_GpgKeyEdit (k->keyid);
     if (k->is_protected)
 	ke->setPassphrase (pass);
     else
@@ -1581,16 +1551,14 @@
     listview_get_item_text (lv, j, 2, buf, sizeof buf-1);
     id = do_find_userid (k->keyid, buf, NULL, NULL);
     if (id == -1)
-	BUG (dlg);
+	BUG (NULL);
     if (k->is_protected) {
-	pass = request_passphrase (_("Key Edit"), 1, &cancel);
+	pass = request_key_passphrase (k->ctx, _("Key Edit"), &cancel);
 	if (cancel)
 	    return FALSE;
     }
 
-    ke = new GpgKeyEdit (k->keyid);
-    if (!ke)
-	BUG (NULL);
+    ke = create_GpgKeyEdit (k->keyid);
     if (k->is_protected)
 	ke->setPassphrase (pass);
     else
@@ -1615,25 +1583,29 @@
     gpgme_error_t err;
     GpgKeyEdit *ke;
     int j, id, cancel=0;
+    char valid[32];
     char buf[256], *pass = NULL;
 
     if (listview_count_items (lv, 0) == 1)
 	return TRUE;
     if ((j = listview_get_curr_pos (lv)) == -1) {
-	msg_box( dlg, _("Please select a user ID."), _("Key Edit"), MB_ERR );
+	msg_box (dlg, _("Please select a user ID."), _("Key Edit"), MB_ERR);
 	return FALSE;
     }
-    listview_get_item_text (lv, j, 2, buf, sizeof buf-1);
+    listview_get_item_text (lv, j, UID_COL_VALID, valid, sizeof (valid)-1);
+    if (!strcmp (valid, _("Revoked")))
+	return FALSE;
+    listview_get_item_text (lv, j, UID_COL_EMAIL, buf, sizeof (buf)-1);
     id = do_find_userid (k->keyid, buf, NULL, NULL);
     if (id == -1)
 	BUG (0);
     if (k->is_protected) {
-	pass = request_passphrase (_("Key Edit"), 1, &cancel);
+	pass = request_key_passphrase (k->ctx, _("Key Edit"), &cancel);
 	if (cancel)
 	    return FALSE;
     }
 
-    ke = new GpgKeyEdit (k->keyid);
+    ke = create_GpgKeyEdit (k->keyid);
     if (k->is_protected)
 	ke->setPassphrase (pass);
     else
@@ -1803,23 +1775,23 @@
     GpgKeyEdit *ke;
     char email[128], name[128];
     char inf[384];
-    int j, id = 0;
+    int pos, id = 0;
 
     if (!k->key_pair)
-	return FALSE; /* XXX: see do_editkey_delsubkey */
+	return FALSE;
 
     if (listview_count_items (lv, 0) == 1) {
 	msg_box (dlg, _("Primary user ID can not be deleted!"),
 		 _("Key Edit"), MB_ERR);
         return FALSE;
     }
-    if ((j = listview_get_curr_pos (lv)) == -1) {
+    pos = listview_get_curr_pos (lv);
+    if (pos == -1) {
 	msg_box (dlg, _("Please select a user ID."), _("Key Edit"), MB_ERR);
         return FALSE;
     }
     
-    /* XXX: add a hint that also all signatures will be deleted? */
-    listview_get_item_text (lv, j, UID_COL_NAME, name, DIM(name) -1);
+    listview_get_item_text (lv, pos, UID_COL_NAME, name, DIM(name) -1);
     _snprintf (inf, DIM (inf)-1, _("user ID \"%s\".\n\n"
 				   "All signatures on this user ID will be also deleted."
 				   "\n\n"
@@ -1828,21 +1800,18 @@
     if (msg_box (dlg, inf, _("Key Edit"), MB_YESNO|MB_ICONWARNING) == IDNO)
 	return FALSE;
     
-    listview_get_item_text (lv, j, UID_COL_EMAIL, email, DIM (email)-1);
-    listview_get_item_text (lv, j, UID_COL_NAME, name, DIM (name)-1);
+    listview_get_item_text (lv, pos, UID_COL_EMAIL, email, DIM (email)-1);
+    listview_get_item_text (lv, pos, UID_COL_NAME, name, DIM (name)-1);
     id = do_find_userid (k->keyid, email, name, NULL);
     if (id == -1)
-	BUG (dlg);
+	BUG (0);
 
-    ke = new GpgKeyEdit (k->keyid);
-    if (!ke)
-	BUG (NULL);
-
+    ke = create_GpgKeyEdit (k->keyid);
     err = ke->delUserid (id);
     if (err)
-	msg_box (dlg, gpgme_strerror (err), _("Delete user ID"), MB_ERR);
+	msg_box (dlg, gpgme_strerror (err), _("Delete User ID"), MB_ERR);
     else {
-	listview_del_item (lv, j);
+	listview_del_item (lv, pos);
 	k->update = 1;
 	status_box (dlg, _("User ID successfully deleted"), _("GnuPG Status"));
     }
@@ -1924,20 +1893,6 @@
 }
 
 
-/* Return default secret key. */
-static gpgme_key_t
-get_default_key (void)
-{
-    gpgme_key_t def_sk;
-    char *keyid = get_gnupg_default_key ();
-
-    get_seckey (keyid, &def_sk);
-    free_if_alloc (keyid);
-    return def_sk;
-}
-
-
-
 static void
 do_editkey_minimize (winpt_key_t k, HWND dlg)
 {
@@ -1992,9 +1947,11 @@
 do_editkey_sign_userid (winpt_key_t k, HWND dlg, listview_ctrl_t lv, int mode)
 {
     gpgme_error_t err;
+    winpt_key_s signer;
     GpgKeyEdit *ke;
     char *pass = NULL;
-    char email[64], name[128];
+    char *defkey;
+    char email[64], name[128], valid[32];
     int uid_index;
     int cancel = 0;
 
@@ -2003,27 +1960,37 @@
 	msg_box (dlg, _("Please select a user ID."), _("Key Edit"), MB_ERR);
 	return FALSE;
     }
+    listview_get_item_text (lv, uid_index, UID_COL_VALID, valid, sizeof (valid)-1);
+    if (!strcmp (valid, _("Revoked")))
+	return TRUE;
     if (mode == CMD_SIGN) {
 	cancel = msg_box (dlg, _("Do you really want to make this sig exportable?"),
 			  _("Key Edit"), MB_QUEST_ASK);
 	if (cancel == IDNO)
 	    return FALSE;
     }
-
     listview_get_item_text (lv, uid_index, UID_COL_EMAIL, email, sizeof (email)-1);
     listview_get_item_text (lv, uid_index, UID_COL_NAME, name, sizeof (name)-1);
     uid_index = do_find_userid (k->keyid, email, name, NULL);
-    if (k->is_protected) {
-	pass = request_passphrase (_("Key Edit"), 1, &cancel);
+
+    defkey = get_gnupg_default_key ();
+    memset (&signer, 0, sizeof (signer));
+    if (winpt_get_seckey (defkey, &signer)) {
+	log_debug ("do_editkey_sign_userid: no default secret key.\r\n");
+	free_if_alloc (defkey);
+	return FALSE;
+    }
+    if (signer.is_protected) {
+	pass = request_key_passphrase (signer.ctx, _("Key Edit"), &cancel);
 	if (cancel)
 	    return FALSE;
     }
     ke = create_GpgKeyEdit (k->keyid);
-    if (k->is_protected)
+    if (signer.is_protected)
 	ke->setPassphrase (pass);
     else
 	ke->setNoPassphrase (true);
-    ke->setLocalUser (get_default_key ());
+    ke->setLocalUser (signer.ctx);
     err = ke->signUserid (uid_index, 
 			  mode == CMD_SIGN? GPG_EDITKEY_SIGN : GPG_EDITKEY_LSIGN,
 			  0, NULL);
@@ -2126,11 +2093,7 @@
 	    BUG (NULL);
 	do_init_cmdlist (dlg, k->key_pair);
 	lvsub = subkey_list_init (dlg, k);
-	if (!lvsub)
-	    BUG (0);
 	lvuid = userid_list_init (dlg, k);
-	if (!lvuid)
-	    BUG (0);
 	item = GetDlgItem (dlg, IDC_KEYEDIT_KEYLIST);
 	keyedit_subkey_proc.opaque = (void*)k;
 	keyedit_subkey_proc.dlg = dlg;

Modified: trunk/Src/wptKeyEditOwnertrustDlg.cpp
===================================================================
--- trunk/Src/wptKeyEditOwnertrustDlg.cpp	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/Src/wptKeyEditOwnertrustDlg.cpp	2006-06-06 13:37:59 UTC (rev 225)
@@ -1,5 +1,5 @@
 /* wptKeyEditOwnertrustDlg.cpp - Key onwertrust dialog
- *	Copyright (C) 2000-2005 Timo Schulz
+ *	Copyright (C) 2000-2006 Timo Schulz
  *
  * This file is part of WinPT.
  *
@@ -47,19 +47,19 @@
     HWND lb;
     int index, id = 0;
     
-    switch( msg ) {
+    switch (msg) {
     case WM_INITDIALOG:
         k = (winpt_key_t)lparam;
-        if (k == NULL)
-            dlg_fatal_error( dlg, "Could not get dialog param!" );
+	if (!k)
+	    BUG (0);
         SetWindowText (dlg, _("Change Ownertrust"));
-        lb = GetDlgItem( dlg, IDC_KEYTRUST_TRUST );
-        listbox_add_string( lb, _("Don't know") );
-        listbox_add_string( lb, _("I do NOT trust") );
-        listbox_add_string( lb, _("I trust marginally") );
-        listbox_add_string( lb, _("I trust fully") );            
-	listbox_add_string( lb, _("I trust ultimately") );
-	SetDlgItemText (dlg, IDC_KEYTRUST_INF, 
+        lb = GetDlgItem (dlg, IDC_KEYTRUST_TRUST);
+        listbox_add_string (lb, _("Don't know") );
+        listbox_add_string (lb, _("I do NOT trust"));
+        listbox_add_string (lb, _("I trust marginally"));
+        listbox_add_string (lb, _("I trust fully"));
+	listbox_add_string (lb, _("I trust ultimately"));
+	SetDlgItemText (dlg, IDC_KEYTRUST_INF,
 			_("Please decide how far you trust this user to "
 			  "correctly verify other users' keys (by looking "
 			  "at passports, checking fingerprint from "
@@ -69,28 +69,22 @@
         SetForegroundWindow (dlg);
         return TRUE;
         
-    case WM_SYSCOMMAND:
-        if (LOWORD (wparam) == SC_CLOSE)
-            EndDialog(dlg, TRUE);
-        return FALSE;
-        
     case WM_COMMAND:
-        switch( LOWORD( wparam ) ) {
+        switch (LOWORD (wparam)) {
         case IDCANCEL:
-	    k->callback.new_val = -1;
             EndDialog (dlg, FALSE);
             return TRUE;
             
-        case IDOK:			
+        case IDOK:		
             lb = GetDlgItem (dlg, IDC_KEYTRUST_TRUST);
             index = listbox_get_cursel (lb) + 1;
             if (index < 1 || index > 5) {
-                msg_box( dlg, _("Please choose one entry."),  _("Ownertrust"), MB_ERR );
+                msg_box (dlg, _("Please choose one entry."),  
+			 _("Ownertrust"), MB_ERR);
                 return TRUE;
             }
 	    /* check if there is a corresponding secret key for the public key. */
-	    get_seckey (k->keyid, &key);
-	    if (index == 5 && !key) {
+	    if (index == 5 && get_seckey (k->keyid, &key)) {
                 id = msg_box (dlg, _("Do you really want to set this key to ultimate trust?"),
                               _("Ownertrust"), MB_YESNO);
                 if (id == IDNO)

Modified: trunk/Src/wptKeyPropsDlg.cpp
===================================================================
--- trunk/Src/wptKeyPropsDlg.cpp	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/Src/wptKeyPropsDlg.cpp	2006-06-06 13:37:59 UTC (rev 225)
@@ -161,6 +161,8 @@
 	return _("Revoked");
     if (key->disabled)
 	return _("Disabled");
+    if (key->invalid)
+	return _("Invalid");
     return get_key_trust2 (NULL, key->uids->validity, 0, 0);
 }
 
@@ -191,11 +193,11 @@
 static bool
 check_for_desig_rev (gpgme_key_t key)
 {
-    winpt_key_s kk;
+    winpt_key_s k;
 
-    memset (&kk, 0, sizeof (kk));
-    if (!winpt_get_pubkey (key->subkeys->keyid, &kk))
-	return kk.ext->gloflags.has_desig_rev? true : false;
+    memset (&k, 0, sizeof (k));
+    if (!winpt_get_pubkey (key->subkeys->keyid, &k))
+	return k.ext->gloflags.has_desig_rev? true : false;
     return false;
 }
 

Modified: trunk/Src/wptKeyRevokeDlg.cpp
===================================================================
--- trunk/Src/wptKeyRevokeDlg.cpp	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/Src/wptKeyRevokeDlg.cpp	2006-06-06 13:37:59 UTC (rev 225)
@@ -1,5 +1,5 @@
 /* wptKeyRevokeDlg.cpp - Key revocation dialog
- *	Copyright (C) 2001, 2002, 2003, 2005 Timo Schulz
+ *	Copyright (C) 2001, 2002, 2003, 2005, 2006 Timo Schulz
  *	Copyright (C) 2005 g10 Code GmbH
  *
  * This file is part of WinPT.
@@ -141,16 +141,11 @@
     switch( msg ) {
     case WM_INITDIALOG:
         if (!lparam)
-            dlg_fatal_error (dlg, "Could not get dialog param!");
+	    BUG (0);
         k = (winpt_key_t)lparam;
         on_init_dialog (dlg);
         return TRUE;
         
-    case WM_SYSCOMMAND:
-        if (LOWORD (wparam) == SC_CLOSE)
-            EndDialog (dlg, FALSE);
-        return FALSE;
-        
     case WM_COMMAND:
         switch (LOWORD (wparam)) {
 	case IDC_KEYREVOKE_CHOOSE:
@@ -165,12 +160,12 @@
             list = GetDlgItem (dlg, IDC_KEYREVOKE_REASON);
             idx = SendMessage (list, LB_GETCURSEL, 0, 0);
             if (idx < 0 || idx > 3) {
-		msg_box (dlg, _("Please select a reason."), 
+		msg_box (dlg, _("Please select a reason."),
 			 _("Key Revocation Cert"), MB_ERR);
                 return TRUE;
             }
             if (!GetDlgItemText (dlg, IDC_KEYREVOKE_FILE, file, sizeof (file)-1)) {
-		msg_box (dlg, _("Please enter a file name."), 
+		msg_box (dlg, _("Please enter a file name."),
 			 _("Key Revocation Cert"), MB_ERR);
                 return TRUE;
             }
@@ -185,20 +180,19 @@
           
 	    inp_data = generate_revoke_input (idx, desc, pwd);
             err = gpg_revoke_cert (k->internal, inp_data, k->keyid, &revcert);
-	    wipememory (pwd, sizeof (pwd));
-	    wipememory (inp_data, strlen (inp_data));
+	    sfree_if_alloc (inp_data);
+	    sfree_if_alloc (desc);
             if (err) {
                 msg_box (dlg, gpgme_strerror (err), _("Key Revocation Cert"), MB_ERR);
 		safe_free (revcert);
+		return TRUE;
 	    }
 	    else {
 		show_msg (dlg, 1000, _("Revocation certificate generated."));
 		msg_box (dlg, warning, _("Key Revocation Cert"), MB_INFO);
 		release_cert_as_file (revcert, file);
+		EndDialog (dlg, TRUE);
 	    }
-	    free_if_alloc (inp_data);
-	    free_if_alloc (desc);
-	    EndDialog (dlg, TRUE);
             return TRUE;
             
         case IDCANCEL:

Modified: trunk/Src/wptKeyRevokersDlg.cpp
===================================================================
--- trunk/Src/wptKeyRevokersDlg.cpp	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/Src/wptKeyRevokersDlg.cpp	2006-06-06 13:37:59 UTC (rev 225)
@@ -112,7 +112,7 @@
     gpg_desig_rev_t rev=NULL, r;
     listview_ctrl_t lv;
     const char *alg;
-    const char *uid = NULL;
+    const char *uid = NULL, *kid;
     char keyid[32];
 
     err = key_get_revokers (key, 0, &rev);
@@ -124,11 +124,12 @@
     revokelist_build (&lv, ctrl);
     for (r = rev; r; r = r->next) {
 	memset (&revkey, 0, sizeof (revkey));
-	if (winpt_get_pubkey (r->fpr+32, &revkey))
+	kid = get_keyid_from_fpr (r->fpr);
+	if (winpt_get_pubkey (kid, &revkey))
 	    uid = _("user ID not found");
 	else
 	    uid = revkey.ext->uids->name;
-	_snprintf (keyid, sizeof (keyid)-1, "0x%s", r->fpr+32);
+	_snprintf (keyid, sizeof (keyid)-1, "0x%s", kid);
 	listview_add_item2 (lv, "", revkey.ext);
 	alg = get_key_pubalgo (r->pubkey_algo);
 	listview_add_sub_item (lv, 0, REV_COL_ALGO, alg);
@@ -150,14 +151,11 @@
     int rc;
     
     switch (msg) {
-    case WM_INITDIALOG:
-	gpg_keycache_t ctx;
+    case WM_INITDIALOG:	
 	key = (winpt_key_t)lparam;
 	if (!key)
-	    dlg_fatal_error( dlg, "Could not get dilaog param" );
-	ctx = keycache_get_ctx (1);
+	    BUG (0);
 	lv = revokelist_init (GetDlgItem (dlg, IDC_KEYREVOKERS_LIST), key);
-
 	SetDlgItemText (dlg, IDC_KEYREVOKERS_INF, _("Designated Revoker Keys"));
 	SetWindowText (dlg, _("Key Revokers"));
 	SetForegroundWindow (dlg);
@@ -187,6 +185,7 @@
 		    memset (&pk, 0, sizeof (pk));
 		    if (winpt_get_pubkey (keyid, &pk))
 			BUG (NULL);
+		    /* XXX: utf8 decode problem. */
 		    if (pk.ext && pk.ext->uids)
 			listview_add_sub_item (lv, idx, REV_COL_NAME, pk.ext->uids->name);
 		}

Modified: trunk/Src/wptKeygenDlg.cpp
===================================================================
--- trunk/Src/wptKeygenDlg.cpp	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/Src/wptKeygenDlg.cpp	2006-06-06 13:37:59 UTC (rev 225)
@@ -22,6 +22,7 @@
 #endif
 
 #include <windows.h>
+#include <time.h>
 
 #include "resource.h"
 #include "wptTypes.h"
@@ -245,7 +246,7 @@
     err = gpgme_op_genkey (ctx, params, NULL, NULL);
     if (!err) {
 	res = gpgme_op_genkey_result (ctx);
-	*fpr = res->fpr? m_strdup (res->fpr) : NULL;
+	*fpr = res && res->fpr? m_strdup (res->fpr) : NULL;
     }
     gpgme_release (ctx);
     return err;
@@ -300,7 +301,7 @@
         }
         name = get_filesave_dlg (dlg, _("Destination for Secret Keyring"), 
 				 NULL, "secring.gpg");
-        if( name ) {
+        if (name) {
 	    keyring = make_filename (path, "secring", "gpg");
             if (!CopyFile (keyring, name, FALSE))
 		log_box (_("Key Generation"), MB_ERR,
@@ -331,19 +332,20 @@
 }
 
 
+time_t w32_mktime (SYSTEMTIME *st);
+
 /* Check that the given date lies not in the past.
    Return value: 1 on success. */
 int
 keygen_check_date (SYSTEMTIME *st)
 {	
-    SYSTEMTIME t;
+    time_t dat, now;
 	
-    GetSystemTime (&t);
-    if (st->wYear > t.wYear || st->wMonth > t.wMonth)
+    dat = w32_mktime (st);
+    now = time (NULL);
+    if (dat >= now)
 	return 1;
-    else if (st->wYear < t.wYear || st->wMonth < t.wMonth || st->wDay < t.wDay)
-	return 0;
-    return 1;
+    return 0;
 }
 
 
@@ -362,7 +364,7 @@
     int cancel = 0;
     char *p;
     
-    switch ( msg ) {
+    switch (msg) {
     case WM_INITDIALOG:
 	if (lparam != 0)
 	    ctx = (genkey_s *)lparam;
@@ -438,13 +440,20 @@
 			 _("Key Generation"), MB_INFO);
 		free_if_alloc (utf8_name);
 		free_if_alloc (utf8_comment);
-		return FALSE;
+		return TRUE;
 	    }
             keytype = SendDlgItemMessage (dlg, IDC_KEYGEN_KEYTYPE, CB_GETCURSEL, 0, 0) + 1;
             if (IsDlgButtonChecked (dlg, IDC_KEYGEN_EXPNEVER))
                 expire = NULL;
             else {
 		DateTime_GetSystemtime (GetDlgItem (dlg, IDC_KEYGEN_EXPDATE), &st);
+		if (!keygen_check_date (&st)) {
+		    free_if_alloc (utf8_name);
+		    free_if_alloc (utf8_comment);
+		    msg_box (dlg, _("The date you have chosen lies in the past."), 
+			     _("Key Generation"), MB_ERR);
+		    return TRUE;
+		}
 		_snprintf (t, DIM (t)-1, "%04d-%02d-%02d", st.wYear, st.wMonth, st.wDay);
                 expire = t;
 	    }
@@ -475,10 +484,7 @@
             keygen_cb_dlg_create ();
             err = gpg_genkey (p, keygen_cb, &fpr);
 	    sfree_if_alloc (pwd);
-            if (p) {
-		wipememory (p, strlen (p));  /* burn the passphrase! */
-                free_if_alloc (p);
-            }
+	    sfree_if_alloc (p); /* burn the passphrase! */
             keygen_cb_dlg_destroy (1);
             if (err) {
 		free_if_alloc (fpr);
@@ -541,10 +547,6 @@
 	center_window (dlg, NULL);
 	break;
 
-    case WM_SYSCOMMAND:
-	if (LOWORD (wparam) == SC_CLOSE)
-	    EndDialog (dlg, FALSE);
-
     case WM_COMMAND:
 	switch (LOWORD( wparam)) {
 	case IDC_KEYWIZARD_EXPERT:
@@ -591,10 +593,7 @@
 	    keygen_cb_dlg_create();
 	    err = gpg_genkey (p, keygen_cb, &fpr);
 	    keygen_cb_dlg_destroy (1);
-	    if (p) {
-		wipememory (p, strlen (p));
-		free_if_alloc (p);
-	    }
+	    sfree_if_alloc (p);
 	    sfree_if_alloc (pass);
 	    if (err) {
                 msg_box (dlg, gpgme_strerror( err ), _("Key Generation Wizard"), MB_ERR);

Modified: trunk/Src/wptKeyserver.cpp
===================================================================
--- trunk/Src/wptKeyserver.cpp	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/Src/wptKeyserver.cpp	2006-06-06 13:37:59 UTC (rev 225)
@@ -36,6 +36,7 @@
 #include "wptW32API.h"
 #include "wptGPG.h"
 #include "wptRegistry.h"
+#include "wptUTF8.h"
 
 /* Map net_errno to a winsock error. */
 #define net_errno ((int)WSAGetLastError ())
@@ -1171,7 +1172,7 @@
 {
     enum uid_rec_t {ID=1, UID, CREATE, EXPIRE};
     keyserver_uid_s *u, *n;
-    char *p;
+    char *p, *raw;
     int recno = 0;
 
     /* uid:Timo Schulz <twoaday at g10code.com>:1138440360:: */
@@ -1187,7 +1188,9 @@
 	    break;
 
 	case UID:
-	    unhexify_buffer (p, &u->uid);
+	    unhexify_buffer (p, &raw);
+	    u->uid = utf8_to_native (raw);
+	    free_if_alloc (raw);
 	    break;
 
 	case CREATE:

Modified: trunk/Src/wptKeyserverDlg.cpp
===================================================================
--- trunk/Src/wptKeyserverDlg.cpp	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/Src/wptKeyserverDlg.cpp	2006-06-06 13:37:59 UTC (rev 225)
@@ -1,6 +1,6 @@
 /* wptKeyserverDlg.cpp - Keyserver dialog
  *	Copyright (C) 2000-2006 Timo Schulz
- *	Copyright (C) 2005 g10 Code GmbH
+ *	Copyright (C) 2005, 2006 g10 Code GmbH
  *
  * This file is part of WinPT.
  *
@@ -24,7 +24,7 @@
 
 #include <windows.h>
 #include <commctrl.h>
-#include <malloc.h>
+#include <ctype.h>
 
 #include "resource.h"
 #include "wptKeyserver.h"
@@ -45,6 +45,7 @@
 char* get_reg_entry_keyserver (const char *);
 int set_reg_entry_keyserver (const char *, const char *);
 
+/* Symbolic column IDs */
 enum { KS_COL_NAME = 0, KS_COL_PORT };
 
 /* Callback context to modify (add, edit) keyserver items. */
@@ -57,6 +58,7 @@
 };
 typedef struct keyserver_rec_s *keyserver_rec_t;
 
+
 /* Print out keyserver error and a possible Winsock error. */
 static void
 hkp_err_box (HWND dlg, const char *host, WORD port, int rc)
@@ -81,7 +83,7 @@
     GPGME *gpg;
     gpgme_error_t ec;
     char *rawkey = NULL;
-    char msg[384];
+    char msg[256];
     
     gpg = new GPGME ();
     gpg->setArmor (true);
@@ -170,8 +172,8 @@
 		    const char *pattern, int proto, int flags,
 		    char **r_fpr)
 {
-    gpgme_ctx_t ctx;
-    gpgme_data_t keydata;
+    gpgme_ctx_t ctx = NULL;
+    gpgme_data_t keydata = NULL;
     gpgme_import_result_t import_res = NULL;
     gpgme_error_t err;
     char *rawkey = NULL;
@@ -256,32 +258,38 @@
 hkp_recv_key2 (HWND dlg, const char *kserver, WORD port,
 	       const char *pattern, int proto, char **r_fpr)
 {
-    return keyserver_recv_key (dlg, kserver, port, pattern, proto, 0,
-			       r_fpr);
+    return keyserver_recv_key (dlg, kserver, port, pattern,
+			       proto, 0, r_fpr);
 }
 
 
-#define my_iskeychar(a) (((a) >='0' && (a) <= '9' ) || ((a) >= 'A' && (a) <= 'F'))
-
+/* Check if the given pattern are either a valid 
+   email address, a {long, short} keyid or a fingerprint. 
+   Return 0 on success. */
 static int
 check_pattern (const char *pattern)
-{
-    int rc = WPTERR_GENERAL;
+{    
+    size_t i;
+
+    if (strchr (pattern, ' '))
+	return WPTERR_GENERAL; /* do not allow white spaces. */
     
-    /* do not allow white spaces. */
-    if (strchr (pattern, ' '))
-	return rc;
+    if (strchr (pattern, '@') && strlen (pattern) >= 3 &&
+	!check_email_address (pattern))
+        return 0;
 
     if (strstr (pattern, "0x"))
 	pattern += 2;
+    if (strlen (pattern) != 8 &&
+	strlen (pattern) != 16 &&
+	strlen (pattern) != 40)
+	return WPTERR_GENERAL;
 
-    if (((my_iskeychar (pattern[0])) && (strlen (pattern)  == 8)) ||
-         (my_iskeychar (pattern[0])) && (strlen (pattern) == 16))
-        rc = 0; /* assume long or short key ID. */
-    else if (strchr (pattern, '@') && strlen (pattern) >= 3)
-        rc = 0; /* assume email address. */
-
-    return rc;
+    for (i=0; i < strlen (pattern); i++) {
+	if (!isxdigit (pattern[i]))
+	    return WPTERR_GENERAL;
+    }
+    return 0;
 }
 
 
@@ -294,8 +302,8 @@
     switch (proto) {
     case PROXY_PROTO_NONE:	s = ""; break;
     case PROXY_PROTO_HTTP:	s = "HTTP"; break;
-    case PROXY_PROTO_SOCKS5:	s =  "SOCKS5"; break;
-    default:			s= "HTTP"; break;
+    case PROXY_PROTO_SOCKS5:	s = "SOCKS5"; break;
+    default:			s = "HTTP"; break;
     }
     return s;
 }
@@ -331,7 +339,7 @@
 	return;
     for (i=0; i < listview_count_items (lv, 0); i++) {
 	listview_get_item_text (lv, i, KS_COL_NAME, buf, sizeof (buf)-1);	
-	if (!strcmp (buf, p)) {	
+	if (!stricmp (buf, p)) {	
 	    listview_select_one (lv, i);
 	    break;
 	}
@@ -353,7 +361,7 @@
 	return -1;
     }
     listview_get_item_text (lv, idx, KS_COL_NAME, buf, sizeof (buf)-1);
-    if (strncmp (buf, "http", 4) && strncmp (buf, "hkp", 3)) {
+    if (strnicmp (buf, "http", 4) && strnicmp (buf, "hkp", 3)) {
 	msg_box (NULL, _("Only HTTP keyserver can be used."), 
 		 _("Keyserver"), MB_ERR);
 	return -1;
@@ -412,7 +420,7 @@
 
     listview_get_item_text (lv, pos, KS_COL_NAME, name, sizeof (name)-1);
     for (i=0; i < MAX_KEYSERVERS; i++) {
-	if (server[i].name && strcmp (server[i].name, name) == 0)
+	if (server[i].name && stricmp (server[i].name, name) == 0)
 	    server[i].used = 0;
     }
     listview_del_item (lv, pos);
@@ -427,7 +435,7 @@
     int i;
 
     for (i=0; i < MAX_KEYSERVERS; i++) {
-    	if (server[i].name && strcmp (server[i].name, ctx->name) == 0) {
+    	if (server[i].name && stricmp (server[i].name, ctx->name) == 0) {
 	    fnd = true;
 	    break;
 	}
@@ -674,9 +682,9 @@
             listview_get_item_text (lv, lv_idx, KS_COL_NAME, 
 				    proto, sizeof (proto)-1);
 	    proto_nr = KSPROTO_HTTP;
-	    if (!strncmp  (proto, "ldap", 4))
+	    if (!strnicmp  (proto, "ldap", 4))
 		proto_nr = KSPROTO_LDAP;
-	    else if (!strncmp (proto, "finger", 6))
+	    else if (!strnicmp (proto, "finger", 6))
 		proto_nr = KSPROTO_FINGER;
             listview_get_item_text (lv, lv_idx, KS_COL_NAME, 
 				    kserver, sizeof (kserver)-1);
@@ -733,9 +741,9 @@
 				    edit.name, sizeof (edit.name)-1);
 	    listview_get_item_text (lv, lv_idx, KS_COL_PORT, pattern, 32);
 	    edit.port = atoi (pattern);
-	    if (!strncmp (edit.name, "hkp", 3) || !strncmp (edit.name, "http", 4))
+	    if (!strnicmp (edit.name, "hkp", 3) || !strnicmp (edit.name, "http", 4))
 		edit.proto = KSPROTO_HTTP;
-	    else if (!strncmp (edit.name, "ldap", 4))
+	    else if (!strnicmp (edit.name, "ldap", 4))
 		edit.proto = KSPROTO_LDAP;
 	    else
 		edit.proto = KSPROTO_FINGER;

Modified: trunk/Src/wptKeysigDlg.cpp
===================================================================
--- trunk/Src/wptKeysigDlg.cpp	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/Src/wptKeysigDlg.cpp	2006-06-06 13:37:59 UTC (rev 225)
@@ -43,6 +43,7 @@
 static subclass_s siglist_proc;
 
 
+/* Return -1 if the selected item is a signature. */
 static int
 is_sig (listview_ctrl_t lv, int pos)
 {
@@ -131,13 +132,10 @@
     const char *s;
 
     switch (msg) {
-    case WM_SYSCOMMAND:
-	if (LOWORD (wparam) == SC_CLOSE)
-            EndDialog (dlg, TRUE);
-        return FALSE;
-
     case WM_INITDIALOG:
-	SetWindowText (dlg, _("Signature Properties"));
+	ks = (gpgme_key_sig_t)lparam;
+	if (!ks)
+	    BUG (0);
 	SetDlgItemText (dlg, IDC_SIGPROPS_EXP, _("Exportable"));
 	SetDlgItemText (dlg, IDC_SIGPROPS_NREV, _("Non-revocably"));
 	SetDlgItemText (dlg, IDC_SIGPROPS_EXPIRED, _("Expired"));
@@ -147,9 +145,8 @@
 	SetDlgItemText (dlg, IDC_SIGPROPS_KEYINF, _("Issuer key"));
 	SetDlgItemText (dlg, IDC_SIGPROPS_KEYIDINF, _("Issuer key ID"));
 	SetDlgItemText (dlg, IDC_SIGPROPS_POLICINF, _("Policy URL"));
-	ks = (gpgme_key_sig_t)lparam;
-	if (!ks)
-	    BUG (0);
+	SetWindowText (dlg, _("Signature Properties"));
+	
 	memset (&ctx, 0, sizeof ctx);
 	ctx._class = ks->sig_class;
 	if (ctx._class == 0)
@@ -163,7 +160,8 @@
 	    ctx.alg = "ELG";
 	ctx.exportable = ks->exportable;
 	_snprintf (tmpbuf, DIM (tmpbuf)-1, fmt_templ,
-		   ctx.exportable? _("Exportable") : _("Non-exportable"), ctx.alg);
+		   ctx.exportable? _("Exportable") : _("Non-exportable"), 
+		   ctx.alg);
 	SetDlgItemText (dlg, IDC_SIGPROPS_INFO, tmpbuf);
 	
 	_snprintf (tmpbuf, DIM (tmpbuf)-1, "0x%s", ks->keyid+8);
@@ -184,7 +182,7 @@
 	else {
 	    SYSTEMTIME st;
 	    struct tm *tm;
-	    time_t t = time (NULL);
+	    time_t now = time (NULL);
 	    time_t tmp = ks->expires;
 
 	    tm = localtime (&tmp);
@@ -195,13 +193,8 @@
 	    DateTime_SetSystemtime (GetDlgItem (dlg, IDC_SIGPROPS_EXPDATE),
 				    GDT_VALID, &st);
 
-	    tm = localtime (&t);
-	    tm->tm_mon++;
-	    tm->tm_year += 1900;
-	    if (tm->tm_year > st.wYear)
+	    if (now > ks->expires)
 		ctx.expired = 1;
-	    else if (tm->tm_mon > st.wMonth)
-		ctx.expired = 1;
 	    if (ctx.expired)
 		CheckDlgButton (dlg, IDC_SIGPROPS_EXPIRED, BST_CHECKED);
 	}
@@ -220,6 +213,7 @@
 
     case WM_COMMAND:
 	if (HIWORD (wparam) == BN_CLICKED) {
+	    /* Code to prevent the user changes the check buttons. */
 	    switch (LOWORD (wparam)) {
 	    case IDC_SIGPROPS_EXP:
 		CheckDlgButton (dlg, IDC_SIGPROPS_EXP, 
@@ -258,6 +252,7 @@
 }
 
 
+/* Subclass window procedure for the list view. */
 static BOOL CALLBACK
 subclass_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)
 {
@@ -292,8 +287,8 @@
     int i, n;
     char id[128];
     
-    n = listview_count_items( lv, 0 );
-    for( i = 0; i < n; i++ ) {
+    n = listview_count_items (lv, 0);
+    for (i = 0; i < n; i++) {
         listview_get_item_text (lv, i, SL_COL_VALID, id, sizeof (id) - 1);
         if (!strncmp (id, "NOKEY", 5))
             return 1;
@@ -319,7 +314,7 @@
     for (i = 0; i < n; i++) {
         listview_get_item_text (lv, i, SL_COL_VALID, id, sizeof (id) - 1);
         if (!strncmp (id, "NOKEY", 5)) {
-            listview_get_item_text (lv, i, SL_COL_KEYID, 
+            listview_get_item_text (lv, i, SL_COL_KEYID,
 				    keyid, sizeof (keyid) -1);
             if (!hkp_recv_key (dlg, default_keyserver,
 			       default_keyserver_port, keyid, 0, 0)) {
@@ -363,7 +358,6 @@
     listview_get_item_text (lv, idx, SL_COL_KEYID, keyid, DIM (keyid)-1);	
     rc = hkp_recv_key (dlg, default_keyserver, 
 		       default_keyserver_port, keyid, 0, 0);
-		
     if (!rc)
 	keycache_update (0, keyid);
     return rc;
@@ -451,11 +445,6 @@
             lv = NULL;
         }
         return FALSE;
-        
-    case WM_SYSCOMMAND:
-        if (LOWORD (wparam) == SC_CLOSE)
-            EndDialog (dlg, TRUE);
-        return FALSE;
 
     case WM_NOTIFY:
 	NMHDR *notify;
@@ -463,8 +452,8 @@
         notify = (NMHDR *)lparam;
 	if (!notify)
 	    return FALSE;
-        if (notify->code == NM_DBLCLK 
-	    && notify->idFrom == IDC_KEYSIG_LIST)
+        if (notify->code == NM_DBLCLK &&
+	    notify->idFrom == IDC_KEYSIG_LIST)
 	    do_load_keyprops (dlg, lv);
 	if (notify->code == NM_RCLICK &&
 	    notify->idFrom == IDC_KEYSIG_LIST &&

Modified: trunk/Src/wptKeysignDlg.cpp
===================================================================
--- trunk/Src/wptKeysignDlg.cpp	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/Src/wptKeysignDlg.cpp	2006-06-06 13:37:59 UTC (rev 225)
@@ -45,7 +45,7 @@
 static const char*
 get_printable_fpr (const char *fpr)
 {
-    static char pfpr[64];    
+    static char pfpr[64];
     int pos = 0;
     size_t i;
 
@@ -61,18 +61,19 @@
 
 
 /* Return human friendly information about the key @key. */
-static const char*
+const char*
 get_keyinfo (gpgme_key_t key)
 {
     static char buf[64+16];
     struct winpt_key_s k;
 
     memset (&k, 0, sizeof (k));
-    winpt_get_seckey (key->subkeys->keyid, &k);
-    _snprintf (buf, DIM (buf)-1-16, _("%d-bit %s key, ID 0x%s"), 
-	key->subkeys->length,
-	get_key_pubalgo (key->subkeys->pubkey_algo),
-	key->subkeys->keyid+8);
+    if (winpt_get_seckey (key->subkeys->keyid, &k))
+	BUG (0);
+    _snprintf (buf, DIM (buf)-1-16, _("%d-bit %s key, ID 0x%s"),
+	       key->subkeys->length,
+	       get_key_pubalgo (key->subkeys->pubkey_algo),
+	       key->subkeys->keyid+8);
     if (k.ext->gloflags.divert_to_card)
     	strcat (buf, " (Card)");
     return buf;
@@ -87,13 +88,12 @@
 {
     gpg_keycache_t sec;
     gpgme_key_t pk, defkey;
-    const char *s;
+    const char *s, *inf;
     char *uid, *p;
     int i = 0, n = 0, curr_sel = 0;
+    int len = 0;
 
     sec = keycache_get_ctx (0);
-    if (!sec)
-	BUG (0);
     gpg_keycache_get_default_key (sec, &defkey);
     gpg_keycache_rewind (sec);
     while (!gpg_keycache_next_key (sec, 1, &pk)) {
@@ -114,16 +114,18 @@
 	if (defkey && !strcmp (defkey->subkeys->keyid, pk->subkeys->keyid))
 	    curr_sel = i;
 	uid = utf8_to_native (s);
-	p = new char[strlen (uid) + 64];
+	inf = get_keyinfo (pk);
+	len = strlen (uid) + strlen (inf) + 8;
+	p = new char[len+1];
 	if (!p)
 	    BUG (NULL);
-	_snprintf (p, strlen (uid) + 63, "%s (%s)", uid, get_keyinfo (pk));
+	_snprintf (p, len, "%s (%s)", uid, inf);
 	SendDlgItemMessage (dlg, IDC_KEYSIGN_KEYLIST, 
 			    CB_ADDSTRING, i, (LPARAM)(char *)p);
 	SendDlgItemMessage (dlg, IDC_KEYSIGN_KEYLIST, 
 			    CB_SETITEMDATA, i++, (LPARAM)(DWORD)pk);
 	free_if_alloc (p);
-	free (uid);
+	safe_free (uid);
 	n++;
     }
     SendDlgItemMessage (dlg, IDC_KEYSIGN_KEYLIST, 
@@ -147,7 +149,8 @@
     key = (gpgme_key_t)SendDlgItemMessage (dlg, IDC_KEYSIGN_KEYLIST, 
 					   CB_GETITEMDATA, (WPARAM)idx, 0);
     if (key) {
-	winpt_get_seckey (key->subkeys->keyid, &k);
+	if (winpt_get_seckey (key->subkeys->keyid, &k))
+	    BUG (0);
 	protec = k.is_protected;
 	if (!protec)
 	    protec = k.ext->gloflags.divert_to_card;
@@ -165,11 +168,16 @@
     switch (msg) {
     case WM_INITDIALOG:
 	SetWindowText (dlg, _("Choose Signature Class"));
-	SetDlgItemText (dlg, IDC_SIGCLASS_TITLEINF, _("How carefully have you verified the key you are about to sign actually belongs to the person? If you don't know what to anwser, use \"0\"."));
-	SetDlgItemText (dlg, IDC_SIGCLASS_CLASS0, _("(0) I will not answer (default)"));
-	SetDlgItemText (dlg, IDC_SIGCLASS_CLASS1, _("(1) I have not checked at all."));
-	SetDlgItemText (dlg, IDC_SIGCLASS_CLASS2, _("(2) I have done causal checking."));
-	SetDlgItemText (dlg, IDC_SIGCLASS_CLASS3, _("(3) I have done very careful checkings."));
+	SetDlgItemText (dlg, IDC_SIGCLASS_TITLEINF, 
+			_("How carefully have you verified the key you are about to sign actually belongs to the person? If you don't know what to anwser, use \"0\"."));
+	SetDlgItemText (dlg, IDC_SIGCLASS_CLASS0, 
+			_("(0) I will not answer (default)"));
+	SetDlgItemText (dlg, IDC_SIGCLASS_CLASS1, 
+			_("(1) I have not checked at all."));
+	SetDlgItemText (dlg, IDC_SIGCLASS_CLASS2, 
+			_("(2) I have done causal checking."));
+	SetDlgItemText (dlg, IDC_SIGCLASS_CLASS3, 
+			_("(3) I have done very careful checkings."));
 	CheckDlgButton (dlg, IDC_SIGCLASS_CLASS0, BST_CHECKED);
 	SetForegroundWindow (dlg);
 	center_window (dlg, NULL);
@@ -212,6 +220,7 @@
     return get_key_expire_date (u);
 }
 
+
 /* Display photo of key @key in a separate window. */
 static void
 show_photo (winpt_key_t key)
@@ -254,10 +263,9 @@
     
     switch (msg)  {
     case WM_INITDIALOG:
-        if (lparam == 0)
-            dlg_fatal_error (dlg, "could not get dialog param.");
-        SetWindowText (dlg, _("Key Signing"));
         key = (winpt_key_t) lparam;
+	if (!key)
+	    BUG (0);
         _snprintf (keymsg, sizeof keymsg -1,
                    _("pub %d/%s  created: %s    expires: %s\n\n"
                      "Primary key fingerprint: %s\n\n"
@@ -273,7 +281,7 @@
 	if (do_fill_seckeylist (dlg, s)) {
 	    msg_box (dlg, _("No valid secret key found."), _("Key Signing"), MB_ERR);
 	    EndDialog (dlg, FALSE);
-	    break;
+	    return TRUE;
 	}
 	do_check_protection (dlg);
         SetDlgItemText (dlg, IDC_KEYSIGN_INFOS, keymsg);
@@ -285,6 +293,7 @@
 	SetDlgItemText (dlg, IDCANCEL, _("&Cancel"));
 	SetDlgItemText (dlg, IDC_KEYSIGN_SHOWIMG, _("&Show photo"));
 	SetDlgItemText (dlg, IDC_KEYSIGN_HIDE, _("&Hide Typing"));
+	SetWindowText (dlg, _("Key Signing"));
         CheckDlgButton (dlg, IDC_KEYSIGN_LOCAL, BST_CHECKED);
 	CheckDlgButton (dlg, IDC_KEYSIGN_EXPSIG, BST_UNCHECKED);
 	CheckDlgButton (dlg, IDC_KEYSIGN_ASKLEVEL, BST_UNCHECKED);
@@ -302,13 +311,6 @@
 	h = GetDlgItem (dlg, IDC_KEYSIGN_PASSPHRASE);
 	SetFocus (h);
         return FALSE;
-
-    case WM_SYSCOMMAND:
-        if (LOWORD (wparam) == SC_CLOSE) {
-            SetDlgItemText (dlg, IDC_KEYSIGN_PASSPHRASE, "");
-            EndDialog (dlg, TRUE);
-        }
-        return FALSE;
         
     case WM_COMMAND:
 	if (HIWORD (wparam) == CBN_SELCHANGE) {
@@ -318,12 +320,14 @@
 	if (HIWORD (wparam) == BN_CLICKED && 
 	    LOWORD (wparam) == IDC_KEYSIGN_EXPSIG) {
 	    int enable = IsDlgButtonChecked (dlg, IDC_KEYSIGN_EXPSIG);
+
 	    EnableWindow (GetDlgItem (dlg, IDC_KEYSIGN_EXPIRES), enable? TRUE : FALSE);
 	}
 	if (HIWORD (wparam) == BN_CLICKED && 
 	    LOWORD (wparam) == IDC_KEYSIGN_HIDE) {
 	    HWND hwnd = GetDlgItem (dlg, IDC_KEYSIGN_PASSPHRASE);
 	    int hide = IsDlgButtonChecked (dlg, IDC_KEYSIGN_HIDE);
+
 	    SendMessage (hwnd, EM_SETPASSWORDCHAR, hide? '*' : 0, 0);
 	    SetFocus (hwnd);
 	}
@@ -331,7 +335,7 @@
         switch (LOWORD (wparam)) {
         case IDOK:
 	    if (IsDlgButtonChecked (dlg, IDC_KEYSIGN_ASKLEVEL))
-		sig_class = dialog_box_param (glob_hinst, 
+		sig_class = dialog_box_param (glob_hinst,
 					      (LPCSTR)IDD_WINPT_SIGCLASS, dlg,
 					      sig_class_dlg_proc, (LPARAM)NULL,
 					      _("Choose Signature Class"), 
@@ -363,10 +367,11 @@
 	            if an advanced button is checked and offer to add it to the config
 		    file. */
 
-            GetDlgItemText( dlg, IDC_KEYSIGN_PASSPHRASE, pwd, DIM (pwd)-1);
+            GetDlgItemText (dlg, IDC_KEYSIGN_PASSPHRASE, pwd, DIM (pwd)-1);
             keyid = key->ctx->subkeys->keyid;
-	    if( !keyid ) {
-		msg_box( dlg, _("Could not get Key ID from key."), _("Key Signing"), MB_ERR );
+	    if (!keyid) {
+		wipememory (pwd, sizeof (pwd));
+		msg_box (dlg, _("Could not get Key ID from key."), _("Key Signing"), MB_ERR);
 		return TRUE;
 	    }
 	    ke = new GpgKeyEdit (keyid);
@@ -386,9 +391,12 @@
 		msg_box (dlg, gpgme_strerror (err), _("Key Signing"), MB_ERR);
 		return TRUE;
 	    }
-	    if (ke->getResult () != 0)
+	    if (ke->getResult () != 0) {
 		msg_box (dlg, _("This key is already signed by your key"), 
 			 _("Key Signing"), MB_INFO);
+		delete ke;
+		return TRUE;
+	    }
 	    else {
 		status_box (dlg, _("Key successfully signed."), _("Key Signing"));
 		key->update = 1;
@@ -410,4 +418,3 @@
     
     return FALSE;
 }
-

Modified: trunk/Src/wptMDSumDlg.cpp
===================================================================
--- trunk/Src/wptMDSumDlg.cpp	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/Src/wptMDSumDlg.cpp	2006-06-06 13:37:59 UTC (rev 225)
@@ -34,9 +34,13 @@
 #include "wptErrors.h"
 
 
+/* Symbolic column IDs. */
+enum md_col_t {COL_MD=0, COL_NAME};
+
+
 /* Return a printable digest of the buffer @mdbuf. */
 static const char*
-printable_digest (byte *mdbuf, size_t n)
+printable_digest (BYTE *mdbuf, size_t n)
 {
     static char mdasc[128];
     size_t i;
@@ -55,7 +59,7 @@
     case GPGME_MD_SHA1:	    return "SHA1";
     case GPGME_MD_RMD160:   return "RMD160";
     case GPGME_MD_SHA256:   return "SHA256";
-    default: return "";
+    default:		    break;
     }
     return "";
 }
@@ -71,19 +75,21 @@
     int i;
     size_t n;
 
-    for (i = 0; i < listview_count_items( md->lv, 0 ); i++) {
-	if( listview_get_item_state (md->lv, i)) {
+    for (i = 0; i < listview_count_items (md->lv, 0); i++) {
+	if (listview_get_item_state (md->lv, i)) {
 	    listview_get_item_text (md->lv, i, 1, fname, sizeof (fname)-1);
 	    if (!gpg_md_hash_file (md->mdalgo, fname, mdbuf, &n)) {
 		listview_add_item (lv, "");
-		listview_add_sub_item (lv, 0, 0, printable_digest (mdbuf, n));
-		listview_add_sub_item (lv, 0, 1, fname);	
+		listview_add_sub_item (lv, 0, COL_MD, printable_digest (mdbuf, n));
+		listview_add_sub_item (lv, 0, COL_NAME, fname);	
 	    }   
 	}	
     }
 }
 
 
+/* Return 1 if there is a tool available to check the file.
+   (sha1sum, md5sum). */
 static int
 tool_avail (gpgme_hash_algo_t mdalgo)
 {
@@ -93,6 +99,8 @@
 }
 
 
+
+
 /* Dialog box procedure to show and calculate file digests. */
 BOOL CALLBACK
 mdsum_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)
@@ -101,7 +109,7 @@
     static struct md_file_s *md;
     struct listview_column_s cols[] = {
         {0, 264, (char *)_("Digest")},
-        {1, 128, (char *)_("Name")},
+        {1, 160, (char *)_("Name")},
         {0, 0, 0}
     };
     gpgme_data_t sumlist;
@@ -109,14 +117,14 @@
     char fname[300], mdasc[128];
     int i;
 
-    switch( msg ) {
+    switch (msg) {
     case WM_INITDIALOG:
 	md = (md_file_s *)lparam;
 	if (!md)
 	    BUG (NULL);
 	listview_new (&lv, GetDlgItem (dlg, IDC_MDSUM_LIST));
 	for (i = 0; i < cols[i].width; i++)
-	    listview_add_column( lv, &cols[i]);
+	    listview_add_column (lv, &cols[i]);
 	hash_selected_files (md, lv);
 	SetDlgItemText (dlg, IDC_MDSUM_COPY, _("&Save..."));
 	SetDlgItemText (dlg, IDOK, _("&Close"));
@@ -125,11 +133,6 @@
 	SetForegroundWindow (dlg);
 	break;
 
-    case WM_SYSCOMMAND:
-	if (wparam == SC_CLOSE)
-	    EndDialog (dlg, TRUE);
-	return TRUE;
-
     case WM_DESTROY:
 	if (lv) {
 	    listview_release (lv);
@@ -161,8 +164,8 @@
 		gpgme_data_write (sumlist, s, strlen (s));
 	    }
 	    for (i = 0; i < listview_count_items (lv, 0); i++) {
-		listview_get_item_text (lv, i, 0, mdasc, DIM (mdasc)-1);
-		listview_get_item_text (lv, i, 1, fname, DIM (fname)-1);
+		listview_get_item_text (lv, i, COL_MD, mdasc, DIM (mdasc)-1);
+		listview_get_item_text (lv, i, COL_NAME, fname, DIM (fname)-1);
 		
 		gpgme_data_write (sumlist, mdasc, strlen (mdasc));
 		gpgme_data_write (sumlist, " ", 1);
@@ -174,7 +177,7 @@
 		break;
 	    }
 	    _snprintf (fname, sizeof (fname)-1, "%s_sums.txt", algname);
-	    name = get_filesave_dlg (dlg, _("Select file to save checksums"), 
+	    name = get_filesave_dlg (dlg, _("Select File to Save Checksums"), 
 				     NULL, fname);
 	    if (name && *name) {
 		gpg_data_release_and_set_file (sumlist, name);

Modified: trunk/Src/wptMainProc.cpp
===================================================================
--- trunk/Src/wptMainProc.cpp	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/Src/wptMainProc.cpp	2006-06-06 13:37:59 UTC (rev 225)
@@ -242,24 +242,26 @@
             text_input_s input;
             gpgme_data_t sig;
             
-            memset( &input, 0, sizeof (input) );
+            memset (&input, 0, sizeof (input));
             err = gpg_data_new_from_clipboard (&sig, 0);
-	    if( err ) {
-		msg_box( hwnd, gpgme_strerror( err ),_("Verify"), MB_ERR );
+	    if (err) {
+		msg_box (hwnd, gpgme_strerror( err ),_("Verify"), MB_ERR);
 		return;
 	    }
             input.type = 0;
-            dialog_box_param( glob_hinst, (LPCSTR)IDD_WINPT_TEXT, hwnd,
-                             text_input_dlg_proc, (LPARAM)&input, 
-                             _("Text Input"), IDS_WINPT_TEXT );
-            
-            gpg_data_release_and_set_clipboard( sig, 0 );
-            if( input.length ) {
-                dialog_box_param( glob_hinst, (LPCSTR)IDD_WINPT_VERIFY, hwnd,
-                                 clip_verify_dlg_proc, (LPARAM)&input,
-                                 _("Verify"), IDS_WINPT_VERIFY );
+            dialog_box_param (glob_hinst, (LPCSTR)IDD_WINPT_TEXT, hwnd,
+                              text_input_dlg_proc, (LPARAM)&input, 
+                              _("Text Input"), IDS_WINPT_TEXT);
+	    
+	    /* the dialog might have changed the clipboard, so we restore
+	       the original state (again). */
+            gpg_data_release_and_set_clipboard (sig, 0);
+            if (input.length > 0) {
+                dialog_box_param (glob_hinst, (LPCSTR)IDD_WINPT_VERIFY, hwnd,
+                                  clip_verify_dlg_proc, (LPARAM)&input,
+                                  _("Verify"), IDS_WINPT_VERIFY);
                 input.length = 0;
-		free_if_alloc( input.data );
+		free_if_alloc (input.data);
             }
         }
         else if (type & PGP_CLEARSIG) {

Modified: trunk/Src/wptOwnertrustDlg.cpp
===================================================================
--- trunk/Src/wptOwnertrustDlg.cpp	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/Src/wptOwnertrustDlg.cpp	2006-06-06 13:37:59 UTC (rev 225)
@@ -1,5 +1,5 @@
 /* wptOwnertrust.cpp - Ownertrust im- and export
- *	Copyright (C) 2001, 2002, 2003, 2005 Timo Schulz
+ *	Copyright (C) 2001, 2002, 2003, 2005, 2006 Timo Schulz
  *	Copyright (C) 2005 g10 Code GmbH
  *
  * This file is part of WinPT.
@@ -52,7 +52,7 @@
     }
     else
 	err = gpg_error (GPG_ERR_ENOENT);
-    free (ot_data);
+    safe_free (ot_data);
     return 0;
 }
 
@@ -80,7 +80,7 @@
 
     err = gpg_manage_ownertrust (&ot_data, 0);
 
-    free (ot_data);
+    safe_free (ot_data);
     return 0;
 }
 
@@ -105,15 +105,10 @@
         SetForegroundWindow (dlg);
         return TRUE;
         
-    case WM_SYSCOMMAND:
-        if (LOWORD (wparam) == SC_CLOSE)
-            EndDialog (dlg, TRUE);
-        return TRUE;
-        
     case WM_COMMAND:
         switch (LOWORD (wparam)) {
         case IDC_OWNERTRUST_EXPORT:
-	    fname = get_filesave_dlg (dlg, _("Select file name for output"), NULL, NULL);
+	    fname = get_filesave_dlg (dlg, _("Select File Name for Output"), NULL, NULL);
 	    if (!fname)
 		return TRUE;
 	    err = gpg_export_ownertrust (fname);
@@ -125,7 +120,7 @@
             return TRUE;
 
 	case IDC_OWNERTRUST_IMPORT:
-	    fname = get_fileopen_dlg (dlg, _("Select file name for input"), NULL, NULL);
+	    fname = get_fileopen_dlg (dlg, _("Select File Name for Input"), NULL, NULL);
 	    if (!fname)
 		return TRUE;
 	    err = gpg_import_ownertrust (fname);

Modified: trunk/Src/wptPINDlg.cpp
===================================================================
--- trunk/Src/wptPINDlg.cpp	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/Src/wptPINDlg.cpp	2006-06-06 13:37:59 UTC (rev 225)
@@ -1,5 +1,5 @@
 /* wptPINDlg.cpp - PIN callback for smart cards
- *	Copyright (C) 2003, 2004, 2005 Timo Schulz
+ *	Copyright (C) 2003, 2004, 2005, 2006 Timo Schulz
  *
  * This file is part of WinPT.
  *
@@ -36,14 +36,12 @@
 BOOL CALLBACK
 pin_cb_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)
 {
-    static int hide = 1;
-    static pin_cb_ctx_s * pin;
-    const char * s;
+    static pin_cb_ctx_s *pin;
+    const char *s;
     int n, len;
 
     switch (msg) {
     case WM_INITDIALOG:
-	hide = 1;
 	pin = (struct pin_cb_ctx_s *)lparam;
 	if (!pin)
 	    BUG (0);
@@ -51,27 +49,29 @@
 	    s = pin->info_text;
 	else
 	    s = _("Please enter the PIN");
+	CheckDlgButton (dlg, IDC_PIN_HIDE, BST_CHECKED);
 	SetDlgItemText (dlg, IDC_PIN_HIDE, _("&Hide Typing"));
 	SetDlgItemText (dlg, IDCANCEL, _("&Cancel"));
-	CheckDlgButton (dlg, IDC_PIN_HIDE, BST_CHECKED);
+	SetDlgItemText (dlg, IDOK, _("&OK"));
 	SetDlgItemText (dlg, IDC_PIN_INFO, s);
 	center_window (dlg, NULL);
-	SetFocus (GetDlgItem (dlg, IDC_PIN_VALUE ));
+	SetFocus (GetDlgItem (dlg, IDC_PIN_VALUE));
 	SetForegroundWindow (dlg);
 	return FALSE;
 	
     case WM_COMMAND:
 	if (HIWORD (wparam) == BN_CLICKED && LOWORD (wparam) == IDC_PIN_HIDE) {
 	    HWND hwnd = GetDlgItem (dlg, IDC_PIN_VALUE);
-	    hide ^= 1;
+	    int hide = IsDlgButtonChecked (dlg, IDC_PIN_HIDE);
+
 	    SendMessage (hwnd, EM_SETPASSWORDCHAR, hide? '*' : 0, 0);
 	    SetFocus (hwnd);
 	}
-	switch( LOWORD( wparam ) ) {
+	switch (LOWORD (wparam)) {
 	case IDOK:
-	    n = SendDlgItemMessage( dlg, IDC_PIN_VALUE, WM_GETTEXTLENGTH, 0, 0 );
-	    if( !n ) {
-		msg_box( dlg, _("Please enter a PIN."), _("PIN"), MB_ERR );
+	    n = SendDlgItemMessage (dlg, IDC_PIN_VALUE, WM_GETTEXTLENGTH, 0, 0);
+	    if (!n) {
+		msg_box (dlg, _("Please enter a PIN."), _("PIN"), MB_ERR);
 		return FALSE;
 	    }
 	    if (!pin->which || pin->which == CARD_ADMIN_PIN) {
@@ -79,7 +79,7 @@
 		pin->apin = new char[n+2];
 		if (!pin->apin)
 		    BUG (0);
-		len = GetDlgItemText( dlg, IDC_PIN_VALUE, pin->apin, n+1 );
+		len = GetDlgItemText (dlg, IDC_PIN_VALUE, pin->apin, n+1);
 		if (len < 8) {
 		    msg_box (dlg, _("'Admin PIN' must be at least 8 characters long."),
 			     _("PIN"), MB_ERR);
@@ -97,8 +97,8 @@
 		sfree_if_alloc (pin->upin);
 		pin->upin = new char[n+2];
 		if (!pin->upin)
-		    BUG( NULL );
-		len = GetDlgItemText( dlg, IDC_PIN_VALUE, pin->upin, n+1 );
+		    BUG (NULL);
+		len = GetDlgItemText (dlg, IDC_PIN_VALUE, pin->upin, n+1);
 		if (len < 6) {
 		    msg_box( dlg, _("'User PIN' must be at least 6 characters long."),
 			     _("PIN"), MB_ERR );

Modified: trunk/Src/wptPassphraseDlg.cpp
===================================================================
--- trunk/Src/wptPassphraseDlg.cpp	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/Src/wptPassphraseDlg.cpp	2006-06-06 13:37:59 UTC (rev 225)
@@ -1,5 +1,5 @@
 /* wptPassphraseDlg.cpp - Dialog to get the passphrase
- *	Copyright (C) 2001-2005 Timo Schulz
+ *	Copyright (C) 2001-2006 Timo Schulz
  *
  * This file is part of WinPT.
  *
@@ -36,15 +36,44 @@
 
 
 struct passphrase_s {
-    char *title;    /* title of the dialog. */
-    char pwd[256];  /* the actual passphrase. */
-    int strict;	    /* do a simple check how good the passphrase is. */
+    char *title;    /* Title of the dialog. */
+    char pwd[256];  /* The actual passphrase. */
+    int strict;	    /* Do a simple check how good the passphrase is. */
     int repeat;	    /* Indicate last try was wrong. */   
     int cancel;	    /* 1 if user cancelled operation. */
     int not_empty;
+    gpgme_key_t key;
 };
 
 
+const char* get_keyinfo (gpgme_key_t key);
+
+
+/* Fill in the key information in the combo box,
+   according to the key in @key. */
+static void
+set_passphrase_hint (HWND dlg, gpgme_key_t key)
+{
+    const char *inf;
+    char *uid, *p;
+    size_t len;
+
+    uid = utf8_to_native (key->uids->name);
+    inf = get_keyinfo (key);	
+    len = strlen (uid) + strlen (inf) + 8;	
+    p = new char[len+1];
+    if (!p)
+	BUG (NULL);
+    _snprintf (p, len, "%s (%s)", uid, inf);
+    SendDlgItemMessage (dlg, IDC_PASSWD_KEYINF,
+			CB_ADDSTRING, 0, (LPARAM)(char *)p);
+    SendDlgItemMessage (dlg, IDC_PASSWD_KEYINF, CB_SETCURSEL, 0, 0);
+    EnableWindow (GetDlgItem (dlg, IDC_PASSWD_KEYINF), FALSE);
+    free_if_alloc (p);
+    free_if_alloc (uid);
+}
+
+
 /* Dialog procedure to request a passphrase from the user. */
 static BOOL CALLBACK
 passwd_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)
@@ -55,8 +84,8 @@
     switch (msg) {
     case WM_INITDIALOG:
         pwd = (passphrase_s *)lparam;
-        if (pwd == NULL)
-            dlg_fatal_error (dlg, "Could not get dialog param!");
+	if (!pwd)
+	    BUG (0);
         SetWindowText (dlg, _("Passphrase Dialog"));
 	CheckDlgButton (dlg, IDC_PASSWD_HIDE, BST_CHECKED);
         if (pwd->title)
@@ -65,9 +94,14 @@
 	    SetDlgItemText (dlg, IDC_PASSWD_INFO, _("Repeat Passphrase"));
 	else
 	    SetDlgItemText (dlg, IDC_PASSWD_INFO, _("Enter Passphrase"));
+	if (pwd->key)
+	    set_passphrase_hint (dlg, pwd->key);
+	else
+	    ShowWindow (GetDlgItem (dlg, IDC_PASSWD_KEYINF), SW_HIDE);
 	SetDlgItemText (dlg, IDC_PASSWD_HIDE, _("&Hide Typing"));
 	SetDlgItemText (dlg, IDCANCEL, _("&Cancel"));
-        SetFocus (GetDlgItem (dlg, IDC_PASSWD_PWD ));
+	SetDlgItemText (dlg, IDOK, _("&OK"));
+        SetFocus (GetDlgItem (dlg, IDC_PASSWD_PWD));
 	center_window2 (dlg, NULL, HWND_TOPMOST);
 	center_window (dlg, NULL);
         SetForegroundWindow (dlg);
@@ -86,6 +120,7 @@
 	    LOWORD (wparam) == IDC_PASSWD_HIDE) {
 	    HWND hwnd = GetDlgItem (dlg, IDC_PASSWD_PWD);
 	    int hide = IsDlgButtonChecked (dlg, IDC_PASSWD_HIDE);
+
 	    SendMessage (hwnd, EM_SETPASSWORDCHAR, hide? '*' : 0, 0);
 	    SetFocus (hwnd);
 	}
@@ -96,7 +131,8 @@
 	    nbytes = SafeGetDlgItemText (dlg, IDC_PASSWD_PWD, 
 					 pwd->pwd, DIM (pwd->pwd)-1);
 	    if (!nbytes && pwd->not_empty) {
-		msg_box (dlg, _("Please enter a passphrase."), _("Passphrase Dialog"), MB_ERR);
+		msg_box (dlg, _("Please enter a passphrase."), 
+			 _("Passphrase Dialog"), MB_ERR);
 		return TRUE;
 	    }
 
@@ -111,12 +147,12 @@
 		    return TRUE;
 	    }
             SetDlgItemText (dlg, IDC_PASSWD_PWD, "");
-            EndDialog (dlg, TRUE);
+            EndDialog (dlg, 1);
             return TRUE;
             
         case IDCANCEL:
             pwd->cancel = 1;
-            EndDialog (dlg, FALSE);
+            EndDialog (dlg, 0);
             return TRUE;
         }
         break;
@@ -126,6 +162,32 @@
 }
 
 
+/* Same as request_passphrase(), but with an additional hint about the
+   key to unprotect. */
+char*
+request_key_passphrase (gpgme_key_t key, const char *title, int *ret_cancel)
+{
+    passphrase_s pass;
+    char *p;
+
+    *ret_cancel = 0;
+    memset (&pass, 0, sizeof (pass));
+    pass.key = key;
+    pass.title = title? m_strdup (title) : NULL;
+
+    DialogBoxParam (glob_hinst, (LPCTSTR)IDD_WINPT_PASSWD, glob_hwnd,
+		    passwd_dlg_proc, (LPARAM)&pass);
+    free_if_alloc (pass.title);
+    if (pass.cancel == 1) {
+	*ret_cancel = 1;
+	return NULL;
+    }
+    p = m_strdup (pass.pwd);
+    wipememory (pass.pwd, sizeof (pass.pwd));
+    return p;
+}
+
+
 /* Request a passphrase from the user. @title is the title of the
    dialog and @ret_cancel is true if user cancelled the operation.
    Return value: the passphrase or NUL for an error. */
@@ -137,25 +199,20 @@
 
     *ret_cancel = 0; /* reset */
     memset (&pass, 0, sizeof (pass));
-    if (title && *title) {
+    if (title && *title)
 	pass.title = m_strdup (title);
-	if (!pass.title)
-	    BUG (0);
-    }
     pass.repeat = flags & PASSDLG_INIT? 0 : 1;
     pass.strict = flags & PASSDLG_STRICT? 1 : 0;
     pass.not_empty = flags & PASSDLG_NOTEMPTY? 1: 0;
     DialogBoxParam (glob_hinst, (LPCTSTR)IDD_WINPT_PASSWD, glob_hwnd,
 		    passwd_dlg_proc, (LPARAM)&pass);
+    free_if_alloc (pass.title);
     if (pass.cancel == 1) {
 	*ret_cancel = 1;
 	return NULL;
     }
     p = m_strdup (pass.pwd);
-    if (!p)
-	BUG (0);
-    free_if_alloc (pass.title);
-    memset (&pass, 0, sizeof (pass));
+    wipememory (pass.pwd, sizeof (pass.pwd));
     return p;
 }
 

Modified: trunk/Src/wptProxySettingsDlg.cpp
===================================================================
--- trunk/Src/wptProxySettingsDlg.cpp	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/Src/wptProxySettingsDlg.cpp	2006-06-06 13:37:59 UTC (rev 225)
@@ -1,5 +1,5 @@
 /* wptProxySettingsDlg.cpp - Dialog for the proxy settings
- *	Copyright (C) 2002-2005 Timo Schulz
+ *	Copyright (C) 2002-2006 Timo Schulz
  *
  * This file is part of WinPT.
  *
@@ -36,15 +36,19 @@
 #define combo_get_sel(dlg, id) \
     SendDlgItemMessage ((dlg), (id), CB_GETCURSEL, 0, 0)
 
+
+/* Check if the edit control (@id) contains a valid number. */
 static int
 check_number (HWND dlg, int id)
 {
     char buf[32];
     size_t i;
 
-    GetDlgItemText (dlg, id, buf, 31);
+    i = GetDlgItemText (dlg, id, buf, 31);
+    if (!i)
+	return -1;
     for (i=0; i < strlen (buf); i++) {
-	if (!isdigit ((unsigned int)buf[i]))
+	if (!isdigit (buf[i]))
 	    return -1;
     }
     return 0;
@@ -59,10 +63,10 @@
     
     ncount = GetDlgItemText (dlg, IDC_PROXY_PWD, t, DIM (t)-1);
     if (ncount > 0)
-        ctx->pass = strdup (t);
+        ctx->pass = m_strdup (t);
     ncount = GetDlgItemText (dlg, IDC_PROXY_USER, t, DIM (t)-1);
     if (ncount > 0)
-        ctx->user = strdup (t);
+        ctx->user = m_strdup (t);
     ncount = GetDlgItemText (dlg, IDC_PROXY_HOST, t, DIM (t)-1);
     if (ncount > 0) {
 	if (check_IP_or_hostname (t)) {
@@ -72,7 +76,7 @@
 	/* XXX: check prefix */
 	if (!strncmp (t, "http://", 7))
 	    pos = 7;
-        ctx->host = strdup (t + pos);
+        ctx->host = m_strdup (t + pos);
     }
     else {
 	msg_box (dlg, _("Please enter the proxy hostname."), 
@@ -106,6 +110,8 @@
 }
 
 
+/* Enable or disable the authentication elements based on
+   the value @val. */
 static void
 enable_proxy_auth (HWND dlg, int val)
 {
@@ -115,13 +121,14 @@
 }
 
 
+/* Fill in all valid proxy protocols. */
 static void
 init_proxy_protocols (HWND dlg)
 {
     HWND cb = GetDlgItem (dlg, IDC_PROXY_PROTO);
     combox_add_string (cb, (char *)"NONE");
     combox_add_string (cb, (char *)"HTTP");
-    /*combox_add_string (cb, (char *)"SOCKS5");*/
+    /*XXX: combox_add_string (cb, (char *)"SOCKS5");*/
     SendMessage (cb, CB_SETCURSEL, (WPARAM)0, 0);
 }
 
@@ -162,11 +169,6 @@
 	SetForegroundWindow (dlg);
         break;
         
-    case WM_SYSCOMMAND:
-        if (LOWORD (wparam) == SC_CLOSE)
-            EndDialog (dlg, TRUE);
-        return FALSE;
-        
     case WM_COMMAND:
 	switch (HIWORD (wparam)) {
 	case CBN_SELCHANGE:

Modified: trunk/Src/wptSigTreeDlg.cpp
===================================================================
--- trunk/Src/wptSigTreeDlg.cpp	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/Src/wptSigTreeDlg.cpp	2006-06-06 13:37:59 UTC (rev 225)
@@ -17,6 +17,9 @@
  * along with WinPT; if not, write to the Free Software Foundation, 
  * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
  */
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
 
 #include <windows.h>
 #include <commctrl.h>
@@ -101,7 +104,7 @@
 
 
 static void
-create_popup (HWND dlg)
+show_popup (HWND dlg)
 {
     HMENU hm;
     POINT p;
@@ -116,6 +119,7 @@
 }
 
 
+/* Get the signature properties for the selected item. */
 static void
 show_sigprops (HWND dlg)
 {
@@ -173,7 +177,7 @@
 	if (nft->code == NM_DBLCLK)
 	    show_sigprops (dlg);
 	else if (nft->code == NM_RCLICK)
-	    create_popup (dlg);
+	    show_popup (dlg);
 	break;
 
     case WM_COMMAND:

Modified: trunk/Src/wptTextInputDlg.cpp
===================================================================
--- trunk/Src/wptTextInputDlg.cpp	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/Src/wptTextInputDlg.cpp	2006-06-06 13:37:59 UTC (rev 225)
@@ -1,5 +1,5 @@
 /* wptTextInputDlg.cpp - Dialog for getting text
- *	Copyright (C) 2001-2005 Timo Schulz
+ *	Copyright (C) 2001-2006 Timo Schulz
  *
  * This file is part of WinPT.
  *
@@ -60,25 +60,27 @@
         SetDlgItemText (dlg, IDC_TEXT_INPUT, buf);
     }
     free_if_alloc (buf);
-} /* load_file_contents */
+}
 
 
 BOOL CALLBACK
 text_input_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)
 {
     static text_input_s *ctx;
+    const char *file;
     char *p;
-    size_t n;
+    DWORD n;
     
     switch (msg) {
     case WM_INITDIALOG:
         ctx = (text_input_s *)lparam;
-        if (ctx == NULL)
-            dlg_fatal_error (dlg, "Could not get dialog param.");
+	if (!ctx)
+	    BUG (0);
         SetWindowText (dlg, _("Text Input"));
         switch (ctx->type)  {
         case 0: 
-	    SetDlgItemText (dlg, IDC_TEXT_INFO, _("Enter the text that was signed"));
+	    SetDlgItemText (dlg, IDC_TEXT_INFO, 
+			    _("Enter the text that was signed"));
 	    break;
         }
 	SetDlgItemText (dlg, IDCANCEL, _("&Cancel"));
@@ -87,33 +89,27 @@
         return TRUE;
         
     case WM_COMMAND:
-        switch( LOWORD(wparam) ) {
+        switch (LOWORD (wparam)) {
         case IDC_TEXT_FILE:
-            const char *file;
-            
-            file = get_fileopen_dlg( dlg, _("Text Input from File"), NULL, NULL );
-            if( file )
-                load_file_contents( dlg, file );
+            file = get_fileopen_dlg (dlg, _("Text Input from File"), NULL, NULL);
+            if (file)
+                load_file_contents (dlg, file);
             break;
             
         case IDOK:
-            p = new char[100*1024+1];
-            if (!p)
-		BUG (0);
-            n = GetDlgItemText (dlg, IDC_TEXT_INPUT, p, 100*1024);
-            if (n > 0) {
-                ctx->length = n;
-                ctx->data = new char[n+1];
-		if (!ctx->data)
+	    n = item_get_text_length (dlg, IDC_TEXT_INPUT);
+	    if (n < 1) {
+		ctx->length = 0;
+		ctx->data = NULL;
+	    }
+	    else {
+		p = new char[n+2];
+		if (!p)
 		    BUG (0);
-		memset (ctx->data, 0, n+1);
-                strcpy (ctx->data, p);
+		n = GetDlgItemText (dlg, IDC_TEXT_INPUT, p, n+1);
+                ctx->length = n;
+                ctx->data = p;
             }
-            else {
-                ctx->length = 0;
-                ctx->data = NULL;
-            }
-	    free_if_alloc (p);
             EndDialog (dlg, TRUE);
             return TRUE;
             
@@ -127,4 +123,4 @@
     }
     
     return FALSE;
-} /* text_input_dlg_proc */
+}

Modified: trunk/Src/wptUtil.cpp
===================================================================
--- trunk/Src/wptUtil.cpp	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/Src/wptUtil.cpp	2006-06-06 13:37:59 UTC (rev 225)
@@ -101,7 +101,7 @@
     if (!strchr (email, '@'))
 	return -1;
     for (i=0; i < strlen (email); i++) {
-	if (isdigit (email[i]) || isalpha (email[i])
+	if (isxdigit (email[i]) || isalpha (email[i])
 	    || strchr (allowed, email[i]))
 	    continue;
 	else
@@ -122,8 +122,7 @@
     if (end > strlen (str) || begin > strlen (str) || (end-begin) < 0)
 	return NULL;
 
-    /*p = new char[end-begin+1]; XXX: fixme*/
-    p = (char*)calloc (1, end-begin+1);
+    p = new char[end-begin+1];
     if (!p)
 	abort ();
 
@@ -137,25 +136,28 @@
 /* Remove %AB sequences from the input buffer @in
    and store the raw data in @out. */
 void
-unhexify_buffer (const char *in, char **out)
+unhexify_buffer (const char *in, char **r_out)
 {
-    char temp[3];
-    size_t pos, i=0;
+    char temp[3], *out;
+    size_t len, pos, i=0;
 
-    *out = (char*)calloc (1, strlen (in)+1);
-    if (!*out)
+    len = strlen (in);
+    out = new char[len+1];
+    if (!out)
 	abort ();
-    for (pos = 0; pos < strlen (in); pos++) {
+    memset (out, 0, len+1);
+    for (pos = 0; pos < len; pos++) {
 	if (in[pos] == '%' && in[pos+1] == '%')
-	    (*out)[i++] = '%';
+	    out[i++] = '%';
 	else if (in[pos] == '%') {
 	    temp[0] = in[++pos];
 	    temp[1] = in[++pos];
 	    temp[2] = 0;
-	    (*out)[i++] = (char)strtoul (temp, NULL, 16);
+	    out[i++] = (char)strtoul (temp, NULL, 16);
 	}
 	else
-	    (*out)[i++] = in[pos];
+	    out[i++] = in[pos];
     }
-    (*out)[i] = 0;
+    out[i] = 0;
+    *r_out = out;
 }

Modified: trunk/THANKS
===================================================================
--- trunk/THANKS	2006-06-04 10:13:20 UTC (rev 224)
+++ trunk/THANKS	2006-06-06 13:37:59 UTC (rev 225)
@@ -1,13 +1,14 @@
 I have to thank so many people, but I can't rembember all their names.
-If anybody think that he/she is missing here, please mail me ;-). My
-thanks goes to the GnuPG, GnuPA team, all people from my mailing lists
+If anybody think that he/she is missing here, please mail me. 
+My thanks goes to the GnuPG, GnuPA team, all people from my mailing lists
 and the gnupg mailings list and all the other people who helped me to
 improve WinPT :-). Especially those users who reported all the minor
-(and major problems) via the (wald.intevation.org) bug tracking system.
+(and major problems) via the (wald.intevation.org) bug tracking system
+and/or via personal emails.
 
-Special thanks to Ralf Kreutzmann who maintaines the installer and
-provided a forum for German speaking WinPT users. And of course for
-all his bug reports he sent to me.
+Special thanks to Ralf Kreutzmann who maintained the GnuPT installer 
+and provided a forum for German speaking WinPT users. And of course 
+for all his bug reports he sent to me.
 
 Kurt Fitzner for continuing the work on MyGPGME and for all his
 suggestions and bug reports he sent to me.



More information about the Winpt-commits mailing list