/[winpt]/trunk/Src/ChangeLog
ViewVC logotype

Diff of /trunk/Src/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 12 by twoaday, Thu Apr 14 12:56:25 2005 UTC revision 176 by twoaday, Mon Feb 13 09:38:03 2006 UTC
# Line 1  Line 1 
1  2001-01-21  Timo Schulz <[email protected]>  2006-02-10  Timo Schulz  <[email protected]>
2    
3      * wptNLS.cpp: ported to C++.          * wptKeyPropsDlg.cpp (props_dlg_proc): Removed unused vars.
4      (gettext): Remove CP850 to ISO88591 conversation.          * wptKeyEditDlgs.cpp (do_editkey_check): Use winpt_key_t
5            for the dialog param.
6  2001-01-28  Timo Schulz <[email protected]>          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Use new list
7            signature dialog by default.
8      * wptHotkey.cpp: (register_hotkey): Hotkey registration.          * wptKeysigDlg.cpp (sigprops_dlg_proc): Use directly
9      (unregister_hotkey): Hotkey removing.          gpgme_key_sig_t as param.
10      * wptHokey.h: New.          (keysig_dlg_proc): Change param for property dialog.
11      * wptWndHook.cpp:          * wptSigTreeDlg.cpp (sigtree_load): Skip revoked user-ids
12      (wpt_cpt_proc): Window hook to save the current windows.          and use icons.
13      * wptWndHoo.h: New.          (sigtree_dlg_proc): Allow to execute old list dialog to
14      * wptMainProc.cpp: (wpt_main_proc): Add hotkey messages.          edit the signatures.
15      * WinPT.cpp: (WinMain): Add hotkey registration.          
16    2006-02-09  Timo Schulz  <[email protected]>
17  2001-01-29  Timo Schulz <[email protected]>  
18            * wptRegistry.cpp (set_winpt_reg_prefs): Removed keylist mode.
19      * wptClipboard.cpp: (clip_is_already_secure):          * wptNLS.c (gettext_localize_dialog): New.
20      Modify the pgp data detection.          * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Add 'Cancel' button
21            to avoid to reload the key cache.
22  2001-01-31  Timo Schulz <[email protected]>          * wptClipEncryptDlg.cpp (clipenc_dlg_proc): Drop old 'normal'
23            list mode.
24      * wptKeygenDlg.cpp: (wpt_keygen_proc): Passphrase sanity check.          * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Likewise.
25      * wptW32API.cpp: New.          * wptPreferencesDlg.cpp (on_init_dialog): New. Move dialog
26      * WinPT.cpp: (WinMain): Change the keyring checking code.          initiation code to this function.
27            (prefs_dlg_proc): Use it here.
28  2001-02-01 Timo Schulz <[email protected]>          
29    2006-02-07  Timo Schulz  <[email protected]>
30      * wptW32API.cpp: (w32_get_edit_text): New.  
31      (w32_set_menu_text): New.          * wptKeyEdit.cpp (setNoPassphrase): New.
32      (w32_strdup): New.          (getValidDays): New.
33      * wptMailPlugin.cpp: (oe_***): New. Basic OE interface.          * wptKeysignDlg.cpp (keysign_dlg_proc): Check on init
34      * Create all dialogs windows in the foreground.          if the key is protected.
35            * wptKeyEditDlgs.cpp (keyedit_addphoto_dlg_proc): Handle
36  2001-02-02  Timo Schulz <[email protected]>          keys without a passphrase.
37            (keyedit_addrevoker_dlg_proc): Likewise.
38      * wptW32API.cpp: (w32_hit_key): New.          
39      (w32_rel_key): New.  2006-02-04  Timo Schulz  <[email protected]>
40      (w32_copy_to_clip): New.  
41      (w32_insert_from_clip): New.          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Check for
42      (w32_get_clip_text): New.          at least one ultimately trusted key.
43      (w32_set_clip_text: New.          * wptKeyManager.cpp (km_refresh_key_from_keyserver):
44      (w32_show_if_icon): New.          Only check inet connection if we refresh all keys.
45            * wptGPGUtil.cpp (gpg_extract_keys): New.
46  2001-02-03  Timo Schulz <[email protected]>          * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): Use textmode.
47            * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Likewise.
48      * wptMailPlugin.cpp: (oe_find_msg_window): Fix window handles.          * wptClipSignDlg.cpp (get_selected_key): New.
49      (oe_find_addr_window): Ditto.          (one_key_proc): Use it here.
50      (oe_find_main_window): Ditto.          (count_useable_seckeys): New.
51            * wptSigTreeDlg.cpp (sigtree_dlg_proc): New.
52  2001-02-04    Timo Schulz <[email protected]>          * wptKeyEditDlgs.cpp (diff_time): Removed.
53            (w32_mktime): New.
54      * wptSignDlg.cpp: (wpt_sign_proc): Add secret key listing.          (keyedit_addsubkey_dlg_proc): Use it here.
55      * wptMainProc.cpp: (wpt_main_proc):          
56      Remove ciphertext checks for signing and encrypting.  2006-02-02  Timo Schulz  <[email protected]>
57      (allow double encryption).  
58            * wptW32API.cpp (get_temp_name): New.
59  2001-02-07    Timo Schulz <[email protected]>          * wptKeyserver.cpp (ldap_recvkey): Use it here.
60            * wptKeyPropsDlg.cpp (get_photo_tmpname): Likewise.
61      * wptClipEditDlg.cpp: (clip_edit_dlg_proc): Add some sanity checks.          * wptGPGUtil.cpp (create_tempfile): Likewise.
62      * wptExportDlg.cpp: (clip_export_dlg_proc): Ditto.          * wptImportList.cpp (implist_load): Likewise.
63            * wptKeyCache.cpp (parse_attr_data): Likewise.
64  2001-02-10  Timo Schulz <[email protected]>          (w32_tempfile): Removed.
65            * wptGPGME.cpp (check_ultimate_trusted_key): New.
66      * wptMainProc.cpp: Move ctb_proc and hotkey inits to this file.          
67      * wptKeylistElement.cpp: New.  2006-01-31  Timo Schulz  <[email protected]>
68      * wptListElement.cpp: Remove.  
69      * wptW32API.cpp: Insert all lv_*** functions.          * wptMainProc.cpp (winpt_main_proc): Fix usage of the
70      * wptKeylistElement.cpp: (wpt_lv_keylist_release_key): New.          help system.
71      (wpt_lv_keylist_release_keys): Ditto.          * wptListView.cpp (listview_set_chkbox_style): New.
72      * wptW32API.cpp: (w32_get_thread_id): New.          (listview_get_item_state): Support new checkbox style.
73      (w32_attach_thread_input): New.          (listview_new): Reset flag var.
74      * wptMailPlugin.cpp: (oe_get_message): Add thread attach mechanism.          * wptKeylist.cpp (keylist_build): Support new checkbox style.
75      (oe_get_message): Add thread attach mechanism.          
76      (oe_encrypt): Modify for the attach treach mechanism.  2006-01-30  Timo Schulz  <[email protected]>
77      Add sanity check for recipients.  
78            * WinPT.cpp (check_readonly_attr): New.
79  2001-02-17  Timo Schulz <[email protected]>          (load_gpg_env): Use it here.
80            (WinPT): Make the the default key is searched in the
81      * wptRegistry.cpp: (get_reg_entry): Return the GnuPG homedir from          secret key cache.
82      the registry.          Change error message.
83      (set_reg_entry): Set a gnupg registry key.          * wptRegistry.cpp (regist_int_winpt): Make sure
84      * wptGPG.cpp: Modify all function for the use with get_reg_entry().          the register extension is only offered once to the user.
85      * WinPT.cpp: Change the way for the gpg searching mechanism.          * wptKeyPropsDlg.cpp (get_photo_tmpname): Always use
86      * wptGPGPrefsDlg.cpp: New dialog for dynamic GPG configuration.          temp directory. Fixed a privilege problem.
87      * wptClipImportDlg.cpp: (key import dialog): New.          
88      * wptKeylistElement.cpp:  2006-01-29  Timo Schulz  <[email protected]>
89      (wpt_lv_implist_build): Build up the key import list.  
90      (wpt_lv_implist_add_key): Insert a key into the import list.          * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Allow to use ESC
91      (wpt_lv_implist_dummy): Dummy to build up a box with a fixed size.          to quit dialog.
92            * wptKeysignDlg.cpp (sig_class_dlg_proc): More space for
93  2001-02-19  Timo Schulz <[email protected]>          translations. Directly return sig class.
94            (keysign_dlg_proc): Change msgbox title.
95      * wptRegistry.cpp: (is_installed): Remove.          * wptKeyEdit.cpp (signUserid): New.
96      (regist_inst_winpt): Add selfcheck.          (getUseridIndex): New.
97      (regist_inst_gpg): New. Add gpg releated registry entries.          (getKeyIndex): New.
98      (regist_inst_mo): New. Add nls related path.          (getSigIndex): New.
99      (get_reg_entry), set_reg_entry(): Modify to be more flexible.          (clear): New.
100      (set_reg_entry_gpg): Handy functions for get_reg_entry.          * wptKeyEditCB.cpp (cmd_sign_handler): Allow to select
101      (set_reg_entry_mo): Ditto.          user-id first.
102      (get_reg_entry_gpg): Ditto.          * wptKeyEditDlgs.cpp (lookup_cmd): New.
103      (get_reg_entry_mo(): Ditto.          (do_editkey_sign_userid): New.
104      * wptGPGPrefsDlg.cpp, wptNLS.cpp: Add support for the locale environment.          (do_init_cmdlist): Differ between key pairs and public keys
105      * wptGPG.cpp: (check_gpg_optfile): Figure out if the option file.          and allowed actions.
106      include keyring entries (2x)          (keyedit_change_ownertrust): Show msgbox on success.
107      (check_gpg_path): Include the check_gpg_optfile() check.          (get_default_key): New.
108            * wptPassphraseDlg.cpp (request_passphrase): Reset @cancel.
109  2001-02-20  Timo Schulz <[email protected]>          
110    2006-01-27  Timo Schulz  <[email protected]>
111      * wptGPGPrefsDlg.cpp: Add some sanity checks for the value.  
112      * wptClipImportDlg.cpp: Add some new code.          * WinPT.cpp (WinMain): Set minimal list mode as default.
113            * wptKeyCache.cpp (gpg_keycache_sync): Handle special v3 keys.
114  2001-02-21  Timo Schulz <[email protected]>          
115    2006-01-25  Timo Schulz  <[email protected]>
116      * wptGPG.cpp: Fix the check_gpg_optfile() code.  
117          (gpg_errstr): Define some error constants to be more verbose.          * wptRegistry.cpp (get_reg_entry_gpg): Return NULL if
118          (set_gpg_options): New. Manipulate the options file.          the key exist with no value.
119          (get_gpg_options): New. Read in the options file.          * wptMDSumDlg.cpp (mdsum_dlg_proc): Translate string.
120      * wptFile.cpp: (get_file_size): New.          * wptKeysignDlg.cpp (do_fill_seclist): Select the
121      * wptGPGOptDlg.cpp: New. Dialog for editing the options file          default key if possible.
122            * wptFirstRunDlg.cpp (firstrun_dlg_proc): Directly
123  2001-02-22  Timo Schulz <[email protected]>          return the choice.
124            * wptKeylist.cpp (get_key_desc): New.
125      * wptGPG.cpp: (check_line): New. Check if the line contains a valid          (keylist_upd_key): Free memory.
126      gpg argument.          * wptKeyCache.cpp (gpg_keycache_get_default_key): New.
127      (check_gpg_options): New. Parses each buffer line to check_line().          (gpg_keycache_set_default_key): New.
128            * WinPT.cpp (gpg_prefs_ok): New.
129  2001-02-24  Timo Schulz <[email protected]>          (WinMain): Only start gpg prefs if needed.
130            
131      * wptGPG.cpp: (check_gpg_path): Fix a bug.  2006-01-24  Timo Schulz  <[email protected]>
132     (check_gpg_options): Fix some bugs.  
133            * wptKeyManager.cpp (km_dropped_file_import): New.
134  2001-02-25  Timo Schulz <[email protected]>          * wptKeyManagerDlg.cpp (keylist_subclass_proc): Allow
135            to drop files and try to import them.
136      * wptGPGPrefsDlg.cpp: Add some new translation strings.          (keymanager_dlg_proc): Pass kmi as opaque to the subclass
137      * wptKeyGenDlg.cpp: Add all dialog text to the NLS suite.          proc.
138      * wptMainProc.cpp, wptClipDecryptDlg.cpp: Change to new packet parser.          
139      * wptClipImportDlg.cpp: Finished basic interface.  2006-01-23  Timo Schulz  <[email protected]>
140    
141  2001-02-27  Timo Schulz <[email protected]>          * wptMDSumDlg.cpp (mdsum_dlg_proc): Allow to send output
142            to the clipboard.
143      * wptKeylistWidget.cpp: New. Implementation of a W32 keylist control.          * wptKeyEditDlgs.cpp (keyedit_change_ownertrust): New.
144      * wptClipKeytrustDlg.cpp: Index was counted from 0 (should be from 1):          (do_editkey_enable_disable): New.
145      Fixed.          * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Usability fix. Do not
146            close the dialog if the user cancelled the ownertrust dialog.
147  2001-03-15  Timo Schulz <[email protected]>          * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Return TRUE to indicate
148            an update of any value.
149      * wptClipEncryptDlg.cpp: Fix translation.          
150      * wptKeygenDlg.cpp: Fix the names of the button (avoid confused users).  2006-01-21  Timo Schulz  <[email protected]>
151      * wptKeymiscDlg.cpp: Fix the key deleting stuff.  
152            * wptKeyCache.cpp (keycache_next_key): Handle the case
153  2001-03-16  Timo Schulz <[email protected]>          that there is a secret key without a public part.
154            * wptKeyserver.cpp (kserver_save_conf): Save ports.
155      * wptDlgs.h: Add new dialog callback function.          * wptKeyserverDlg.cpp (keyserver_modify_dlg_proc):
156      * wptKeysigDlg.cpp: New. Key signature listing dialog.          Reset keyserver name.
157            * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Just indicate
158  2001-03-18  Timo Schulz <[email protected]>          an update, do not update the cache.
159            * wptFileManagerDlg.cpp (file_import_dlg_proc): Use one
160      * wptClipVerifyDlg.cpp: New: stub for further verify dialogs.          dialog for both clipboard and file imports.
161      * wptAgent.cpp: New: Experimental passphrase caching.          * wptKeyManager.cpp (km_file_import, km_clip_import):
162            Changes to support new update system.
163  2001-03-19  Timo Schulz <[email protected]>          (gpg_clip_import): New.
164            * wptKeyManagerDlg.cpp (km_gui_import): New.
165      * wptVerifyList.cpp: New control for the verify dialog.          (find_keypos): Rewritten.
166      * wptClipVerifyDlg.cpp: Rewrote          (refresh_keylist): Improved error checking.
167            
168  2001-03-20  Timo Schulz <[email protected]>  2006-01-20  Timo Schulz  <[email protected]>
169    
170      * wptClipDecryptDlg.cpp: Rewrote          * wptKeyCache.cpp (w32_tmpfile): New.
171            (parse_attr_data): Use it here.
172  2001-03-21  Timo Schulz <[email protected]>          * wptGPGUtil.cpp (gpg_get_photoid_data): Reset @ndata var.
173            
174      * WinPT.cpp: (WinMain): Re-activate the enable debug switch.  2006-01-19  Timo Schulz  <[email protected]>
175      * wptKeylist.cpp: (keylist_add_key): Ignore invalid keys.  
176            * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Do not
177  2001-03-28  Timo Schulz <[email protected]>          reload the entire cache, just update the key.
178            * wptFileVerifyDlg.cpp (file_verify_dlg_proc): Likewise.
179      * wptClipEncryptDlg.cpp: (clip_encrypt_dlg_proc):          * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Set update flag.
180      Added the keyid to the "no trust" message.          * wptKeyRevokersDlg.cpp (key_revokers_dlg_proc): Likewise.
181      * wptKeyserverDlg.cpp: (check_pattern): New:          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Update key
182      Do some sanity checks of the search pattern.          if need after showing the properties.
183      * wptMainProc.cpp: (wpt_main_proc): Add agent support.          * wptGPGMEData.cpp (gpg_data_putc): Fix off-by-one bug.
184      * wptHotkey.cpp: Add agent support.          * wptKeyManager.cpp (km_import_file): New param. Changed
185            all callers.
186  2001-03-30  Timo Schulz <[email protected]>          (km_import_clip): Likewise.
187            (delete_keys_from_cache): Delete secret part if available.
188      * wptW32API.cpp: (new_strdup): Remove.          * wptClipImportDlg.cpp (print_import_status): If there
189      * wptW32API.h: Ditto.          are too many new keys, use reload code.
190      * wptWndHook.cpp: (get_cbt_curr_wnd): Return the current window.          
191      * wptKeygenDlg.cpp: (clear_dlg_fields): New: Clear all text fields.  2006-01-18  Timo Schulz  <[email protected]>
192    
193  2001-03-31  Timo Schulz <[email protected]>          * wptKeyEditCB.cpp (cmd_delsig_handler): Do not assume
194            the self sig is always index 0. Noted by Kurt.
195      * wptClipSignDlg.cpp: (clip_sign_dlg_proc): If no key was choosen,          * wptPassphraseCB.cpp (passphrase_dlg_proc): Do not assume
196      the GPG default key will be used.          the key user-ID contains an email address.
197            * wptKeyEditDlgs.cpp (do_find_userid): Likewise.
198  2001-04-02  Timo Schulz <[email protected]>          (do_editkey_deluid): Likewise.
199            (do_editkey_revuid): Likewise.
200      * WinPT.cpp: (set_gpgme_debug_env): New: Set the environment variable.          
201      * wptClipSignDlg.cpp: (clip_sign_dlg_proc): Now the keylist widget only  2006-01-18  Timo Schulz  <[email protected]>
202      contains valid keys.  
203      * wptClipEncryptDlg.cpp: (clip_encrypt_dlg_proc): Ditto.          * wptListview.cpp (listview_del_sel_items): Fixed index
204            calculation. This fixed a lot of problems with the KM listview
205  2001-04-04  Timo Schulz <[email protected]>          update.
206            (listview_del_all): Renamed to...
207      * wptClipDecryptDlg.cpp (passphrase_callback_proc): Remove the static          (listview_del_all_items): ..this. Changed all callers.
208      passphrase. Now a callback context is used.          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Just refresh
209      (passphrase_cb): Ditto.          list when file import contained new/updated keys.
210      (clip_decrypt_dlg): Ditto.          * wptKeyManager.cpp (km_file_import): Indicate if the
211      * wptWndHook.cpp (cbt_thread): New. Thread to enable CBT hook.          import contained any new/update keys.
212      (install_cbt_hook): Modify for the new thread model.          * wptClipImportDlg.cpp (print_import_status): Just mark
213      (remove_cbt_hook): Ditto.          keys which actually changed.
214      * wptW32API.cpp: (init_crtical_section): New. Make the code MT safe.          
215      (delete_critical_section): Ditto.  2006-01-17  Timo Schulz  <[email protected]>
216      (lock): Ditto.  
217      (unlock): Ditto.          * wptMAPI.cpp (mapi_send_pubkey_ext): New.
218            * wptKeysigDlg.cpp (do_delsig): Just flag the key, do not
219  2001-04-06  Timo Schulz <[email protected]>          update it.
220            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Be more
221      * wptOwnertrustDlg.cpp: New. (ownertrust_dlg_proc): New.          careful about const pointers.
222      * wptKeyTrustDlg.cpp: (key_trust_dlg_proc): Add new button for the          * wptKeyEditDlgs.cpp (get_subkey_fingerprint): Renamed to..
223      ownertrust dialog.          (get_subkey_keyid): ..this. Fix problem that key was updated
224            twice and this corrupted.
225  2001-04-06  Timo Schulz <[email protected]>          (keyedit_add_subkey): Set @lv item in the callback context.
226            
227      * wptGPG.cpp: (check_gpg_path): Fix a small error.  2006-01-16  Timo Schulz  <[email protected]>
228      * WinPT.cpp: (WinMain): Add a dialog for the possibity that it's the  
229      first time a user started WinPT.          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Restore
230      * wptClipboard.cpp: (clip_isalready_secured): Check the begin and          window if it lost focus during the operation. Thanks to Kurt.
231      end PGP header.          Update keylist when the window is enabled.
232            (find_keypos): New.
233  2001-04-07  Timo Schulz <[email protected]>          * wptKeyCache.cpp (keycache_next_key): Reset update status.
234            (gpg_keycache_next_updated_key): New arg @r_status. Change all
235      * wptAgent.cpp: (agent_new): Rename to agent_init and modify source.          callers.
236      (agent_destroy): Ditto.          (gpg_keycache_update_key): Different status for new and updated.
237      (agent_passphrase_cache): Ditto.          Include key signatures.
238      (agent_passphrase_remove): Ditto.          * wptClipImportDlg.cpp (print_import_status): Mark all
239      (agent_passphrase_get): Ditto.          imported keys.
240            * wptMainProc.cpp (clip_gpg_dlg): On import refresh KM keylist.
241  2001-04-09  Timo Schulz <[email protected]>          Thanks to Kurt.
242            * wptKeysigDlg.cpp (recv_missing_keys): Mark all received keys.
243      * wptClipboard.cpp: (clip_get_pgp_type): New. Return the PGP packet          (do_delsig): Directly reload key. Thanks to Kurt.
244      type. Kludge for decrypt/verify.          * wptGPGME.cpp (keycache_set_reload, keycache_get_reload):
245      * wptMainProc.cpp: (wpt_main_proc): Remove verify and put the          Removed.
246      code into the decrypt routine.          * wptKeygenDlg.cpp (keygen_dlg_proc): Use new update system.
247      * wptClipImportDlg.cpp: (clip_import_dlg_proc): New button to start          * wptClipImportDlg.cpp (clip_import_dlg_proc): Return
248      the key management after import.          FALSE if no keys were updated or operation was cancelled.
249            * wptCommonDlg.cpp (http_dlg_proc): Fix title selection code.
250  2001-04-09  Timo Schulz <[email protected]>          * wptKeylist.cpp (get_ext_validity): Handle disabled keys.
251            * wptKeyPropsDlg.cpp (keyprops_dlg_proc):
252      * wptGPG.cpp: (check_line): Ignore empty lines.          Do not allow to change ownertrust of invalid keys.
253      (check_gpg_options): Ditto.          Changed translation.
254            Slightly different user interface.
255  2001-04-12  Timo Schulz <[email protected]>          
256    2006-11-14  Timo Schulz  <[email protected]>
257      * wptHotkeys.cpp: (register_single_hotkey): Add code for the current  
258      window stuff.          * wptW32API.cpp (make_special_filename): New.
259      * wptMainProc.cpp: (wpt_main_proc): WM_HOTKEY. Add the current window          * wptRegistry.cpp (set_winpt_reg_prefs, get_winpt_reg_prefs):
260      hotkeys.          Removed 'KeyServer' item.
261      * wptW32API.cpp: (attach_thread_input): Split up the functions into          * wptPreferencesDlg.cpp (prefs_dlg_proc): Remove keyserver
262      two parts. The attach flags is always set.          config item.
263      (detach_thread_input): See above. The attach flags is never set.          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Disable group
264      * wptCurrWnd.cpp: New. Code for the current window stuff.          window until we really use it.
265      (get_window_contents): Extract the text from the given window to          * wptKeyserver.cpp (kserver_save_conf): New.
266      the clipboard.          (wsock_end): Save keyserver config file.
267      (set_window_contents): Insert clipboard into the given window.          * wptKeyserverDlg.cpp (keyserver_edit): New.
268            (keyserver_remove): New.
269  2001-04-13  Timo Schulz <[email protected]>          (keyserver_add): New.
270            (fill_keyserv_types): New.
271      * wptMailPlugin.cpp: (oe_set_message): Change the id's for          (keyserver_modify_dlg_proc): New.
272      the attach_thread_input.          (keyserver_dlg_proc): Provide context menu to modify the
273      (oe_get_message): Ditto.          keyserver list.
274      * wptCurrWnd.cpp: (get_window_contents): Ditto.          (keyserver_build_list): Remove 'proto' column because it is
275      (set_window_contents): Ditto.          not really useful.
276            * WinPT.cpp (load_keyserver_conf): Store keyserver.conf at
277  2001-04-14  Timo Schulz <[email protected]>          $APPDATA\winpt. If keyserver.conf exists in the current folder
278            move it to the new destination.
279      * wptCurrWnd.cpp: (get_window_contents): Add an event to switch          
280      the windows. This is needed by the current code.  2006-11-13  Timo Schulz  <[email protected]>
281      (set_window_contents): Ditto.  
282      * wptWndSwitchDlg.cpp: (wndswitch_dlg_proc): Create a hidden dialog          * wptPreferencesDlg.cpp (prefs_dlg_proc): Changed translation.
283      and force it to the foreground. This is the event needed by the code          * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Likewise.
284      above.          * wptAboutDlgs.cpp (about_dlg_proc): Make sure GPG about
285      (create_wndswitch_event): Execute the dialog.          dialog isn't shown twice.
286      * wptMainProc.cpp: (wpt_main_proc): Add new links in the hotkey          * wptKeyCache.cpp (gpg_keycache_next_updated_key): New.
287      section. Add message entries for the code.          (gpg_keycache_update_key): Set update flag.
288      * wptW32API.cpp: (copy_window_to_clip): Moved to the into the OE          * wptKeyManagerDlg.cpp (refresh_keylist): New.
289      mailer code.          (keymanager_dlg_proc): Use new refresh system for keyservers.
290      (insert_window_from_clip): Ditto.          * wptKeyserverSearchDlg.cpp (kserver_search_dlg_proc):
291      * wptMailPlugin.cpp: (oe_set_message): Insert the new code and add          Update keycache.
292      the event to switch the windows.          * wptKeyserverDlg.cpp (hkp_dlg_proc): Likewise.
293      (oe_get_message): Ditto.          * wptKeyserver.cpp (socket_read_ext): New.
294            (kserver_recv_key_ext): New.
295  2001-04-16  Timo Schulz <[email protected]>          (kserver_read_config, kserver_write_config): Removed.
296            
297      * wptWndHook,cpp (cbt_proc): Compare process ids to differ between  2006-01-12  Timo Schulz  <[email protected]>
298      WinPT and normal windows.  
299      (install_cbt_hook): Add pid to the context.          * wptListView.cpp (listview_set_image_list): Make icons
300            always transparent.
301  2001-04-17  Timo Schulz <[email protected]>          * wptImageList.cpp (imagelist_load): New icons.
302            * wptGPGMEData.cpp (gpg_data_putc): New.
303      * wptWndHook.cpp (is_taskbar_wnd): New. Alias to check if the window          * wptKeyManagerDlg.cpp (load_toolbar): Include new icons.
304      belongs to the taskbar area.          (keymanager_dlg_proc): Add tooltips.
305      (is_winpt_wnd): New. Alias to check if the window belongs to WinPT.          * wptKeyserverDlg.cpp (keyserver_list_build): Use icons.
306      (cbt_proc): Change code to include both functions.          * wptKeyserver.cpp (URL_encode): New.
307      * wptCurrWnd.cpp (get_window_contents): Add switch if we use the          (URL_must_encode): New.
308      foreground or the CBT window.          (kserver_search_init): Properly encode pattern.
309      * wptMainProc.cpp (wpt_main_proc): All hotkey operations for the          (parse_iso_date): New.
310      current window mode set the no_cbt variable.          (keyserver_search): Be more strict to prevent buffer overflows.
311      * wptGPG.cpp (keyring_check_last_access): New. Check if the keyring          
312      was modified by an external program.  2006-01-11  Timo Schulz  <[email protected]>
313      * wptKeyMiscDlg.cpp: (keymisc_dlg_proc): Now check for external  
314      keyring changes.          * wptKeyManagerDlg.cpp (load_toolbar): 2 new icons.
315            (keymanager_dlg_proc): Adjust tooltips.
316  2001-04-21  Timo Schulz <[email protected]>          (update_ui_items): Handle new icons.
317            * wptImageList.cpp (imagelist_load): New icons.
318      * wptWndHook.cpp (install_cbt_hook): Remove the thread because the          
319      system already is into a DLL.  2006-01-10  Timo Schulz  <[email protected]>
320      * wptKeyMiscDlg.cpp (keymisc_dlg_proc): Remove checkbutton and use  
321      instead of it a button to check the key signatures.          * wptMainProc.cpp (winpt_main_proc): Restore iconic
322      * wptGPG.cpp (get_last_gpg_access): New. Retrieve the file timestamp          File/Key Manager windows if needed.
323      from the given gpg object.          * wptGPGPrefsDlg.cpp (gpg_prefs_dlg_proc): Disable button.
324      (check_last_gpg_access): New. Compare the last file timestamp with the          * wptSiglist.cpp (init_cmp): New.
325      new timestamp.          (siglist_sort): New.
326      (init_gpg_table): New. Initialize the table with gpg objects who shall          (siglist_cmp_cb): New.
327      be watched.          (siglist_add_key): Force NOKEY status when key was not found.
328      (keyring_check_last_access): Use the new code.          * wptKeysigDlg.cpp (recv_single_key): New.
329      * wptCurrWnd.cpp (set_window_contents): Restore the window if it is          (recv_missing_keys): Reload entire key when more than one key
330      now iconic.          was fetched.
331      * wptMainProc.cpp (wpt_main_proc): Add decrypt/verify for the          (keysig_dlg_proc): Support sorting the listview items.
332      current window stuff.          
333    2006-01-09  Timo Schulz  <[email protected]>
334  2001-04-22  Timo Schulz <[email protected]>  
335            * WinPT.cpp (load_gettext): Remove file locking.
336      * wptGPG.cpp (check_last_gpg_access): Reset switch before testing          (WinMain): Use pre-defined autoconf constants.
337      the condition.          * wptW32API.cpp (init_file_lock, release_file_lock): Deleted.
338      * wptFindWnd.cpp (find_child_wnd_proc): New. Callback to enumerate          * wptGPG.cpp (check_gnupg_engine): Add param @need_gpg_ver.
339      all children windows.          Change all callers.
340      (find_parent_wnd_proc): New. Callback to enumerate all parent windows.          
341      (find_window): New. Return if the specified windows as found.  2006-01-07  Timo Schulz  <[email protected]>
342      * wptW32API.cpp: (dialog_box_param): New. Alias with the additional  
343      feature to check if the dialog already exist (and then preventing          * wptKeyManager.cpp (km_refresh_from_keyserver): Summarize
344      the creation).          import status if just one key was selected.
345      * wptMainProc.cpp (wpt_main_proc): Replace all DialogBoxParam with  
346      then new dialog_box_param function. Thanks to Martin who told me  2006-01-04  Timo Schulz  <[email protected]>
347      about this dialog problem.  
348      * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Ditto.          * wptGPGMEWrapper.c (setChangeVersion): New.
349      * wptKeyMiscDlg.cpp (keymisc_dlg_proc): Ditto. Add translation for the          (exportToBuffer, exportToFile, exportToClipboard): New.
350      new signature buttons.          (setArmor, getArmor): New.
351            * wptKeylist.cpp (get_key_expire_date): Return locale specific
352  2001-04-23  Timo Schulz <[email protected]>          date.
353            (keylist_get_recipients): Do not fetch the key again.
354      * wptFindWnd.cpp (find_child_wnd_proc): Removed. This functionality          (keylist_enum_recipients): Likewise.
355      is not needed because all dialog windows are top level windows.          * wptGPG.cpp (create_empty_keyring): New.
356            (get_gnupg_keyring): Fixed 'strict' logic.
357  2001-04-24  Timo Schulz <[email protected]>          * wptKeyManagerDlg.cpp (update_ui_items): Disable some buttons
358            when no secret keys are available.
359      * wptEncryptDlg.cpp (encrypt_dlg_proc): Release the static listview          * wptKeyManager.cpp (km_send_to_mail_recipient): Release key data
360      item and set it to zero.          before the MAPI call is made.
361      * wptSignDlg.cpp (sign_dlg_proc): Ditto.          * WinPT.cpp (check_for_empty_keyrings): New.
362      * wptSignEncDlg.cpp (sign_encrypt_dlg_proc): Ditto.          
363      * wptVerifyDlg.cpp (verify_dlg_proc): Ditto.  2006-01-03  Timo Schulz  <[email protected]>
364      * wptKeyMiscDlg.cpp (keymisc_dlg_proc): Ditto.  
365      (keymisc_dlg_proc): Provide the functionality to delete key pairs          * pubkey.ico, keypair.ico: New.
366      secret+public.          * wptListview.cpp (listview_add_item_image): New.
367      * wptWndHook.cpp (is_winpt_wnd): Remove this function and put          (listview_set_image_list): New.
368      all code into (check_wnd).          * wptSigList.cpp (siglist_add_key): Correct order of the sigs.
369      (check_wnd): Check if the window doesn't is a application related          * wptKeyProps.cpp (keyprops_load_photo): Adjusted for new
370      window.          JPEG data.
371            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Do not allow to
372  2001-04-25  Timo Schulz <[email protected]>          add items to revoked keys.
373            * wptKeyManager.cpp (km_delete_keys): Do not use uninitialized
374      * wptKeySignDlg.cpp (keysign_dlg_proc): Now we use a new GPGME          keyid buffer. This fixes a segv.
375      callback system to pass the keyedit information to GPG.          * wptKeyserver.cpp (spawn_application): New.
376      * wptKeyTrustDlg.cpp (keytrust_dlg_proc): Ditto.          (ldap_recv_key): Support recent protocols and several cleanups.
377            * wptKeylist.cpp (do_addkey): Set image which depends on the
378  2001-04-26  Timo Schulz <[email protected]>          key type.
379            (keylist_enum_recipients): Cleanups.
380      * wptKeyEditDlg.cpp (keyedit_dlg_proc): New. Dialog for the various          (keylist_get_keyflags): Rewritten.
381      edit-key commands.          * wptKeyCache.cpp (free_attr_list): New.
382      * wptKeyMiscDlg.cpp (keymisc_dlg_proc): Add the button for the edit          (parse_attr_list): New.
383      key code.          (parse_attr_data): New.
384            (keycache_update_photo): New.
385  2001-04-27  Timo Schulz <[email protected]>          (keycache_update_photos): New.
386            (gpg_keycache_update_key): Automatically reload photos if needed.
387      * wptCurrWnd.cpp (get_window_contents): Change the code for the last          * wptGPGUtil.cpp (create_process): New param @err. Change all
388      window concept. Thanks to Oliver.          callers.
389      (set_window_contents): Add some stuff to set the position if the          (map_tmpfile): New param @nread. Change all callers.
390      current window is an edit control.          (gpg_get_photoid_data): New.
391      * wptKeyEditDlg.cpp (keyedit_dlg_proc): Add code for the 'adduid'          * wptKeyEditDlgs.cpp (keyedit_main_dlg_proc): Do not allow to
392      stuff.          add items to revoked keys.
393      * wptKeyEditAddUidDlg.cpp: New. (keyedit_adduid_dlg_proc): Code to          (subkey_init_list): Store gpgme key object.
394      create a new user id for a GPG key.          
395    2005-12-29  Timo Schulz  <[email protected]>
396  2001-04-28  Timo Schulz <[email protected]>  
397            * wptKeygenDlg.cpp (keygen_dlg_proc): Request passphrase dynamically.
398      * wptGPGME.cpp: New. Move some additional GPGME code into WinPT.          (gpg_genkey_params): Simplified.
399      So it's easier to update GPGME and we can use NLS to translate          * wptPreferencesDlg.cpp (prefs_dlg_proc): Fix problem with mutal
400      error strings.          exclusion of the dialog items.
401      * wptVerifyList.cpp (get_sig_date): New. Removed from the GPGME code          * wptAboutDlgs.cpp (about_winpt_dlg_proc): Allow to use ESC to
402      because we only use it here.          quit the dialog.
403      * wptKeyEditDlg.cpp (keyedit_dlg_proc): Add the 'change passphrase'          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Likewise.
404      feature to the edit-key interface.          * wptMDSumDlg.cpp (mdsum_dlg_proc): Handle WM_SYSCOMMAND.
405            (id2algo): New.
406  2001-04-29  Timo Schulz <[email protected]>  
407    2005-12-28  Timo Schulz  <[email protected]>
408      * wptKeyEditDlg.cpp (clear_dlg_fields): Clear all passphrase items.  
409      (keyedit_dlg_proc): Free gpgme context. Add the passphrase for the          * wptKeyserverDlg.cpp (show_imported_keys): Decode user IDs.
410      adduid command.          * wptKeyRevokersDlg.cpp (key_revokers_dlg_proc): Likewise.
411      * wptKeyEditAddUidDlg.cpp (keyedit_adduid_dlg_proc): Initialize          * wptKeylist.cpp (keylist_udp_key): Likewise.
412      the dialog with a KEY structure that holds the keyid and the userid.          * wptKeyManager.cpp (key_get_clip_info, key_get_info): Likewise.
413      * wptWndHook.cpp: Remove the global context and use instead of it          * wptClipDecryptDlg.cpp (clip_decrypt_dlg_proc): Fix problem
414      static variables. Put all static variables into the SHARED data          when no signing key was found.
415      segment in the DLL.          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Properly decode
416            user IDs.
417  2001-04-30  Timo Schulz <[email protected]>          (translate_popup_strings): s/Revoke/Revoke Cert.
418            * wptKeyEditDlgs.cpp (do_init_keylist): Do not assume a
419      * wptClipEditDlg.cpp: Now the dialog uses the Courier font to          0x prefixed keyid.
420      enhance the format of keys and other GPG data.          * wptKeyEditCB.cpp (editkey_command_handler): Also reset
421      * wptKeyserverDlg.cpp (keyserver_dlg_proc): Set the cache realod          step in case of a bad passphrase.
422      flag after receiving a key.          
423      * wptKeyTrustDlg.cpp (keytrust_dlg_proc): Add error message when  2005-12-27  Timo Schulz  <[email protected]>
424      no listbox entry was choosen.  
425      * wptKeySignDlg.cpp (keysign_dlg_proc): Add Check button text to          * wptListView.cpp (listview_set_view): New.
426      the NLS suite.          (listview_del_column): New.
427      * wptKeygenDlg.cpp (keygen_dlg_proc): Set the cache reload flag          * wptW32API.cpp (get_locale_date): New.
428      instead of refresh the keycache.          (get_menu_state): New.
429            (force_foreground_window): New.
430  2001-05-01  Timo Schulz <[email protected]>          * wptVerifyList.cpp (strtimestamp): Support for
431            locale date formats.
432      * wptCurrWnd.cpp (wnd_msg_markall): New. Send the CTRL+a key sequence          * wptGPGUtil.cpp (gpg_revoke_cert): Handle bad
433      to a window.          passphrases.
434      (wnd_msg_copy): New. Send the CTRL+c key sequence to a window.          * wptKeyEditCB.cpp (editkey_command_handler): Immediately
435      (wnd_msg_paste): New. Send the CTRL+v key sequence to a window.          return when a bad passphrase was submitted.
436      (wnd_msg_em_set_pos): Manipulate an edit multiline control text pos.          * wptKeyRevokersDlg.cpp (keyrevokers_dlg_proc): Change
437      * wptMainProc.cpp (wpt_main_proc): Fix some message string for          column order.
438      the hotkey handling. Quit the program if a registration procedure          * wptKeylist.cpp (keylist_upd_col): New.
439      failed.          * wptKeyManagerDlg.cpp (update_ui_items): Deactivate
440      * wptErrors.cpp (log_box): Improved log handling to dump states          'Revocation' for public keys.
441      of variables during regression tests.          (translate_menu_strings): s/Revoke/Revoke Cert.
442            (modify_listview_columns): New.
443  2001-05-02  Timo Schulz <[email protected]>          
444    2005-12-18  Timo Schulz  <[email protected]>
445      * wptKeyEditAddSubkeyDlg.cpp: New. Dialog to create additional  
446      subkeys for the mainkeys.          * wptKeyManagerDlg.cpp (save_column_size): New.
447      * wptKeyEditAddUidDlg.cpp: (keyedit_adduid_dlg_proc): Set foreground          (restore_column_size): New.
448      window flag.          (keymanager_dlg_proc): Save and restore column sizes for
449      * wptKeyEditDlg.cpp: (keyedit_dlg_proc): Added the code for the          the listview control.
450      addkey feature.          * wptKeyManager.cpp (key_get_info): New.
451            (km_delete_keys): Use it here to have a consistent message.
452  2001-05-04  Timo Schulz <[email protected]>          Use stored key context and not the column data.
453            (km_enable_disable_key): Likewise.
454      * wptKeyTrustDlg.cpp: Renamed to wptKeyEditOwnertrustDlg.cpp.          (km_send_to_keyserver): Likewise.
455      * wptKeyEditOwnertrustDlg.cpp (keyedit_ownertrust_dlg):          (km_set_implicit_trust): Likewise.
456      Move all the GPGME specific code to the main dialog. Now only          * wptKeylist.cpp (get_key_pubalgo2): New.
457      the context values are set.          
458      * wptKeyEditDlg.cpp (keyedit_dlg_proc): Include the changed ownertrust  2005-12-17  Timo Schulz  <[email protected]>
459      code.  
460            * wptUTF8.cpp: Removed unused charset array.
461  2001-05-05  Timo Schulz <[email protected]>          * wptSigList.cpp (siglist_build): Increase size for 'class'
462            column.
463      * wptCurrWnd.cpp (get_curr_wnd): Alternative code to retrieve          * wptGPG.cpp (get_gnupg_path): Simplified.
464      the current window handle. This code doesn't use the hook DLL.          * WinPT.cpp (load_gpg_env): New.
465      Thanks to Oliver Nittka for his patch.          (check_crypto_engine): Return type is now bool.
466      * wptErrors.cpp (winpt_strerror): Fixed a small typo.          * wptRegistry.cpp (is_gpg4win_installed): New.
467      * wptGPG.cpp (check_last_gpg_access): Remove debug code.          * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): More consistent
468      * wptKeyMiscDlg.cpp (keymisc_dlg_proc): Change the keycache reloading          dialog design.
469      scheme to prevent reloading the cache twice.          * wptKeyManagerDlg.cpp (translate_menu_strings): New.
470            (translate_popupmenu_strings): New.
471  2001-05-08  Timo Schulz <[email protected]>          * wptKeyEditDlgs.cpp (is_jpg_file): New.
472            
473      * wptKeyserver.cpp (wsock_init): Replace the kserver init  2005-12-13  Timo Schulz  <[email protected]>
474      code which initialized the Wsock2 interface.  
475      (wsock_end): Ditto.          * wptCommonDlg.cpp (http_dlg_proc): Localized missing elements.
476      * wptAgent.cpp: Remove the passphrase caching code and add          * wptKeyManagerDlg.cpp (change_edit_menu): New.
477      the GPG agent code.          (change_key_menu): Renamed from...
478            (menu_gpg_readonly): ..this.
479  2001-05-09  Timo Schulz <[email protected]>          (clip_contains_pgpkey): New.
480            (update_ui_items): Do not allow to sign expired keys.
481      * wptAgent.cpp (gpga_writen): Write 'n' bytes into a socket.          (keymanager_dlg_proc): Same for popup menu.
482      (gpga_readn): Read 'n' bytes from a socket.          * wptKeyPropsDlg.cpp (parse_preflist): Fixed string handling.
483      (gpga_open): Open the interface to the GPG-Agent.          * wptKeyCache.cpp (copy_uid_prefs):
484      (gpga_close): Close the GPG-Agent socket.          (gpg_keycache_sync): Copy uid prefs so the key property
485      (gpga_clear_passphrase): Clear a passphrase from the GPG-Agent.          dialog show the correct values. Thanks to Shane.
486      (agent_add_fpr): Add a fingerprint to the cache. If WinPT quits,          
487      this keys will be remove from the GPG-Agent cache.  2005-12-11  Timo Schulz  <[email protected]>
488      (agent_delete_fpr): Remove a fingerprint from the cache.  
489      (agent_init): Clear the cache.          * wptW32API.cpp (get_file_version): New.
490      (agent_timer_proc): Remove all stored passphrases which were          * wptGPGUtil.cpp (create_process): Always hide window.
491      requested through the chache.          * wptClipEditDlg.cpp (clipedit_dlg_proc): Use 'Close'
492            instead of 'Exit'.
493  2001-05-10  Timo Schulz <[email protected]>          * wptKeyManager.cpp (km_http_import): New filename
494            generation code.
495      * wptFindWnd.cpp (find_window_hwnd): New. Function to retrieve          (km_send_to_mail_recipient): Cleanups.
496      the handle of the specified window.          * wptKeyEditDlg.cpp (showpref_dlg_proc): Localize dialog.
497      * wptAgent.cpp (agent_timer_proc): Changed the agent interface          * wptKeyManagerDlg.cpp (update_ui_items): Handle the case
498      to window messages instead of socket connections.          when multiple keys are selected.
499      * wptMainProc.cpp (wpt_main_proc): Added the new preference dialog          (popup_multiple): New.
500      and menu entry.          * WinPT.cpp (WinMain): Check that the PTD.dll and WinPT.exe
501      * wptPreferencesDlg.cpp: New.          file versions are equal. Rewrote --keymanager code.
502            
503  2001-05-11  Timo Schulz <[email protected]>  2005-12-08  Timo Schulz  <[email protected]>
504    
505      * wptMainProc (wpt_main_proc): Change all related menu entries from          * wptKeyserverDlg.cpp (show_imported_keys): Enhanced.
506      Encrypt & sign to Sign & Encrypt. Added the command to the current          (hkp_recv_key2): Show user-id of the imported key instead
507      window menu and the handling of the window messages.          of just the pattern.
508      * wptSignEncDlg.cpp (clip_signenc_dlg_proc): Changed the window text.          * wptFileCBS.cpp (read_cb): Changed to W32 API.
509      * wptRegistry.cpp (set_reg_winpt_prefs): New. Stores all WinPT          (write_cb): Likewise. Create output file on demand.
510      preferences in the registry.          (gpg_file_data_new): Adjusted code for new API.
511      (get_reg_winpt_prefs): Read all preferences from the registry into          * wptKeyEdit.cpp (cleanKey): New.
512      the options context.          * wptKeyEditCB.cpp (cmd_clean_handler): New.
513      * WinPT.cpp (WinMain): Read in the registry preferences at the begin          (editkey_command_handler): Call clean handler.
514      and store it.          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Sort
515      * wptAgent.cpp (agent_init): Check if the environment variable          keylist after inserting items.
516      GPG_AGENT_INFO is set, otherwise set it.          * wptFileManager.cpp (fm_set_status): Take care of
517      (agent_is_running): Check wether the agent is running.          cleartext sigs.
518      (agent_start): Automated function that read all needed information          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Make
519      from global variables.          sure can be closed.
520            
521  2001-05-12  Timo Schulz <[email protected]>  2005-12-07  Timo Schulz  <[email protected]>
522    
523      * wptMainProc.cpp (wpt_main_proc): Start the agent before the decryption          * wptOwnertrustDlg.cpp (ownertrust_dlg_proc):
524      call.          Use 'Close' instead of 'Exit'.
525            * wptKeyEditDlgs.cpp (keyedit_dlg_proc): Likewise.
526  2001-05-13  Timo Schulz <[email protected]>          * wptGPG.cpp (gnupg_backup_keyrings): Use $APPDATA
527            as the destination dir. Thanks to Werner.
528      * wptRegistry.cpp (set_reg_key): Open a subkey, if it doesn't exist          * wptRegistry.cpp (is_gpgee_installed): New.
529      the function create it.          (regist_inst_winpt): Do not register file extensions
530      (set_reg_winpt_prefs): Use the new function to set the subkey values.          if GPGee is available.
531      All functions now return WPTERR_REGISTRY instead of 1.          * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Limit
532      Add some error handling to prevent errors in the registry.          use of local vars.
533      * wptPreferencesDlg.cpp (preferences_dlg): Add the code for the Clipboard          * wptPreferencesDlg.cpp (prefs_dlg_proc): Make sure
534      hotkeys and the caching time.          no illegal backup mode is saved.
535            * wptKeyserverDlg.cpp (show_imported_key): New.
536            (hkp_recv_key2): Show imported keys if the blob
537  2001-05-18  Timo Schulz <[email protected]>          contained more than one.
538            
539      * wptKeyEditDlg.cpp (keyedit_dlg_proc): Check the state of the various  2005-12-06  Timo Schulz  <[email protected]>
540      edit key commands. In the case the dialog was canceled, return without  
541      modifying anything.          * WinPT.cpp (WinMain): Load the gettext environment soon
542      * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Check the state of the          as possible so all 'first start' messages are localized.
543      signature. If it doesn't contain a valid key, do nothing.          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): If a single key is
544      * wptMainProc: (wpt_main_proc): If the hotkey setup doesn't work, don't          received via the keyserver, return the gpgme key context on
545      quit the program. In some cases the hotkeys are possible locked.          success and add it directly to the list.
546      * WinPT.cpp (WinMain): If there is an error with the gpg program/path,          * wptKeyserverDlg.cpp (keyserver_dlg_proc): Support a param
547      give the user the chance to start the GPG preference dialog.          to store the key.
548      * wptPreferencesDlg.cpp (preferences_dlg_proc): Added the CWS hotkey          (hkp_recv_key2): Add extra param for the fingerprint.
549      support. Flag to disable all hotkeys. Reload new hotkeys (in the case          (hkp_recv_key): Call hkp_recv_key2 without fingerprint.
550      they changed). Load the registry entry on startup.          
551      * wptHotkey.cpp (mod_hotkeys): Overwrite the default hotkeys with the  2005-12-02  Werner Koch  <[email protected]>
552      stored registry entries.  
553            * wptKeyEditDlgs.cpp (subkey_list_init): Avoid trigraphs.
554  2001-05-19  Timo Schulz <[email protected]>  
555    2005-12-01  Timo Schulz  <[email protected]>
556      * wptPreferencesDlg.cpp (preferences_dlg_proc): If the disable hotkey  
557      flag is set, also disable all input items.          * wptClipVerifyDlg.cpp (clipverify_dlg_proc): Use new semantic
558      (disable_dlg_item): New. Disable dialog items (windows).          for get_gpg_sigstat().
559      * wptMainProc.cpp (wpt_main_proc): Only set hotkeys if the no_hotkeys          * wptGPGME.cpp (get_gpg_sigstat): New. It is now a function.
560      flag isn't set.          As a macro strings will not be translated at runtime.
561      * wptKeyserverDlg.cpp (send_key): Forget to set the armor flag, as          * wptKeyserverDlg.cpp (hkp_recv_key): Properly detect if we
562      a result the code only sended parts of the key.          need to update the cache. Thanks to Jan-Oliver.
563      * wptConfig.cpp: Removed. Not used any longer.          * wptKeyImportStatusDlg.cpp (import_status_dlg_proc): Localized.
564            
565  2001-05-20  Timo Schulz <[email protected]>  2005-11-30  Timo Schulz  <[email protected]>
566    
567      * wptGPG.cpp (check_gpg_optfile): Count each of the keyring entries          * wptW32API.cpp (dialog_box_param): Removed LANG_DE code.
568      to figure out if both parts are available.          * WinPT-en.rc: Removed string list.
569            * wptFileSaveDlg.cpp (file_save_dlg_proc): Localized
570  2001-05-21  Timo Schulz <[email protected]>          * wptKeylist.cpp (keylist_build): Cannot use global
571            arrays for the columns due to gettext.
572      * wptKeyMiscDlg.cpp (keymisc_dlg_proc): Add new button for userid          
573      management.  2005-11-29  Timo Schulz  <[email protected]>
574      * wptKeyUidDlg.cpp (keyuid_dlg_proc): Finished code to show all userids  
575      from a special key.          * WinPT.cpp (WinMain): Modify --keymanager. If an instance
576            is running, just send the command to open the manager.
577  2001-05-25  Timo Schulz <[email protected]>          
578    2005-11-25  Timo Schulz  <[email protected]>
579      * wptKeyUidDlg.cpp (keyuid_dlg_proc): Add button to delete a choosen  
580      user id. End the dialog if there was an error during the Gpgme operations.          * wptKeyEditCB.cpp (addrev_cmd_handler): Avoid hanging
581      * wptClipboard.cpp (clip_istext_avail): First check if the pointer is          process when the revoker is already there.
582      valid and then look at the length. Avoid crashes for some texts.          
583    2005-11-24  Timo Schulz  <[email protected]>
584  2001-05-27  Timo Schulz <[email protected]>  
585            * wptPassphraseCB.cpp (passphrase_callback_proc): Localize
586      * wptRegistry.cpp (set_reg_winpt_prefs): Add word wrapping.          signing dialog items.
587      (get_reg_winpt_prefs): Ditto.          * wptMainProc.cpp (confirm_delclip_dlg): Localize dialog items.
588      * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Set focus after the          * wptAboutDlgs.cpp (about_winpt_dlg_proc): Disable help for now.
589      gpg process finished.          * wptMDSumDlg.cpp (mdsum_dlg_proc): Localize missing items.
590      * wptSigList.cpp (siglist_add_key): Parse the numeric timestamp to          * wptKeylist.cpp (key_check_validity): Likewise.
591      a humand readable date.          * wptKeyEditDlgs.cpp (keyedit_addsubkey_dlg_proc): Likewise.
592            
593    2005-11-22  Timo Schulz  <[email protected]>
594  2001-06-01  Timo Schulz <[email protected]>  
595            * wptCardEditCB.cpp (gpg_write): Due to removed _DEBUG
596      * wptKeyEditDlg.cpp (keyedit_dlg_proc): IDC_KEYEDIT_OWNERTRUST:          macro debug output will be generated in release version.
597      Release context in the case of an error.          
598      * wptMainProc.cpp (wpt_main_proc): Fix typo.  2005-11-21  Timo Schulz  <[email protected]>
599      * wptGPG.cpp: (init_gpg_table): Remove the case code. Now we use  
600      a static gpg object array that contains all filenames.          * WinPT.cpp (WinMain): Implement --stop switch.
601            * wptClipEditDlg.cpp (clip_edit_dlg_proc): Localize
602            missing string.
603  2001-06-04  Timo Schulz <[email protected]>          * wptPreferencesDlg.cpp (prefs_dlg_proc): Likewise.
604            * wptKeygenDlg.cpp (keygen_dlg_proc): Verify valid context
605      * wptClipImportDlg.cpp (clip_import_dlg_proc): Added the code for          first. Thanks to Ralf.
606      the improved import status.          * wptFileManagerDlg.cpp (update_ui_items): New.
607            * wptFileManager.cpp (fm_set_status): New sigmode param.
608            Changed all callers.
609  2001-06-05  Timo Schulz <[email protected]>          
610    2005-11-17  Timo Schulz  <[email protected]>
611      * wptAboutGPGDlg.cpp (about_gpg_dlg_proc): Check if the returned  
612      buffer is valid. Remove the fixme, because it's possible that there          * wptGPG.cpp (check_last_gnupg_access): Kludge to avoid that
613      were new cipher modules loaded.          the cache will be loaded twice.
614      * wptClipDecryptDlg.cpp (passphrase_callback_proc): Check if the          * wptRegistry.cpp (regist_inst_winpt): More comments.
615      context is valid.          * wptKeyManagerDlg.cpp (do_center_window): Make sure that
616      * wptClipEditDlg.cpp (clip_edit_dlg_proc): Check if the context is valid.          neg. coordinates are never used.
617      * wptW32API.cpp (status_box): New. Message box that is always forced          * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Localize all
618      to the foreground.          strings.
619            * wptPassphraseCB.cpp (passphrase_callback_proc): Likewise.
620  2001-06-07  Timo Schulz <[email protected]>          * wptFileManagerDlg.cpp (filemanager_dlg_proc): Localize menu
621            and save 'AlwaysOnTop' in the registry.
622      * wptOwnertrustDlg.cpp (ownertrust_dlg_proc): Set to foreground,          
623      add windows title.  2005-11-16  Timo Schulz  <[email protected]>
624    
625  2001-06-08  Timo Schulz <[email protected]>          * WinPT.cpp (check_crypto_engine): Min is now GPG 1.4.2.
626            * wptKeylist.cpp (keylist_add_key): Add disabled keys in list
627      * wptHotkey.cpp (mod_hotkeys): Change code to support the new          mode.
628      registry style.          * wptPreferencesDlg.cpp (prefs_dlg_proc): Localize all strings.
629      * wptRegistry.cpp (get_reg_winpt_prefs): Support to disable          * wptRegistry.cpp (regist_inst_winpt): Set install directory.
630      single hotkeys. Suggested by Jonathan.          Useful for other programs to figure out the path to the EXE.
631      * wptPreferencesDlg.cpp (preferences_dlg_proc): Support to disable          
632      single hotkeys.  2005-11-14  Timo Schulz  <[email protected]>
633      * wptKeyserver.cpp (kserver_connect): Reset winsock error var.  
634      (keyserver_recv): Ditto.          * wptGPG.cpp (check_gnupg_engine): Fix version check.
635      (keyserver_send): Ditto.          * wptMainProc.cpp (winpt_main_proc): Check keyring
636      (wsock_strerror): Returns a description of the winsock problem.          file permissions always and do not use interative output
637      * wptClipboard.cpp (clip_get_pgp_type): Check if the returned buffer          when the windows session ends.
638      is valid.          * wptProxySettingsDlg.cpp (proxy_settings_dlg_proc):
639            Localize all strings.
640  2001-06-10  Timo Schulz <[email protected]>          * wptPassphraseDlg.cpp (passwd_dlg_proc): Likewise.
641            * wptGPGPrefsDlg.cpp (gpg_prefs_dlg): Likewise.
642      * wptHotkey.cpp (enable_hotkey): New. Set enable flag for a single          * wptKeyEditDlgs.cpp (do_init_keylist): Skip all
643      hotkey.          non-valid keys.
644      (mod_hotkeys): Take care of the enable flags.          
645      (register_hotkeys): Ditto.  2005-11-12  Timo Schulz  <[email protected]>
646      (unregister_hotkeys): Ditto.  
647      * WinPT.cpp (WinMain): If the registry entry of WinPT doesn't exist,          Fix more GCC warnings.
648      don't try to modify hotkeys.  
649      * WptMainProc.cpp (wpt_main_proc): All message boxes are forced to  2005-11-10  Timo Schulz  <[email protected]>
650      the foreground.  
651            * wptClipSignDlg.cpp (one_key_proc): Use
652  2001-06-12  Timo Schulz <[email protected]>          release_gpg_passphrase_cb() to free the context.
653            * wptListView.cpp (listview_deselect_all): New.
654      * wptPreferencesDlg.cpp (check_hotkey): Check if the hotkey key is          * wptMAPI.cpp (mapi_send_pubkey): Works again.
655      a big letter, otherwise convert.          * wptFileManagerDlg.cpp (file_manager_dlg_proc): Support encrypt &
656      (preferences_dlg_proc): Check hotkeys.          zip.    
657      * wptKeylist.cpp (add_keys): Static functions to add a single key.          * wptPassphraseCB.cpp (passphrase_callback_proc): Fix passphrase
658      (keylist_add_key): Now it adds all subkeys to the dialog.          caching for signing operations.
659      (keylist_alloc): Remove because it's not needed any longer.          * wptKeyManager.cpp (km_send_to_mail_recipient): Works again.
660      * wptImportList.cpp (implist_alloc): Ditto.              * wptFileManager.cpp (fm_send_file): Likewise.
661      * wptSigList.cpp (siglist_alloc): Ditto.          (fm_encrypt_into_zip): New.      
662      * wptVerifyList.cpp (verlist_alloc): Ditto.          
663    2005-11-09  Timo Schulz  <[email protected]>
664  2001-06-15  Timo Schulz <[email protected]>  
665            * wptNLS.c (get_gettext_langid): Map user language id to
666      * wptKeylist.cpp (keylist_add_key): Change encrypt param to mode.          printable gettext language strings.
667      Differ between the new keylist styles.          * wptRegistry.cpp (get_reg_entry_mo): Support for the
668      * wptGPGME.cpp (keycache_xxx): Move the caching interface to this          gettext environment.
669      file. For an easier handling between dialogs and code.          * wptFileManager.cpp (fm_encrypt): Close all files before
670      (keycache_rewind): New. Rewind a global keycache context.          the wipe procedure is called.
671      (keycache_next_key): New. Retrieve the next key from the keycache.          * wptVerlist.cpp (verlist_add_sig): Handle the case the
672      (get_default_key): New. Return the default key, this is the secret          issuer is not valid but the signature is.
673      key with the index 0.          (verlist_add_sig_log): Likewise. Thanks to the folks on
674      * wptClipSignDlg.cpp (clip_sign_dlg_proc): Modify the default key          winpt-users.
675      handling. Now the signer is set in any case. Prevent hanging GPG          
676      processes.  2005-11-08  Werner Koch  <[email protected]>
677      * wptSecmem.cpp (vm_safe_init): New. Initialize the safe memory.  
678      (vm_safe_init_noswap): New. Initialize safe memory with tail data.          * SAFE.ICO, SIGN.ICO: Fixed capitalization.
679      See source for more information.          * WinPT-en.rc: Ditto.
680      (vm_safe_free): New. Free all used pointer and burn all buffers.          * winpt_km.ico:  Moved from ../.
681      (vm_safe_get): New. Get the begin of the alloced buffer.  
682      (vm_safe_set_swapfile): New. Set global swapfile name.          * Makefile.am (resource_files): Add missing backslash.
683      (vm_safe_create_swapfile): New. Creats a swapfile and set its  
684      contents to zero.  2005-11-08  Timo Schulz  <[email protected]>
685    
686  2001-06-16  Timo Schulz <[email protected]>          More minor changes to avoid GCC warnings.
687            
688      * wptKeyEditDlg.cpp (keyedit_dlg_proc): Added missing return.          * wptGPG.cpp (check_homedir): Free memory in case of errors.
689      Corrected return values.          (multi_gnupg_path): Add strict mode. If non-strict mode return
690      * wptErrors.cpp (winpt_strerror): Removed all unused error strings.          the folder even if it does not exist.
691      * wptGPG.cpp (get_gpg_path): Change to default path and prevent          (check_for_gpgwin): New.
692      buffer overflows.          * wptKeyserverDlg.cpp (hkp_recv_key): Make sure import_res is
693      (get_gpg_prog): Ditto.          initialized.
694            * wptRegistry.cpp (get_reg_entry_gpg4win): New.
695            (get_reg_entry_mo): Support for gpg4win.
696  2001-06-17  Timo Schulz <[email protected]>          
697    2005-11-07  Timo Schulz  <[email protected]>
698      * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Force to use the  
699      default key for signing.          * wptMainProc.cpp (winpt_main_proc): Disable
700            some menu items when no secret key is available.
701  2001-06-18  Timo Schulz <[email protected]>          
702    2005-11-05  Timo Schulz  <[email protected]>
703      * wptKeyserver.cpp (check_hkp_response): More detailed error check  
704      of the http response.          More minor changes to avoid GCC warnings.
705      (kserver_send_request): Debug mode now uses logfile.          
706      (kserver_recv_request): Ditto.          * wptErrors.cp (winpt_strerror): Return w32
707      (kserver_index_request): New. Create a request for a key index.          formatted error and do not use 'break'.
708      (kserver_send): Now uses check_hkp_response.          
709      (kserver_recv): Ditto.  2005-11-04  Werner Koch  <[email protected]>
710      (kserver_search): New. Start the key index loop.  
711      * wptKeyserverDlg.cpp (recv_key): Check if the key was really          * WinPT-en.rc: Fixed locations of icons.
712      imported and received.  
713    2005-11-03  Timo Schulz  <[email protected]>
714  2001-06-22  Timo Schulz <[email protected]>  
715            A lot of minor changes to avoid GCC warnings.
716      * wptHKPSearchDlg.cpp (hkpsearch_dlg_proc): New. Dialog to perform  
717      keyserver seraching. As an additional feature it's also posible to          * wptGPG.cpp (get_gnupg_keyring): Only check size for
718      import the keys directly.          public keyring.
719            * wptKeyManager.cpp (km_update_default_key_str): Do
720  2001-06-23  Timo Schulz <[email protected]>          not issue a bug message when no secret key was found.
721            * wptGPGPrefsDlg.cpp: Replace "" with NULL in the name struct.
722      * wptGPG.cpp (get_gpg_default_keyid): Determine the keyid with the          
723      options file.  2005-11-02  Werner Koch  <[email protected]>
724    
725  2001-06-24  Timo Schulz <[email protected]>          * WinPT.cpp (WinMain): Disabled PTD version tests.
726            (check_crypto_engine): Fixed version check for scard.
727      * wptGPG.cpp (get_gpg_path): Add null termination to the string.  
728      Thanks to Jonathan who pointed this out.          * wptErrors.cpp (debug_end): Add dummy function.
729      (get_gpg_prog): Ditto.  
730      (gpg_check_file_ext): Check the file extension for the given GPG          * Makefile.am (code_files): Added wptCardEditCB.cpp and
731      type.          wptKeyEditCB.cpp.
732      (get_gpg_default_keyid): Return null if there isn't an entry in the  
733      options file.  2005-10-31  Werner Koch  <[email protected]>
734      * wptKeylist.cpp (add_key): Fixed the wrong return codes of listview_xxx  
735      style functions.          * wptCurrWnd.cpp: Include wptVersion.h to get prototypes of PTD
736      * wptImpList.cpp (implist_add_key): Ditto.          functions.
737      * wptSigList.cpp (siglist_add_key): Ditto.  
738      * wptVerifyList.cpp (verlist_add_key): Ditto.          * wptKeyEditDlgs.cpp: Include oleauto.h
739            * wptKeyEdit.cpp: Include time.h.
740  2001-06-25  Timo Schulz <[email protected]>          * wptRegistry.cpp (gpg_filetypes): New from ../Include/wptGPG.h.
741            * wptGPGUtil.cpp (gpg_manage_ownertrust): s/export/exportflag/.
742      * wptKeylist.cpp (keylist_load): New. Initialize a keylist item with  
743      the contents from the given cache context.          * Makefile.am (code_files): Add wptGPGUtil.cpp, wptCardEdit.cpp,
744      (keylist_add_to_recipients): New. Add the selected keys to the          wptKeyEdit.cpp and wptKeycache.cpp.
745      recipient set.  
746      * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): Use the new keylist          * wptPassphraseCB.cpp: Fixed spelling of wptKeylist.h
747      function to load the listview.          * wptImportList.cpp (implist_load): Use remove and not unlink.
748      * wptClipExportDlg.cpp (clip_export_dlg_proc): Ditto.          * wptGPG.cpp: Fixed spelling of wptGpgCmds.h
749      * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Ditto.          * wptImportList.cpp (implist_load): Use remove and not unlink.
750      * wptClipDecryptDlg.cpp (parse_gpg_describtion): Beautify the userid          * wptKeyManager.cpp (km_http_import): Ditto
751      and the keyid hint.          * wptMainProc.cpp: Include wptCrypto.h
752            * wptKeyManager.cpp: Ditto.
753  2001-06-27  Timo Schulz <[email protected]>          * wptFileManager.cpp: Ditto.
754            * wptImportList.cpp (parse_colon_key): Need to cast argument for
755      * wptRFC2440.cpp (get_pkt_type): New. Extract the OpenPGP packet type.          isdigit.  Include ctype.h.
756      (get_pkt_len): New. Extract the OpenPGP packet length.          * wptGPG.cpp: Include shlobj.h.
757      (parse_pke_sesskey): Read a public key encrypted session key  
758      but without data.          Fixed double inclusion of windows.h.
759      * wptFilemanagerDlg.cpp (quote_filename): Do some quotings if the          
760      filename contains spaces. Just to make GPG happy.          * Makefile.am (bin_PROGRAMS): Don't build KeyManagerExe for now.
761      (file_manager_dlg_proc): Check if the file exist after encryption.          * wptKeylist.cpp (get_key_created): Broke up trigraph.
762      * wptFile.cpp (get_keyid_from_file): Checks the file for an valid          (get_key_status): Removed dangerous use of sprintf.  Still other
763      packet and then extract the keyid.          flaws present, see comment.
764    
765  2001-06-28  Timo Schulz <[email protected]>          * wptCardPCSC.c: Don't include winscard.h.
766            (pcsc_readerstate_t, pcsc_context_t): New.  Changed call users to
767      * wptRFC2440.cpp (get_pkttype): Renamed from get_pkt_type and all new          use these types.
768      flag variables to support RFC1991.          (PCSC_): Added a lot of constants, all taked from GnuPG 1.9.
769      (get_rfc2440_pktlen): Renamed from get_pkt_len to support RFC1991.          (SCARD_S_SUCCESS): Changed all compares to test the value directly
770      (get_rfc1991_pktlen): Ditto.          against zero.
771    
772  2001-06-29  Timo Schulz <[email protected]>          * WinPT.cpp: Include wptCrypto.h.
773            (WinMain): Don't shard S. Removed usunsed variable SIZE.
774      * wptClipEditDlg.cpp (clip_edit_dlg_proc): Fix a small bug that prevent          * Makefile.am (code_files): Actually add files by adding a first
775      to send data to the clipboard.          backslash.
776      * wptMainProc.cpp (wpt_main_proc): Change the SetForegroundWindow to          * wptMDSumDlg.cpp: Include wptCrypto.h.
777      destroy the window immediately.          * wptProxySettingsDlg.cpp: Included ctype.h.
778      * wptKeyserver.cpp (kserver_getip): Removed.          * wptKeysigDlg.cpp: Fixed spelling of wptKeylist.h.
779      (kserver_get_langname): Removed.          * wptKeysignDlg.cpp: Ditto
780      (kserver_load_conf): New. Load the keyserver.conf file and set the          * wptKeyRevokersDlg.cpp: Ditto. Fixed spelling of wptW32API.h.
781      included keyserver addresses into the global context.          * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Replaced unlink by remove.
782      * WinPT.cpp (WinMain): Add the kserver_load_conf to intialize the          Removed unused variable.
783      keyserver context.          * wptClipVerifyDlg.cpp (show_notation_data): s/not/nota/ due to
784      * wptImplist.cpp (get_key_date): New. Transform integer timestamp          silly c++ operator synonyms.
785      to ISO date.          * wptKeyEditDlgs.cpp: Include time.h.
786      (implist_add_key): Now it uses the context instead of all single          * wptClipDecryptDlg.cpp: Include wptCrypto.h to define PGP_MESSAGE.
787      variables.          * wptFileManagerDlg.cpp: Ditto.
788            (space_wipefrees_dlg_proc): Replaced unlink by remove; it doesn't
789  2001-06-30  Timo Schulz <[email protected]>          matter if it does an rmdir for a directory.
790    
791      * wptFilemanagerDlg.cpp (file_manager_dlg_proc): Uses the new passphrase          Fixed include of resource.h which is not anymore in the top
792      code.          directory.
793      * wptClipSignDlg.cpp (clip_sign_dlg_proc): Ditto.  
794      * wptClipSignEncDlg.cpp (clip_sign_dlg_proc): Ditto.  2005-10-28  Werner Koch  <[email protected]>
795      * wptFileManager.cpp: New. (fm_build): New. Initialize the filemanager.  
796      (fm_delete): New.          * wptProxySettingsDlg.cpp (check_number): Cast isdigit() arg to
797      (fm_encrypt): New.          unsigned.  Never ever use a possible signed char as argument for
798      (fm_get_current_pos): New.          ctype tests.  An alternative is to first test using isascii ().
799      (fm_get_file_type): New.          (keyserver_proxy_dlg_proc): Removed unused variable.
800      (fm_add_dropped_files): New.  
801    2005-10-27  Timo Schulz  <[email protected]>
802  2001-07-01  Timo Schulz <[email protected]>  
803            * wptKeyPropsDlg.cpp (get_validity): Take care of disabled keys.
804      * wptFileManager.cpp (fm_verify): New.          * wptKeylist.cpp (keylist_add_key): Check global key flag to
805      (fm_decrypt): New.          see if the key is disabled and not each subkey.
806      * wptFileEncryptDlg.cpp (file_encrypt_dlg_proc): New.          (seclist_init): Likewise.
807            * wptClipDecryptDlg.cpp (gpgme_op_clip_decrypt): Use
808            gpgme_op_decrypt_verify.
809  2001-07-04  Timo Schulz <[email protected]>          (clip_decrypt_dlg_proc): Fixed fingerprint
810            to keyid conversation. This also fixes a crash.
811      * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Auto retrieve key          * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Likewise.
812      if the user agree.          * wptKeyEditDlgs.cpp (do_editkey_expire): Ask if the key
813      * wptKeylist.cpp (keyload_load): Use the mode from the param, not          already expired if the user wants to change the date.
814      the hardcoded.          * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Replace old
815      * wptGPGOptDlg.cpp (gpgopt_dlg_proc): Load options file on startup.          'v3 sig' option with the 'ask cert level' option. Sync
816      Rename 'load' to 'reload' to make sense with the new code.          with global preferences.
817      * wptHotkeys.cpp (mod_hotkeys): Rewrite the entire code for the          * wptKeySignDlg.cpp (keysign_dlg_proc): Watch if the
818      registry stuff.          gpg.conf contains 'ask-cert-level'. If not disable button.
819      * wptRegistry.cpp (set_reg_winpt_prefs): Ditto.          * wptKeySigDlg.cpp (keysig_dlg_proc): Automatically disable
820      (get_reg_winpt_prefs): Ditto.          the button when the key is available.
821      (regist_inst_winpt): Remove the old code.          Reload key directly, not the entire cache.
822      (register_single_filetype): Replacement for the old code.          
823    2005-10-26  Timo Schulz  <[email protected]>
824  2001-07-05  Timo Schulz <[email protected]>  
825            * wptFileManager.cpp (is_floppy_disc): Prevent very unlikely but
826      * wptHotkey.cpp (mod_hotkeys): Fix a small typo.          possible overflow.
827            (is_openpgp_ext): Compare case insentensive.
828  2001-07-11  Timo Schulz <[email protected]>          (add_single_file): New.
829            (fm_add_opened_files): Support multi file selection.
830      * wptKeyserver.cpp (wsock_strerror): If it's an unknown error, add          * wptKeyPropsDlg.cpp (do_change_ownertrust): Removed.
831      the integer.          * wptKeyManager.cpp (km_enable_disable_key): Do not set cache
832      (keyserver_create_conf): Create a config file instead of the error.          reload flag. Just update the single key.
833      * wptGPG.cpp (create_gpg_options): If the file doesn't exist create          * wptFileManagerDlg.cpp (file_encrypt_dlg_proc): Remove static var
834      a default file. This prevents confusing error messages.          and disable anonymize recipient for now.
835      (get_gpg_options): Use new code.  
836      * wptErrors.cpp (winpt_debug_msg): Improved debug message that tells          Begin to port code to GCC. Fix all warning issued by the gcc
837      the user how to find the files.          compiler.
838    
839  2001-07-12  Timo Schulz <[email protected]>  2005-10-25  Timo Schulz  <[email protected]>
840    
841      * wptClipDecryptDlg.cpp (clip_decrypt_dlg): If the dialog was canceled,          * wptGPGUtil.cpp (create_process): Hide window.
842      just quit without any messages. Suggested by Rich.          * wptKeyPropsDlg.cpp (get_photo_tmpname): New.
843            * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Remove
844            static var 'enable'.
845  2001-07-13  Timo Schulz <[email protected]>          * wptKeygenDlg.cpp (keygen_dlg_proc): Likewise.
846            (gpg_genkey_params): Make sure all primary keys are capable
847      * wptKeyserver.cpp (kserver_send_request): Add the "keytext" string to          for signing and certification.
848      the request. Arggg!          * wptKeySigDlg.cpp (is_sig): If no item is selected, return 0.
849      (check_hkp_response): Add flag to differ between 'send' and 'recv' mode.          * wptGPG.cpp (gnupg_access_keyring): Check return value for
850            NULL. Noted by Ralf.
851            (get_gnupg_prog): Simplified.
852  2001-07-14  Timo Schulz <[email protected]>          (check_homedir): Fixed. Return 0 when the dir is successfully created.
853            * wptKeyManagerDlg.cpp (km_file_import): Use the hourglass to
854      * wptKeylist.cpp (keylist_add_key): Check for secret keys before adding          indicate a pending GPG process.
855      it to the signing keylist.          * wptFileManager.cpp (op_begin, op_end): New. Indicate an start
856      * wptClipSignDlg.cpp (clip_sign_dlg_proc): Add newline if the passphrase          and and of an operation. For now just the cursor changes.
857      is empty.          (fm_parse_command_line): Remove debug output. Thanks to Ralf again.
858      * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Ditto.          * WinPT.cpp (WinMain): Check if there is already an instance and
859            set a variable early as possible.
860            (load_gettext): If a previous instance was found, do not output
861  2001-07-17  Timo Schulz <[email protected]>          any errors. Kudos to Ralf.      
862    
863      * wptKeylist.cpp (keylist_build_small): Support for a minimal keybox  2005-10-24  Timo Schulz  <[email protected]>
864      and increment the 'cols' variable inside the structure for further use.  
865      (add_key): Watch for the 'cols' variable to figure out how much columns          * wptPassphraseCB.cpp (passphrase_callback_proc): Allow to use
866      are used.          pre-defined recipients.
867      * wptListView.cpp (listview_set_ext_style): Set an extended style for          (release_gpg_passphrase_cb): Release recipients.
868      the given listview.          * wptKeyPropsDlg.cpp (keyprops_load_photo): Set photo-id
869      * wptKeyserverDlg.cpp (keyserver_dlg_proc): Use WM_NOTIFY to save the          validity if needed.
870      selected server.          (keyprops_dlg_proc): Issue a warning if the photo is valid.
871      * wptClipSignDlg.cpp (clip_sign_dlg_proc): Ditto.  
872      * wptKeyserver.cpp (kserver_connect): IP address support. This is faster  2005-10-23  Timo Schulz  <[email protected]>
873      and no DNS lookup is needed.  
874            * wptFileManager.cpp (fm_get_file_type): Detect detached sigs.  
875  2001-07-19  Timo Schulz <[email protected]>          * wptKeyList.cpp (keylist_cmp_cb): Take care of expired/revoked keys.
876            (get_ext_validity): New.
877      * wptClipDecryptDlg.cpp (clip_decrypt_dlg_proc): Support for more          * wptFileVerifyDlg.cpp (file_verify_dlg_proc): Several cleanups.
878      detailed error messages in the case for a missing key or an included          * wptClipEditDlg.cpp (load_clipboard): Factored out some code into
879      signature.          this function.
880            (load_clipboard_from_file): Likewise.
881  2001-07-20  Timo Schulz <[email protected]>          (save_clipboard_to_file): New.
882            * wptKeyManagerDlg.cpp (keyprops_dlg_proc): Fix stack overflow.
883      * wptKeyserver.cpp: (kserver_send_request): Correct the octect length  
884      of the request.  2005-10-22  Timo Schulz  <[email protected]>
885      (check_hkp_response): If an error ocurred, copy the error message into  
886      the static buffer.          Localized a lot of more strings.
887      (kserver_strerror): Interface for the static error buffer.  
888      * wptKeyserverDlg.cpp (hkp_err_box): Generates a HKP specific message          * wptMainProc.cpp (load_smartcard): New.
889      box.          * wptFileManager.cpp (fm_parse_command_line): Simplify code.
890      (hkp_send_key): Add more verbose messages at the end.          (fm_check_armor_type): Add new arg. Change all callers.
891      (hkp_recv_key): Ditto.          (fm_get_file_type): Likewise.
892      (check_pattern): Rewrote the entire code to be more bug proof.          * wptKeyPropsDlg.cpp (display_key_info): New.  
893      * wptKeylist.cpp (keylist_add_to_recipients): Add a flag to indicate          (keyprops_show_photo): Factored out some code into..
894      that the recipient list contains untrusted entries.          (keyprops_load_photo): ..this function.
895      * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): Use the new flag to  
896      force GPG to add the need options.  2005-10-21  Timo Schulz  <[email protected]>
897      * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Ditto.  
898            * wptFileManagerDlg.cpp (file_manager_dlg_proc): Use
899  2001-07-21  Timo Schulz <[email protected]>          WM_INITPOPUPMENU to localize popup menu texts.
900            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Likewise.
901      * wptFileEncryptDlg.cpp (file_encrypt_dlg_proc): Set cancel mode in          * wptClipSignDlg.cpp (one_key_proc): Use wipememory instead of memset.  
902      the case of IDCANCEL.  
903      * wptFileSignDlg.cpp (file_sign_dlg_proc): Ditto.  2005-10-20  Timo Schulz  <[email protected]>
904      * wptKeyEditDlg.cpp (keyedit_dlg_proc): Check if the key is a key pair  
905      pair and only if activate the passphrase dlg items.          Now WinPT depends on GPG 1.4.3 and GPGME 1.2.0.
906      Do sanity checks for all buttons that require key pairs.  
907      * wptKeyMiscDlg.cpp (keymisc_dlg_proc): Support the new code.          * wptPassphraseCB.cpp (passphrase_cb): Complete card support.
908                * wptCardEdit.cpp (genKey): Handle cancel case.
909  2001-07-22  Timo Schulz <[email protected]>          * keycache.c: Renamed into...
910            * wptKeyCache.cpp: ...this.
911       * wptKeyPrefsDlg.cpp (keyprefs_dlg_proc): New.          * wptW32API.cpp (set_menu_text): Removed unused code.
912       (get_key_created): New. Transform ulong timestamp to ascii.          (set_menu_text_bypos): New.
913       (get_key_algo): New. Returns a formatted algorithm (depend on subkeys).          * wptCrypto.h: New.
914       (get_key_size): New. Returns a formatted size depend (depend on subkeys).          * wptMainProc.cpp (winpt_main_proc): Complete localize
915       * wptSigList.cpp (siglist_add_key): Fix the timestamp.          menu texts.
916       * wptKeyMiscDlg.cpp (keymisc_dlg_proc): Removed "list sigs" and replace          * wptErrors.cpp (log_debug): Use a static var so the file
917       this with list trust path.          is only opened once.
918       * wptKeySigDlg.cpp (keysig_dlg_proc): Remove the set_check_mode function          (debug_end): Cleanup. Currently just close the log file.
919       because we always check the signatures.          * wptErrors.h (wipememory): New.
920       * wptKeyTrustPathDlg.cpp (keytrust_dlg_proc): New.          (sfree_if_alloc): Use it here.
921                * WinPT.cpp (WinMain): Display the min. GPGME version which
922  2001-07-24  Timo Schulz <[email protected]>          is needed in case of an error.
923    
924      * wptKeyMiscDlg.cpp (keymisc_dlg_proc): Get new cache context after  2005-10-17  Timo Schulz  <[email protected]>
925      reloading the keycache. Fixed the memory leaks. Thanks to Andreas.  
926      * wptKeyEditDlg.cpp (keyedit_dlg_proc): Better GPGME callback to inform          Free all memory returned by the GPGME dll with gpgme_free ().
927      the user about errors.  
928      * wptKeyTrustPathDlg.cpp (copy_trust_item): New. Copy the GPGME structure          s/GPG_ERR_CARD_REMOVED/GPG_ERR_CARD_NOT_PRESENT.
929      in our own context.  
930      (treeview_insert_item): New. Handy function to insert an entry.          * wptKeyEdit.cpp (getCardStatus): Remove dummy key.
931      (treeview_create_child_item): New. Insert a trustlist node.          (list_handler): With user interaction to allow to insert
932      (treeview_add_trustpath): New. Add recursively the whole trust path          the card into the reader.
933      int the tree view.          * wptKeyEditCB.cpp (gpg_edit_card): Likewise.
934      * wptKeysigDlg.cpp (check_for_missing_keys): New. Checks if the          (common_card_handler): Fixed incorrect command string.
935      signature list contains entries with a NOKEY status.          * wptKeyPropsDlg.cpp (get_card_type): New.
936      (recv_missing_keys): New. Receive all keys with a NOKEY as the signature          (keyprops_dlg_proc): Show card information if present.
937      status.          * wptFileManager.cpp (secret_key_available): Make the code faster.
938      * wptImportList.cpp (implist_load): New. Initialize the listview item          
939      with an import overview.  
940      * wptClipImportDlg.cpp (clip_import_dlg_proc): Use implist_load instead  2005-10-16  Timo Schulz  <[email protected]>
941      of the code.  
942      (print_import_status): Summarize the results. We need this because file          * wptPassphraseCB.cpp (passphrase_cb): Fix problem
943      import needs the same function.          with hanging GPG process on cancel.
944      * wptFileImportDlg.cpp (file_import_dlg_proc): New. Interface for the          * keycache.c (gpg_keycache_release): Release all objects.
945      file manager.  
946      * wptFileManagerDlg.cpp (file_manager_dlg_proc): New code for the key  2005-10-15  Timo Schulz  <[email protected]>
947      import from file.  
948      * wptFileManager.cpp (fm_import): New. Ditto.          * wptCardEdit.cpp (setResult, getResult): New.
949      * wptKeyserver.cpp (kserver_connect): Take care for some return values          (reset): New.
950      and set the socket to non blocking mode.          (getCardStatus): Check return codes and release all objects
951      Moved the Winsock2 init code to wptMainProc.cpp          in case of errors.
952      * wptMainProc.cpp (wpt_main_proc): Wsock2 code.          * wptCardEditCB.cpp (change_pin_handler): Call reset()
953      * wptHKPSearchDlg.cpp (hkpsearch_dlg_prog): Remove Wsock2 init code.          before quit.
954            (editcard_handler): Likewise.
955  2001-07-25  Timo Schulz <[email protected]>          (common_card_handler): New.
956            * wptCardDlg.cpp (card_changepin_dlg_proc): Also unmask
957      * WinPT.cpp (WinMain): Add a sanity check for the keycache to detect          the old PIN when 'Hide Typing' is disabled.
958      serious GPG errors.          * wptPassphraseCB.cpp (passphrase_cb): The card detection
959      * wptFileManager.cpp (fm_sym_encrypt): New. Symmetric encryption.          works again. Support to re-enter passphrase.
960      Suggested by Graham.  
961      (fm_decrypt): Change code to support symmetric decryption.  2005-10-14  Timo Schulz  <[email protected]>
962      (fm_get_file_type): Fixed some typos.  
963            * wptCardDlg.cpp (card_status): New fields for the
964  2001-07-26  Timo Schulz <[email protected]>          fingerprint creation time. Display card info as title.
965            (get_printable_version): New.
966      * wptGPG.cpp (check_gpg_keyring): New. Check if a gpg keyring          * wptCardEditCB.cpp (editcard_handler): Fix problem
967      exists. Useful if the keyring was moved during some commands.          with the counter comparison.
968      * wptMainProc.cpp (wpt_main_proc): Use the new code. Thanks to  
969      Rich to discover this.  2005-10-11  Timo Schulz  <[email protected]>
970    
971  2001-07-29  Timo Schulz <[email protected]>          Port to GPGME basically finished.
972    
973      * wptKeyRevokeDlg.cpp (key_revoke_dlg_proc): New. Dialog for creating  2005-09-20  Timo Schulz  <[email protected]>
974      a key revocation certificate. Add a hint to show how sentensive this  
975      data is.          * wptFileManagerDlg.cpp (file_secdel_confirm_dlg_proc):
976      * wptKeyMiscDlg.cpp (keymisc_dlg_proc): Added the code to handle the          Do not use gpgme_recipients_t but the listview directly
977      revocation.          to add the selected files.
978      * wptAgent.cpp: Source for the server interface removed.  
979      (agent_is_avail): New. Checks if the agent is available.  2005-09-07  Timo Schulz  <[email protected]>
980      * wptClipDecryptDlg.cpp (clip_decrypt_dlg): Added the interface code  
981      for the agent.          * Make sure all GetOpenFileName filters are terminated by \0\0.
982    
983  2001-07-30  Timo Schulz <[email protected]>  2005-09-01  Timo Schulz  <[email protected]>
984    
985      * wptClipSignDlg.cpp (clip_sign_dlg_proc): Added the interface code          * wptW32API.cpp (center_window): New argument for parent window.
986      for the agent.          Change all callers.
987      * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Ditto.          (center_window2): Likewise.
988            * GPGME now can read gpgProgram entries with 'REG_EXPAND_SZ'.
989  2001-08-01  Timo Schulz <[email protected]>          * wptGPG.cpp (gnupg_backup_options): Remove param. One backup
990            file is enough. Changed all callers.
991      * wptKeyserver.cpp (kserver_urlencode): Create a HTTP compatible  
992      request for uploading a key.  2005-08-15  Timo Schulz  <[email protected]>
993      (kserver_send_request): Use the urlencode to send the key.  
994      (sock_read): New. Improved read function to replace recv.          * wptKeyEditDlgs.cpp (do_editkey_showpref): Take care of v3 keys.
995      (sock_write): New. Improved write function to replace send.          * wptGPGOptDlg.cpp (gpgopt_dlg_proc): Fixed name of title.
996      * wptFileManager.cpp (fm_get_file_type): If the data is armored,          * Make sure the passphrase is always overwritten before it is
997      call fm_check_armor_type().          freed (or the function returns).
998      (fm_check_armor_type): New. Figure out the armor type of the data.          * wptKeyPropDlg.cpp (get_pref_cipher): New.
999      * wptKeyMisc.cpp (key_misc_dlg_proc): Use a menu instead of the          (keyprops_dlg_proc): Use it here.
1000      buttons. Optimized the code.  
1001    2005-08-06  Timo Schulz  <[email protected]>
1002  2001-08-02  Timo Schulz <[email protected]>  
1003            * wptGPGME.cpp (keycache_update): Reload OpenPGP parts
1004      * wptGPG.cpp (check_gpg_path): Check the size of both keyrings too.          of the secret key.
1005      Useful in the case the file was generated but it's empty.          (keycache_init): cache name of secret keyring.
1006      * wptKeyEditDlg.cpp (key_edit_dlg_proc): Fixed some typos.          * wptKeyList.cpp (keylist_upd_key): Do not add long keyid.
1007            (get_key_type): Do not assume 'ultimate' means key pair.
1008            * wptKeyEditDlgs.cpp (diff_time): New.
1009  2001-08-03  Timo Schulz <[email protected]>          (keyedit_addsubkey_dlg_proc): Changed design and use
1010            diff_time. Drop checks for invalid keylength (< 1024, > 4096)
1011      * wptMainProc.cpp (wpt_main_proc): The GPG menu was removed, now          because the combo box automatically handles this.
1012      we support this code in the key manager.          * wptKeyManager.cpp (km_set_implicit_trust): Return error code.
1013      * wptKeyMisc.cpp (key_misc_dlg_proc): Supports new GPG commands.          * wptGPG.cpp (get_backup_name): New.
1014      * wptKeyserver.cpp (kserver_index_request), (kserver_recv_request):          (gnupg_backup_keyrings): Rotate backup names, from 0..3.
1015      Removed. The code moved into the main functions.          * wptClipImportDialog.cpp (clip_import_dlg_proc): Free memory.
1016      (kserver_send), (kserver_recv): Ditto.          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Use 0x short keyid and
1017      (sock_write): Improved code.          not the long keyid.
1018      (sock_read): Ditto and some additional timeout.  
1019      (sock_select): New. Figure out the socket state.  2005-08-05  Timo Schulz  <[email protected]>
1020      (kserver_search_init): New. Make connection to the server.  
1021      * wptHKPSearchDlg.cpp (hkp_search_dlg_proc): Now it uses the new          * wptListView.cpp (listview_set_item2): New.
1022      keyserver code.          * wptKeyManager.cpp (km_check_if_protected): Directly
1023      * wptFile.cpp (get_keyid_from_file): Add support for the PGP marker          retrieve gpgme_key_t from the list.
1024      packet. Thanks to Alan.          (km_check_key_status): Likewise.        
1025      (check_for_symenc_data): Ditto.          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Also use
1026      * wptFileManager.cpp (fm_get_file_type): Ditto.          a human-readable name for secret key export.
1027      (fm_decrypt): Move the keycache in the if loop and fix the keycache          Reload just the keys which were affected by updates
1028      type.          (edit-key).
1029            (update_key): New.
1030  2001-08-05  Timo Schulz <[email protected]>          * wptKeyList.cpp ((keylist_upd_key): Stripped down
1031            version of keylist_add_key.
1032      * wptKeylist.cpp (keylist_add_key): Change the schematics to support          * wptKeyEditDlgs.cpp (keyedit_main_dlg_proc): Do not
1033      all keyids.          reload the keycache here, just flag 'update'. Give the
1034      * wptSigList.cpp (siglist_build): New. Interface code to load the          control to the calling dialog.
1035      signature list.          * wptKeySignDlg.cpp (keysign_dlg_proc): Use winpt_key_t
1036      * wptKeysigDlg.cpp (keysig_dlg_proc): Uses siglist_build.          as parameter. Changed all callers.
1037            Add date of expiration to the key info.
1038  2001-08-06  Timo Schulz <[email protected]>          (get_expire_date): New.
1039            Use a checkbox to allow to ask for the cert level.
1040      * wptFilemanager.cpp (fm_sign): Set the keyid length to 16.          * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): Do no reload
1041            the cache.
1042  2001-08-08  Timo Schulz <[email protected]>  
1043    2005-08-04  Timo Schulz  <[email protected]>
1044      * wptGPG.cpp (check_gpg_path): Sanity check for size of the options file.  
1045      Support for more configurations.          * wptListView.cpp (listview_scroll): New.
1046      * wptFileSignDlg.cpp (file_sign_dlg_proc): Fixed error in signature mode.          (listview_get_item2): New.
1047      Add all strings to the translation suite.          * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): If the
1048      * Updated all NLS dialog strings.          item was found, make it visible with scrolling.
1049      * wptRFC2440.cpp (get_pkttype): Fixed error to check the CTB.          * wptKeyManager.cpp (km_find_key): New.
1050      * wptFileManager.cpp (fm_decrypt): Support to decrypt armored file,          (keylist_subclass_proc): Support to handle some acceleators.
1051      with a dynamic callback for the passphrase.          Strg+{C, P, F, A}.
1052            (km_get_key_status): Get the gpgme_key_t object directly
1053  2001-08-11  Timo Schulz <[email protected]>          from the list.
1054            * wptGPGPRefsDlg.cpp (gpgprefs_dlg_proc): Also try to set
1055      * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Beautify the dialog and          the config file (if it exists).
1056      separate the fingerprint from the othr information.          * wptKeySignDlg.cpp (keysign_dlg_proc): Use easier code
1057      * wptGPG.cpp (check_opt_keyring): New. Do a sanity check if the          to handle the click->activate situation.
1058      file, specified in the options line, does exist.          * wptPassphraseCB.cpp (passphrase_callback_proc): Likewise.
1059            Support to check the passphrase quality.
1060  2001-08-17  Timo Schulz <[email protected]>          * wptPassphraseDlg.cpp (passwd_dlg_proc): Likewise.
1061            (request_passphrase): Rename 'init' to 'flags' to allow more
1062      * wptClipSignDlg.cpp (clip_sign_dlg_proc): Choose key if there is only          options.
1063      one by default.          * wptMAPI.cpp: Check all *alloc results.
1064      * wptKeyList.cpp (keylist_add_to_recipients): Ditto.          * wptKeyGenDlg.cpp (keygen_dlg_proc): Use a rudimentary
1065      * wptGPG.cpp (gpg_check_homedir): Creates the GPGME specific gpgProgram          passphrase quality check.
1066      entry in the registry in the case it's missing (whenever it's possible!).          * wptMDSumDlg.cpp (mdsum_dlg_proc): Use md5/sha1sum file
1067      (check_gpg_path): Rewrite parts of the code.          format and allow to save the checksum in a file.
1068            * wptKeyRevokeDlg.cpp (key_revoke_dlg_proc): Issue a warning
1069  2001-08-20  Timo Schulz <[email protected]>          when the PGP mode is disabled.
1070            wptKeyEditDlgs.cpp (do_editkey_primary): Return if just
1071      * wptGPG.cpp (create_gpg_options): Fixed nul byte bug. Thanks to Thomas.          one user-ID exists.
1072      * wptPreferencesDlg.cpp (prefs_dlg_proc): Fixed the code to disable          (keyedit_dlg_proc): Fixed index problem.
1073      the hotkeys. Automatically enable or disable the hotkey field depend          * wptKeyPropsDlg.cpp (get_validity): New.
1074      on the switch.          (keyprops_dlg_proc): Actually show extended validity if possible.
1075            * wptKeyList.cpp (get_key_fpr): Support for old v3 format.
1076  2001-08-21  Timo Schulz <[email protected]>          (do_addkey): Use listview_add_item2 to store key as opaque
1077            param inside the list.
1078      * wptGPG.cpp (get_gpg_default_keyid): Modify the code and now it          * wptFileStatDlg.cpp (get_digest_algo): Add SHAxxx.
1079      also supports "encrypt-to" entries as default keys.          (file_stat_dlg_proc): End dialog if no PGP data was found.
1080      * wptWipeExt.cpp (wipe_init_ext): New. Load the DLL to provide          (do_list_packets): Return the number of valid PGP packets
1081      secure wiping.          of the file.
1082      (wipe_deinit_ext): New. Unload the DLL and free all pointer.  
1083      (wipe_loaded_ext): New. Checks wether the DLL was loaded.  2005-08-02  Timo Schulz  <[email protected]>
1084      * wptW32API.cpp (set_menu_state): New.  
1085            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Instead of
1086  2001-08-25  Timo Schulz <[email protected]>          using 'Default Keyserver' add the real keyserver name to
1087            the menu.
1088      * wptStringUtil.cpp (strlist_new): New. Linked list to hold strings.          The rebuild command does not reload the cache any longer.
1089      (strlist_release): New. Release the linked list.          Use ATTR_NAME + .asc as the filename and not keyid + .asc.
1090      (strlist_add): New.          * wptProxySettingsDlg.cpp (enable_proxy_auth): New.
1091            (keyserver_proxy_dlg_proc): Changed the design a little
1092  2001-08-26  Timo Schulz <[email protected]>          and add some additional sanity checks.
1093            * wptGPGParser.cpp (commit_gpg_options): Use W32 line endings.
1094      * wptFileManager.cpp (fm_entry_new): New.          This fixes the problem that the GPG option dialog does not show
1095      (fm_entry_release): New.          very nice lines.
1096      (fm_state_new): New.          * wptGPGOptDlg.cpp (gpgopt_dlg_proc): s/options/config.
1097      (fm_state_release). New.          * wptKeySigDlg.cpp (keysig_dlg_proc): If a single key is selected
1098      (fm_get_current_file): New.          check for 'NOKEY' before asking a keyserver.
1099      * wptKeylist.cpp (strlist_add_recipients): New.          * wptKeyManager.cpp (km_delete_keys): Do not set 'refresh' flag.
1100            If a lot of keys were selected, ask if the user wants to confirm
1101  2001-08-28  Timo Schulz <[email protected]>          each delete procedure or allow to cancel the operation.
1102            * wptFileManagerDlg.cpp (file_import_dlg_proc): Display how much
1103      * wptKeylist.cpp (strlist_add_recipients): Fixed the listview handling.          keys the file contain.
1104      * wptKeyserver.cpp (kserver_load_conf): Proxy support          * wptKeyList.cpp (get_key_algo): Beautified.
1105      (kserver_connect): Ditto.          (get_key_status): Drop the "[XYZ] Unknown" format, it is too
1106            confusing for users.
1107  2001-08-30  Timo Schulz <[email protected]>          * wptKeyManager.cpp (km_check_key_status): Adjustments for the
1108            new code.
1109      * wptFilemanager.cpp (fm_encrypt): Add minor changes.          (km_check_for_seckey): Reset utrust parameter. Return -1 for
1110       (fm_decrypt): Ditto.          invalid (exp+rev+dis) keys.
1111       (fm_sign): Ditto.  
1112       (fm_verify): Make the code more modular.  2005-08-01  Timo Schulz  <[email protected]>
1113       (fm_add_sig_stat): New. For new fm_verify code.  
1114            * wptKeyserver.cpp (kserver_urlencode): Use unsigned for all given
1115  2001-08-31  Timo Schulz <[email protected]>          sizes.
1116            (check_IP_or_hostname): New.
1117      * wptFileManager.cpp (fm_add_opened_files): New. Use a standard          (kserver_load_conf): Correct finger URL parsing problem.
1118      file open dialog instead of drag & drop.          (port_from_proto): New.
1119      * wptHotkeys.cpp (hotkey_strerror): More detailed information which          (keyserver_load_conf): Guess the port.
1120      hotkey couldn't set up.          (keyserver_set_default): Allocate new buffer.
1121      (hotkey_register_single): Ditto.          (kserver_load_conf): Likewise.
1122            * wptHTTP.c (parse_reqline, parse_request): Removed.
1123  2001-09-01  Timo Schulz <[email protected]>          Use WinPT error code and remove all unused code.
1124            * wptKeyserverDlg.cpp (keyserver_dlg_proc): Properly handle finger URLs.
1125      * wptMainProc.cpp (wpt_main_proc): Remove the im- and export operations.          * wptProxySettingsDlg.cpp (read_proxy): Simple check for
1126      These code is now part of the key manager.          invalid host/IP addresses.
1127      * wptKeyPropsDlg.cpp (key_props_dlg): Removed the get_key_xxx functions.          * wptGPG.cpp (multi_gnupg_path): Return allocated buffer.
1128      * wptKeylist.cpp (get_key_algo): New.          Changed all callers.
1129      (get_key_created): New.          * wptPreferencesDlg.cpp (prefs_dlg_proc): At the first start,
1130      (get_key_type): New.          automatically set 'backup to homedir'.
1131      (get_key_size): New.          * WinPT.cpp (WinMain): Use desktop window as the parent window
1132      (get_key_fpr): New.          to load 'first-start' dialogs.
1133      * wptClipExportDlg.cpp (clip_export_dlg_proc): Removed. This is now          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Do not set 'refresh'
1134      a part of the keymanager.          flag after deleting keys.
1135            * wptFirstRunDlg.cpp (first_run_dlg_proc): Use a new structure
1136  2001-09-04  Timo Schulz <[email protected]>          for passing the arguments.
1137            * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Do not store "" for
1138      * Rewrote most parts of the keymanager.          the OptFile. This was responsible for a lot of 'General Errors'
1139      * Ditto for the filemanager.          after the first start related to key caching.
1140            Automatically set the gpg binary if possible.
1141  2001-09-05  Timo Schulz <[email protected]>  
1142    2005-07-22  Timo Schulz  <[email protected]>
1143      * wptKeyMiscDlg.cpp (clip_export): New. Handy function to export keys.  
1144      (clip_import): New. Handy function to import keys.          * wptMainProc.cpp (winpt_main_proc): Take care for shutdown
1145      * wptKeygenDlg.cpp (keygen_dlg_proc): Added a warning when the passphrase          messages and make sure WinPT make a keyring backup in this case.
1146      is too short.          * wptGPGME.cpp (keycache_reload): Do not rebuild the signature
1147            cache each time. Just do it on startup.
1148  2001-09-07  Timo Schulz <[email protected]>          * wptKeyManager.cpp (km_key_is_v3): Use new ATTR_VERSION.
1149            * wptKeyEditDlgs.cpp (keyedit_main_dlg_proc): Assume the v3 flag
1150      * wptFileManagerDlg.cpp (file_manager_dlg_proc): Fix memory leaks.          was set by the calling function.
1151            * wptKeyGenDlg.cpp (keygen_wizard_dlg_proc): Ask for backups.
1152  2001-09-12  Timo Schulz <[email protected]>          (keygen_dlg_proc): Only add the generated key to the keycache
1153            and do not reload the entire cache.
1154      * wptClipDecryptDlg.cpp (clip_decrypt_dlg): Fixed a format error.          * wptKeyManager.cpp (km_delete_keys): Store the number of keys
1155      Thanks to Rich who pointed this out.          because in each loop iteration it will be new calculated.
1156            * wptListView.cpp (listview_del_items): Likewise.
1157  2001-09-13  Timo Schulz <[email protected]>          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Directly add the
1158            generated key to the list instead of reloading the entire cache.
1159      * Revamped the whole plugin code for OE5.          * wptKeyEditDlgs.cpp (parse_preflist): Support fpr SHAnnn.
1160      * wptMailPlugin.cpp (oe_plugin_new): New. Allocates new structure.  
1161      (oe_plugin_releae): New.  2005-05-09  Timo Schulz  <[email protected]>
1162      (oe_plugin_init): New. Searches for the OE main window and select  
1163      all the recipients from the fields.          * wptCommonDlg.cpp (http_file_dlg_proc): Renamed to..
1164      (oe_get_msg): This code now uses the menu command id's to          (http_dlg_proc): ..this.
1165      execute the commands.          (get_keyserver_URL_dlg): New.
1166      (oe_set_msg): Ditto.          (check_URL): New.
1167      (oe_encrypt): Changed for the new code.          * wptKeyEditDlgs.cpp (keyedit_set_pref_keyserver): New.
1168      * wptMainProc.cpp (wpt_main_proc): Re-activate the code.          (keyedit_main_dlg_proc): Avoid massive keycache reloads, just reload
1169      * wptHotkeys.cpp: Ditto.          the single key.
1170      * Removed the hook project.          * wptKeyRevokersDlg.cpp (key_revokers_dlg_proc): Show the key
1171            properties of the selected desig. revoker.
1172  2001-09-14  Timo Schulz <[email protected]>          * wptVerifyList.cpp (verlist_build): Increase the column
1173            size of 'keyid'.
1174      * wptWAB.cpp: (wab_read): New. Interface to read all address book          * wptGPGME.cpp (keycache_update): New.
1175      entries.          * wptKeySigDlg.cpp (keysig_dlg_proc): Update the key if a signature
1176      (wab_open): New. Internal function to load the WAB.          was deleted.
1177      (wab_release): New. Release the WAB contexts.          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Zeroing the key struct
1178      (wab_load): New. Load the contents of the WAB into a linked list.          before we set any values.      
1179      (addr_list_new): New. Linked address list.  
1180      (addr_list_add): New.  2005-05-03  Timo Schulz  <[email protected]>
1181      (addr_list_release): New.  
1182            * wptFileManager.cpp (fm_parse_command_line): Handle
1183  2001-09-16  Timo Schulz <[email protected]>          'SYMKEYENC' files. Thanks to the user who reported it.
1184            * wptKeyEditDlgs.cpp (do_find_userid): Optionally return the context.
1185      * wptExtensions.h: New. This file is now used for the extenion          (showpref_dlg_proc): New.
1186      declarations.          (keyedit_main_dlg_proc): Support SHOWPREF.
1187      * wptExtensions.new: (register_extensions): New. Enumerate and          (userid_list_init): New field 'Email'. Split userID into 'Name' + 'Email'.
1188      load all possible extensions.          (do_add_new_userid): Adjust for new ListView.
1189      (unregister_extentions): New. Release all loaded extensions.          (do_find_userid): Use email for searching.
1190      * wptKeyserver.cpp (kserver_load_conf): Added support for different          (parse_preflist): New.
1191      keyservers. Currently only HTTP/LDAP.  
1192      * wptKeyserverDlg.cpp (keyserver_dlg_proc): Added LDAP support.  2005-04-19  Timo Schulz  <[email protected]>
1193      (hkp_recv_key): Ditto.  
1194      * wptMailPlugin.cpp (oe_set_focus): Fixed silly bug that prevents          * wptKeyserver.cpp (kserver_update_proxyuser): Fixed
1195      to set the focus.          buffer overflow that occurred when the proxy password
1196      * (oe_check_recipient): New. Checks if the key is able to encrypt          is > 29 chars. Thanks to the friendly user who reported this.
1197      and valid in the sense of revocation.          (kserver_search): Handle the case the key is revoked. Thanks
1198            to Ralf.
1199  2001-09-17  Timo Schulz <[email protected]>          (kserver_connect): More logging.
1200            (kserver_sendkey): Likewise.
1201      * wptClipboard.cpp (clip_isalready_secured): Fixed two silly bugs          * wptProxySettingsDlg.cpp (check_number): New.
1202      who prevent the correct return value in the case of an clipboard error.          (read_proxy): Check the entered port number.
1203      (clip_parse_pgp_id): New. Returns the PGP message type.          * wptKeySignDlg.cpp (sig_class_dlg_proc): Check default button.
1204      * wptHotkey.cpp (hotkeys_strerror): Fixed bug in the indexes.          * wptW32API.cpp (get_folder_dlg): Free memory.
1205      (hotkey_single_register): Return correct error value.  
1206      (hotkey_single_unregister): Ditto.  2005-04-11  Timo Schulz  <[email protected]>
1207      * wptW32API.cpp (get_thread_id): Removed.  
1208      (attach_thread_input): Ditto.          * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Reset
1209      (detach_thread_input): Ditto.          'enable' flag always at the begin.
1210      * wptCurrWnd.cpp (get_window_contents): Store main and focused window          * wptClipDecryptDlg.cpp (clip_decrypt_dlg): Show correct
1211      for later use.          key trust. Noted by a friendly user.
1212      (set_window_contents): Use the new code.          * wptListView.cpp (listview_add_item_pos): New.
1213            * wptKeyEditDlgs.cpp (get_subkey_fingerprint): Due to
1214  2001-09-23  Timo Schulz <[email protected]>          the fact that GPG does not return the fingerprint of
1215            the generated subkey any longer, we need to get it manually.
1216      * wptSubkeyDlg.cpp (key_subkey_dlg_proc): New. Lists the subkeys.          Thanks to Maxime Brandt.
1217      The same as the userid dialog.          (keyedit_addsubkey_dlg_proc): If key size too large, ask
1218      * wptWndSwitchDlg.cpp: Removed.          if this was a mistake.
1219      * wptWipeExt.cpp: Removed. Code is now included.          (keyedit_add_subkey): Use it here.
1220      * wptGPGME.cpp (get_default_keyid): If the keyid from the options          (do_add_new_subkey): Fix list contrl insertion.
1221      file is in the keycache.          * wptTypes.h (DEFAULT_KEYSIZE): Define new default keysize constant.
1222      * wptKeylist.cpp (keylist_reload): New. Reload a keylist.  
1223    2005-04-04  Timo Schulz  <[email protected]>
1224  2001-09-26  Timo Schulz <[email protected]>  
1225            * WinPT.cpp (check_crypto_engine): Correct version
1226      * wptW32API.cpp (listbox_add_string): New. Shortcut to avoid long casts.          check. Noted by Werner.
1227      (listbox_get_cursel): Ditto.  
1228    2005-03-22  Timo Schulz  <[email protected]>
1229    
1230  2001-09-27  Timo Schulz <[email protected]>          * WinPT.cpp (WinMain): --debug as an alias for --enable-debug.
1231            (enable_mobile_mode): New.
1232      * wptMainProc.cpp (wpt_main_proc): Fixed typo. Thanks to Andy who          * wptKeyEditDlg.cpp (keyedit_addsubkey_dlg_proc): Use new
1233      discovered this.          ID's for adding subkeys.
1234      * wptPasswdDlg.cpp (passwd_dlg_proc): New. Handy dialog to get the  
1235      passphrase.  2005-03-06  Timo Schulz  <[email protected]>
1236      * wptEditKeyDlg.cpp: Removed. The edit-key code is now moved to  
1237      the various other dialogs to make the use more easier.          * wptKeySignDlg.cpp (do_fill_seckeylist): Skip secret keys without
1238      * wptKeyUIDDlg.cpp: (keyuid_dlg_proc): ADDUID code, use it here.          a public key. Noted by Kurt Fitzner.
1239      * wptSubkeyDlg.cpp: (subkey_dlg_proc): ADDKEY code. Ditto.  
1240    2005-03-04  Timo Schulz  <[email protected]>
1241    
1242  2001-09-28  Timo Schulz <[email protected]>          * GPG asks twice for the new PIN. Thanks to Achim.
1243            * wptCardDlg.cpp (card_changepin_dlg_proc): Reset the 'safety' pin also.
1244      * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): WM_NOTIFY to handle          Only check the passphrase if the backup flag is enabled. Again thanks to
1245      the double click messages.          Achim.
1246      * wptClipSignDlg.cpp (clip_sign_dlg_proc): Ditto.  
1247      * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Ditto.  2005-03-03  Timo Schulz  <[email protected]>
1248      * wptFileManager.cpp (overwrite_file): Check if the file exists and  
1249      then let the user decide.          * wptCardDlg.cpp (card_changepin_dlg_proc): Add item to re-type the
1250      (fm_encrypt): Use the code here.          new PIN. Suggested by Achim.
1251      (fm_sign): And here.          Support to show the unmasked PIN.
1252      (fm_sym_encrypt): And here. Now we use the passphrase dialog.          Modified TAB-order.
1253      (fm_decrypt): And here.          * wptPINDlg.cpp (pin_cb_dlg_proc): Show unmasked PIN.
1254      * wptFile.cpp (unlink_file): Removed. We can use sunlink if we need  
1255      a secure wipe.          * Fixed wrong GPG --command-fd strings. Thanks to Achim.
1256    
1257      Make the memory checking more strict.  2005-02-23  Timo Schulz  <[email protected]>
1258    
1259  2001-10-04  Timo Schulz <[email protected]>          * wptKeyserver.cpp (check_hkp_response): Support for HTTP/1.1.
1260            (kserver_search): Be more strict.
1261      * wptPassphraseCB.cpp (parse_gpg_describtion): Free buffer.          * WinPT.cpp (WinMain): Enable FM progress by default.
1262      * wptKeyserver.cpp (kserver_search_init): Set buffer to NULL.          * wptFileManagerDlg.cpp (file_preferences_dlg_proc): New.
1263      Both were pointed out my Timo (not me ;-)).          (fm_parse_files): Use progress dialog only if it is
1264      * wptKeylist.cpp (add_key): Fix a typo and now the code is more          enabled.
1265      strict with returned attributes.  
1266      * wptKeysignDlg.cpp (keysign_dlg_proc): Modify GPGME interface  2005-02-07  Timo Schulz  <[email protected]>
1267      for local signatures.  
1268            * wptFileManager.cpp (fm_parse_files): Do not use the progress dialog
1269  2001-10-05  Timo Schulz <[email protected]>          for signing and verifying. But this does not fix the problem tha the
1270            dialog sometimes stay and is not destroyed.
1271      * wptKeylist.cpp: (addkey): Check if the used userID is not revoked.  
1272      In the case it is, use the first userID.  2005-02-04  Timo Schulz  <[email protected]>
1273      * wptKeySubkeyDlg.cpp (key_subkey_dlg_proc): Change the listbox.  
1274      Remove the Pos column and add a status column instead.          * wptProgressDlg.cpp (progress_cb_thread): Set root window if available.
1275      Add expire stuff for subkeys.          If the progress window survives by accident, it will be closed when the
1276      (init_dtp): Initialize the common control.          File Manager (root window) is closed.
1277      * wptClipEditDlg.cpp (clip_edit_dlg_proc): New code to load a file  
1278      into the clipboard.  2005-02-02  Timo Schulz  <[email protected]>
1279      * wptKeyPropsDlg.cpp (ot_id_to_string): New. Returns a long description  
1280      of the ownertrust value.          * wptPassphraseDlg.cpp (passwd_dlg_proc): use center_window2, otherwise
1281      (keyprops_dlg_proc): Fixed ownertrust handling.          it is invisible.
1282            * wptPassphraseCB.cpp (passphrase_callback_proc): Do not cache symmetric
1283  2001-10-06  Timo Schulz <[email protected]>          passphrases.
1284            * Enable the progress dialog for symmetric encryption.
1285      * wptPassphraseCB.cpp (parse_gpg_description): Fixed a memory leak.          * wptFileManager.cpp (fm_check_file_type): Also check for 'SYMKEYENC' in
1286            FM_ENCRYPT mode.
1287  2001-10-08  Timo Schulz <[email protected]>          * WinPT.cpp (WinMain): SETUP_EXISTING implemented.
1288            * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Reset 'Locale directory' when
1289      * wptKeyserver (kserver_connect): If the proxy settings are valid,          no value is entered.
1290      use the proxy port instead of the HKP port.  
1291      (kserver_recvkey): Proxy support.  2005-01-26  Timo Schulz  <[email protected]>
1292      (kserver_search_init): Ditto.  
1293            * wptGPG.cpp (multi_gnupg_path): Zero buffer before use.
1294  2001-10-09  Timo Schulz <[email protected]>          * wptKeyManagerDlg.cpp: Add 'Select All' feature.
1295            Move 'Edit->Key' to 'Key->Edit'.
1296      * wptFileManagerDlg.cpp (file_manager_dlg_proc): Check the return          * wptFileManagerDlg.cpp: Likewise.
1297      code of sunlink.          * wptKeyPropsDlg.cpp (keyprops_show_photo): Show the JPG photo directly.
1298      * wptGPG.cpp (get_keyring_from_optfile): New.          * wptKeyManager.cpp (spawn_loadimage): Removed.
1299      Renamed gpg_errstr to gpg_strerror.          (km_show_photo): Removed.
1300      (set_default_key): New.          * wptRevokersDlg.cpp (revokelist_init): Fixed index.
1301      * wptKeyMiscDlg.cpp (keymisc_dlg_proc): Support for default key setting.          * wptErrors.cpp (winpt_strerror): Show system error for registry
1302                related problems.
1303  2001-10-10      Timo Schulz <[email protected]>  
1304    2005-01-25  Timo Schulz  <[email protected]>
1305          * wptGPG.cpp (set_gpg_default_key): Use spaces if the entry in the  
1306          file is longer then the keyid.          * wptCardDlg.cpp (card_keygen_dlg_proc): Make 'backup keys' default
1307          (get_gpg_default_key): Replaced get_gpg_default_keyid. Check if the          and that all values are 7-bit ASCII.
1308          entry is an userid.          Use '*' for the passphrase field.
1309          * wptFileManager.cpp (fm_check_for_entry): New. Avoid to add a file          * wptGPG.cpp (multi_gnupg_path): New.
1310          more then one time.          (get_gnupg_path): Use it here.
1311          (fm_add_dropped_files): Use it here.          (check_homedir): Likewise.
1312      * wptFileManagerDlg.cpp (file_manager_dlg_proc): Support for common          * wptKeyserverDlg.cpp (save_default_ks): Fix problem that the port
1313      keys.          is actually set.
1314            * wptFileManager.cpp (fm_clearsign_8bit): New.
1315  2001-10-13  Timo Schulz <[email protected]>          (fm_parse_files): Check if the file to clearsign is really 7-bit.
1316            Thanks to djek.
1317      Set all ListviewControls to 'NULL' in all dialogs to be more crash          (fm_set_ftype): Factored out some code from...
1318      resistent.          (fm_add_dropped_files): ...here. Simplied the code.
1319            (fm_add_dir_files): New.
1320      * wptFileEncryptDlg.cpp (file_encrypt_dlg_proc): Rebuild interface.          * Removed MD5 from MyGPGME and the new default sym cipher is AES.
1321      * wptFileExportDlg.cpp (file_export_dlg_proc): Ditto.          * wptProgressDlg.cpp (progress_dlg_proc): Use additional HAND var
1322      * wptFileImportDlg.cpp (file_import_dlg_proc): Ditto.          to track the window handle.
1323      * wptFileSignDlg.cpp (file_sign_dlg_proc): Ditto.          (progress_cleanup): Try to close tracking handle first.
1324      * wptFileVerifyDlg.cpp (file_verify_dlg_proc): Ditto.  
1325      * wptStringUtil.cpp: Removed.  2005-01-21  Timo Schulz  <[email protected]>
1326      * wptFileManager.cpp: Rewrote the complete interface code for  
1327      the file manager.          * wptFileVerifyDlg.cpp (file_verify_dlg_proc): Allow to retrieve keys
1328      * wptFileManagerDlg.cpp: Rewrote the whole file manager dialog.          which are not in the keyring. Suggested by djek.
1329            * wptFileManagerDlg.cpp (filemanager_dlg_proc): Implement basic
1330  2001-10-15  Timo Schulz <[email protected]>          'Always on Top'.
1331            Allow to send encrypted files via MAPI.        
1332      * wptFileManager.cpp (fm_wipe): New.          * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Only reload the keycache
1333      (fm_set_status): Add temporary wipe status and handle default values.          if the HKP retrieval succeeded.
1334      (fm_parse_files): Use fm_wipe instead of sunlink. Delete all wiped          * wptFileStatDlg.cpp (do_list_packets): Make sure that the pkt pointer
1335      files with a successful opeation.          is not NULL.
1336      * wptKeygenCbDlg.cpp (keygen_cb_dlg_proc): New. Static dialog procedure.          * wptKeyManager.cpp (km_clip_export): Prefix the clipboard text with
1337      (keygen_cb_thread): New. Static dialog thread.          a header similar to 'gpg -k name'.
1338      (keygen_cb_dlg_create): New. Interface.          * wptErrors.cpp (log_box): Use msg_box to make sure the box is visible
1339      (keygen_cb_dlg_destroy): New. Destroy the dialog.          with 'Always on Top' windows.
1340      (keygen_cb): GPGME interface.          * wptFileManager.cpp (fm_parse_files): Set progress callback for
1341            wiping files.
1342  2001-10-16  Timo Schulz <[email protected]>          (fm_add_opened_files): Do not add the file in case of an error.
1343            * wptKeyserverDlg.cpp (kserver_get_port): New.
1344      * wptW32API.cpp (check_date): New.          (save_default_ks): Save port.
1345      (get_open_filename): New.          * wptKeyserver.cpp (set_default_kserver): Get port or use default.
1346      * wptDlgs.cpp (init_dtp): New. Initialize a special common control.          (kserver_connect): Logging.
1347      * wptKeygenDlg.cpp (keygen_dlg_proc): Add support for exipre dates.          (kserver_send_request): Likewise. Thanks to Markus.
1348            * wptError.cpp (w32_fmt_msg): New.
1349  2001-10-17  Timo Schulz <[email protected]>          (winpt_strerror): Show the W32 API error if the hotkey could not
1350            be registered.
1351      * wptCurrWnd.cpp (get_window_contents): Only minimize the window  
1352      when the clipboard contains text.  2005-01-20  Timo Schulz  <[email protected]>
1353      * wptKeylist.cpp (keylist_add_key): Check only for invalid keys  
1354      in the mainloop. The other flags are checked in the various cases.          * wptKeycacheDlg.cpp (keycache_dlg_proc): Be less strict with the
1355      (add_key): Use the ** foo ** notation for invalid flags instead of          keyring check. If the file exists, it is enough.
1356      skipping the key.          * wptKeyring.cpp (kserver_load_conf): Use C++ new for proxy_host.
1357      * wptKeyMiscDlg.cpp (clip_export): Check for revoked keys and print          Several cleanups and allow to specify the port of the keyserver.
1358      out a warning.          * wptMainProc.cpp (winpt_main_proc): Handle WM_CLOSE to make sure
1359      Change all error messages to one header.          the application terminates clearly when Windows shutdown.
1360      (check_key_status): Check if the key is valid in the sense of  
1361      revocation and expire dates. If not, print out a warning.  2005-01-10  Timo Schulz  <[email protected]>
1362      (keymisc_dlg_proc): Use the new code.  
1363            * WinPT.cpp (load_gettext): New.
1364  2001-10-19  Timo Schulz <[email protected]>          (WinMain): Use it here to load it before --keymanager. Thanks to Ralf.
1365    
1366      * wptGPGPrefsDlg.cpp (gpg_prefs_dlg_proc): Support for various  2005-01-08  Timo Schulz  <[email protected]>
1367      option files.  
1368      * wptMainProc.cpp (wpt_main_proc): Remove the preferences menu and          * Applied the patches to make the source G++ compatible.
1369      use a popup menu.          * wptKeyserver.cpp (kserver_load_conf): Use the stripped string.
1370      * wptExtensions.cpp (gpgoe_load_plugin): New. Try to load the GPGOE          * wptKeygenDlg.cpp (keygen_dlg_proc): Default key size is now 2048.
1371      plug-in.          * wptFileManagerDlg.cpp (fill_drive_combobox): Do not add CD-Roms.
1372      (gpgoe_unload_plugin): New.  
1373    2005-01-07  Timo Schulz  <[email protected]>
1374  2001-10-22      Timo Schulz <[email protected]>  
1375            * wptKeyserver.cpp (skip_type_prefix): Support all URL schemes.
1376          Remove all MyGPGME code from the main project. Now we use the          (finger_recvkey): Use skip_type_prefix and prevent buffer overflows.
1377          libmygpgme.dll to provide all cryptographic functions and interfaces.          (ldap_recvkey): Likewise.
1378            (check_hkp_response): Be more liberal with error strings.
1379          * wptKeylist.cpp (key_array_new): New.          (kserver_connect): Prevent buffer overflow and use the right return
1380          (key_array_release): New.          code for inet_addr().
1381          (key_array_search): New.          (kserver_search_chkresp): New.
1382          * wptKeylist.cpp (keylist_add_to_recipients): Check if an untrusted key was          (kserver_search): Fixed. Now it works with modern keyservers.
1383          already checked and don't bother the user if all userid's were selected.          * wptKeylist.cpp (seclist_init): Add new flags param.
1384          * wptPassphraseCB.cpp (passphrase_cb_init): Now void.          * wptFileManagerDlg.cpp (file_encrypt_dlg_proc): Use short secret key
1385          (passphrase_cb_gpgme): Ditto.          listing.
1386          (passphrase_callback_proc): Support for a list of recipients.          * wptClipboardSignEncDlg.cpp (clip_signenc_dlg_proc): Likewise.
1387          * wptImportList.cpp (implist_add_key): Support for secret keys.          * wptMainProc.cpp (winpt_main_proc): GPGME cleanup.
1388            * WinPT.cpp (WinMain): call GPGME init.
1389  2001-10-23      Timo Schulz <[email protected]>          Reword the 'you have no keyring' problem and revamp the first run dialog.
1390            * wptGPG.cpp (gnupg_access_keyring): New.
1391          * wptClipSignDlg.cpp (clip_sign_dlg_proc): Replace for with while          (gnupg_check_keyring): Removed unused code.
1392          because it's shorter.          * wptFirstRunDlg.cpp (first_run_dlg_proc): Adjust dialog for the
1393          * wptFileSignDlg.cpp (file_sign_dlg_proc): Use keylist instead of          new texts and remove unused elements.
1394          the default keyid.          * wptKeyserverDlg.cpp (keyserver_dlg_proc): s/keyserver/kserver. The
1395          * wptFileManager.cpp (fm_sign): Remove the default key ID code. Now          last annoying typo.
1396          we use the signer from the keylist.          * wptKeyserverSearchDlg.cpp (hkpsearch_dlg_proc): End dialog in case of
1397          * wptGPGME.cpp (get_default_keyid): Revamp most of the code and fix          an error.
1398          some silly bugs.  
1399          * WinPT.cpp (WinMain): if there is no valid keyring after the new  2004-12-30  Timo Schulz  <[email protected]>
1400          preferences, start the key generation dialog.  
1401            * wptKeyserverDlg.cpp (keyserver_list_build): Initialize pointer.
1402  2001-10-25      Timo Schulz <[email protected]>          This fixes the problem that the dialog crashes when the user selects
1403            anything. Thanks to my users.
1404          * wptGPG.cpp (get_gpg_default_key): Support for the users options file.          (keyserver_dlg_proc): s/keyserver/kserver. Thanks to Ulf.
1405          (check_gpg_path): Ditto.          
1406          (get_gpg_options): Ditto.  2004-12-20  Timo Schulz  <[email protected]>
1407          (set_gpg_default_key): Ditto.  
1408          (set_gpg_options): Ditto.          * wptGPG.cpp (check_gnupg_engine): Fixed version checking.
1409          (gpg_check_keyring): Ditto.          * wptFileManager.cpp (fm_encrypt): Delete the passphrase from the
1410          (set_gpg_default_keyid): Fix a typo.          cache if it is not valid.
1411          * wptGPGME.cpp (get_default_keyid): Rewrote most of the code.          
1412            Fix problem with a NULL pointer.
1413  2001-10-26      Timo Schulz <[email protected]>  
1414    2004-12-15  Timo Schulz  <[email protected]>
1415          * wptExtensions.cpp: Removed.  
1416          * wptLDAPExt.cpp: Removed.          * wptFileManagerDlg.cpp (space_wipefrees_dlg_proc): Use the right
1417          * wptLDAP.cpp: New. This code now contains a direct interface to          temp name.
1418          the WLDAP library so we don't need extra DLL's to handle LDAP keyservers.          * wptKeyEditDlgs.cpp (keyedit_main_dlg_proc): Disable 'OK' button
1419          (wldap_init): New.          when no secret key is available.
1420          (wldap_end): New.  
1421          (ldap_set_verbose): New.  2004-12-11  Timo Schulz  <[email protected]>
1422          (ldap_get_key_info): New.  
1423          (ldap_recvkey): New.          * wptFileManager.cpp (fm_add_opened_files): Fix broken code to detect
1424          (init_ldap): New. Internal use only.          the file type.
1425          (get_key): New. Ditto.          (fm_parse_command_line): Likewise.
1426          (send_key): New. Ditto.  
1427          * wptMainProc.cpp (wpt_main_proc): Init and de-init the LDAP dll.  2004-12-02  Timo Schulz  <[email protected]>
1428    
1429  2001-10-27      Timo Schulz <[email protected]>          * wptKeySigDlg.cpp (do_load_keyprops): Only issue errors for non-main nodes.
1430    
1431          * wptKeylist.cpp (keylist_enum_recipients): Add a type to make  2004-11-04  Timo Schulz  <[email protected]>
1432          the code more flexible.  
1433          * wptKeyMiscDlg.cpp (file_import): New.          * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Support preferred
1434          (file_export): New.          keyserver sub packets.
1435          * wptKeySigDlg.cpp (recv_missing_keys): Fixed a typo.  
1436            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Set a flag to
1437          Removed all OE code snippets.          indicate we need to reload the cache. If a user deletes a key
1438            and exits the manager and loads it again the deleted key is
1439  2001-10-28      Timo Schulz <[email protected]>          still in cache and provoked an error.
1440            
1441          * wptKeyMiscDlg.cpp (key_misc_dlg_proc): New virtual key support          * wptKeySigDlg.cpp (do_load_keyprops): Stricter key checks.
1442          for ENTER/SPACE and DELETE. Suggested by Graham.  
1443          * wptKeyList.cpp (add_key): New code to figure out how trustworthy          * wptW32API.cpp (center_window): Replaced with real code which calculates
1444          a expired/revoked secret key is.          the position relative to the desktop window.
1445          (keylist_enum_recipients): Show the key ID of the key when it's  
1446          revoked.  2004-10-25  Timo Schulz  <[email protected]>
1447          * wptFileManager.cpp (fm_decrypt): Parse all PKE packets and not  
1448          only the first to figure out if a secret is available. Thanks to          * wptClipDecryptDlg.cpp (clip_decrypt_dlg): Issue an info box
1449          Graham.          if the PGP message is complete but broken during the transport.
1450          * wptFile.cpp (get_keyid_from_file): Ditto.          Thanks to Werner and Achim.
1451            * wptFileManager.cpp (fm_sym_encrypt): Do not force CAST5. Thanks
1452  2001-10-30      Timo Schulz <[email protected]>          to the gnupg-users.
1453            * Automatically add '\r\n' to the text before signing. This solves
1454          * wptHotkey.h: Fixed typo. Thanks to Timo.          the problem the last line is not included if no \r\n is present.
1455          * wptGPG.cpp: (gpg_check_homedir): Fixed memory leak. By Timo.          * wptClipEditDlg.cpp (clip_edit_dlg_proc): Add a 'mail quote' mode
1456          (get_gpg_default_key): Skip comment lines immediately.          which prepends the text with '> '. This makes it easier to quote
1457          * wptRegisty.cpp (get_reg_winpt_prefs): Ditto.          decrypted text.
1458          * wptKeyManagerDlg.cpp (keylist_subclass_proc): New. Procedure          * wptKeyserverDlg.cpp (keyserver_list_build): Code which was factored
1459          for subclassing.          out from..
1460            (keyserver_dlg_proc): ..here.
1461          Remove all unsafe WM_NOTIFY stuff because this was propably the  
1462          reason for the crashes. And add as a sanity check if the control  2004-10-15  Timo Schulz  <[email protected]>
1463          sent the message.  
1464            * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Make sure that opt
1465  2001-11-02      Timo Schulz <[email protected]>          is really initialized.
1466    
1467          * WinPT.cpp (WinMain): Add the chance to start the preferences dialog  2004-10-07  Timo Schulz  <[email protected]>
1468          in the case a GPG error was detected.  
1469          * wptKeyManagerDlg.cpp (delete_keys): Interface to delete all selected          * wptErrors.cpp (winpt_errmsg): Use a generic header when no
1470          keys.          filename is supplied.
1471            * wptMainProc.cpp (cleanup_tmp_files): Do not use BUG but
1472  2001-11-03      Timo Schulz <[email protected]>          an error message which is more clean. Thanks to Ralf.
1473            * wptCardDlg.cpp (card_keygen_dlg_proc): Support new card
1474          (fm_remove_crit_file_attrs): First check if the file exists.          admin mode.
1475          Thanks to Peter.          * wptKeySignDlg.cpp (do_check_protection): Also check for smart
1476            card protection.
1477  2001-11-07      Timo Schulz <[email protected]>          (get_keyinfo): Return if this is a smart card key.
1478            * wptKeyEditDlgs.cpp (do_find_userid): Use UTF8 encoding before
1479          * wptGPG.cpp (set_gpg_default_key): Rewrote the part of changing          comparing the names.
1480          the key id.          * winpt.cpp: Now depends on PTD 0.7.1.
1481          * wptKeyManagerDlg.cpp (file_import): Use force trust to allow secret  
1482          key imports.  2004-10-01  Timo Schulz  <[email protected]>
1483          * wptGPGOptDlg.cpp (gpgopt_dlg_proc): If the options file exists and  
1484          the user doesn't set the field, try to do this automatically.          * wptClipSignDlg.cpp: Really use the selected subkey with the
1485            right '!' syntax. Thanks to Vedaal for pointing this out.
1486  2001-11-13      Timo Schulz <[email protected]>          * wptGPG.cpp (gnupg_backup_keyrings): Check if the backup device
1487            is accessable and writeable, otherwise inform the user. Kudos to
1488          * wptGPG.cpp (get_gpg_optfile): Check for the case the OptFile entry          the one who reported this problem.
1489          is set but to "". Then use default gpg directory.  
1490          * wptKeyManagerDlg.cpp (send_to): New. Context entry for sending keys.  2004-09-20  Timo Schulz  <[email protected]>
1491          (refresh_from_keyserver): New. Context entry for update keys.  
1492          (keymisc_dlg_proc): Modify the way the popup is shown.          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Disable 'Sign' in
1493            context menus when the key is flagged as revoked.
1494  2001-11-18  Timo Schulz <[email protected]>          (update_ui_items): Likewise and set the 'ShowPhoto' flag only if
1495            the key has such an item.
1496      * wptKeyManager.cpp: New. Contains all handy functions from the  
1497      wptKeyManagerDlg.cpp. This should help to cleanup the dialog code.  2004-09-08  Timo Schulz  <[email protected]>
1498      (km_quote_uid): New.  
1499      (km_check_for_seckey): New.          * wptKeyserverDlg.cpp (kserver_get_pos): If only one element is
1500      (km_check_key_status): New.          in the list, return zero.
1501      (km_clip_export): New.  
1502      (km_clip_import): New.  2004-09-07  Timo Schulz  <[email protected]>
1503      (km_file_export): New.  
1504      (km_file_import): New.          * wptAboutDlg.cpp (about_dlg_proc): Add 'Help' button. Suggested by Ralf.
1505      (km_delete_keys): New.          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Likewise.
1506      (km_send_to_keyserver): New.  
1507      (km_refersh_from_keyserver): New.  2004-09-01  Timo Schulz  <[email protected]>
1508      (km_update_default_key_str): New.  
1509          * wptKeygenDlg.cpp (ask_for_backup): New.          * wptGPG.cpp (GPG_CONF): Define it. Use gpg.conf by default.
1510          (keygen_dlg_proc): Use new function to give the chance to the          (default_key_from_cache): Use new key attribute 'usable'.
1511          user for a complete backup.          * WinPT.cpp (show_unprotected_keys): Removed.
1512            * wptKeylist.cpp (check_key): Removed.
1513  2001-11-22      Timo Schulz <[email protected]>          (seclist_init): Use new 'usable' key attribute.
1514            (keylist_add_key): Likewise.
1515          * wptW32API.cpp (set_foreground_wnd): New.          * wptKeyManagerDlg.cpp (keylist_subclass_proc): support to
1516            add keys via 'INSERT'.
1517          Fixed the return value of all EndDialogs.          * wptListView.cpp (listview_select_one): New.
1518            (listview_find): New.
1519          * wptMainProc.cpp: Remove all code parts which did the same for the          * wptFileManager.cpp (fm_get_current_pos): If there is only
1520          current window support. Now the code uses a dialog switch which is          one item, return 0 but also select it. Thanks to Christian.
1521          much smaller.  
1522    2004-08-28  Timo Schulz  <[email protected]>
1523  2001-11-23      Timo Schulz <[email protected]>  
1524            * WinPT.cpp (WinMain): Free gpg table in case of an error.
1525          * wptW32API.cpp (set_active_window): New.          * wptFileManagerDlg.cpp (filelist_subclass_proc): New.
1526          (reset_active_window): New.          (filemanager_dlg_proc): Subclass the list control.
1527          (window_reminder): New. This is a delayed thread procedure to          * Fix Alt+C for the winpt_prefs_dlg_proc.
1528          force the focus (foreground) to the dialogs for the current          * wptKeyserver.cpp (kserver_load_conf): Ignore lines with
1529          window mode.          just whitespaces. Thanks to the folks on winpt-users.
1530          * wptMainProc.cpp (winpt_main_proc): Use it here.  
1531          * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): Ditto.  2004-08-27  Timo Schulz  <[email protected]>
1532          * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Ditto.  
1533          * wptClipSignDlg.cpp (clip_sign_dlg_proc): Ditto.          * wptKeyserver.cpp (skip_whitespace): New.
1534          * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Ditto.          * Fix a problem with the key cache. The new hash item was
1535            not initialized to zero and thus the free caused an illegal access.
1536  2001-11-24      Timo Schulz <[email protected]>          Thanks to Ralf for pointing this out.
1537            * wptTextInputDlg.cpp (text_input_dlg_proc): Finished with localisation.
1538          * wptKeyManager.cpp (km_groups_new): New.          * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Likewise.
1539          (km_groups_release): New.          * wptFirstRunDlg.cpp (first_run_dlg_proc): Remove global variable and
1540          (km_groups_load): Rewritten.          use a context to store the value. Loalize all text strings.
1541          (km_groups_add): New.          * wptKeyList.cpp (key_check_validity): Cannot use gettext here.
1542          (km_groups_del): New.          (keylist_get_recipients): Increase buffer for gettext messages.
1543          (km_groupdb_open): New.  
1544          * wptKeyManagerDlg.cpp (keymisc_dlg_proc): Added group support.  2004-08-26  Timo Schulz  <[email protected]>
1545          * wptGroups.c (groupdb_enum_read): Store the record before increment it.  
1546            * WinPT.cpp (load_keyserver_conf): New. Factored out some code
1547  2001-11-27      Timo Schulz <[email protected]>          from WinMain ().
1548            (WinMain): Load keyserver config at the begin. Thanks to Bodo Aßner
1549          * wptKeyserver.cpp (base64_encode): New. Marco provided HTTP          * wptKeyserverDlg.cpp (keyserver_dlg_proc): If there is no keyserver
1550          proxy authentifcation support for each command.          in the list control, add at least the internal default HKP server.
1551          (kserver_update_proxyuser): New. Ditto.          * wptKeygenDlg.cpp (keygen_wizard_dlg_proc): NLS support.
1552          (kserver_send_request): Ditto.          * wptKeySignDlg.cpp (sig_class_dlg_proc): Likewise.
1553          (kserver_recv_request): Ditto.          (keysign_dlg_proc): Likewise.
1554          (kserver_search_init): Ditto.          * wptKeySigDlg.cpp (keysig_dlg_proc): Likewise.
1555            * wptKeyserver.cpp (skip_type_prefix): New. Thanks to Marcus Junk.
1556  2001-11-29      Timo Schulz <[email protected]>          (kserver_connect): use it here.
1557            (kserver_send_request): Likewise.
1558          * wptKeyManager.cpp (km_groupdb_expand_recipients): New.          (kserver_recvkey): Likewise.
1559          * wptMainProc.cpp (clip_gpg_dlg): New.  
1560          Modify the whole event loop so we don't need all the same code  2004-08-25  Timo Schulz  <[email protected]>
1561          for each command. And we use the new foreground code.  
1562          * wptW32API.cpp (check_date): Fixed.          * wptFileManager.cpp (fm_get_file_type): Skip files over 32 MB
1563            and skip to read large files on floppy discs.
1564  2001-12-02      Timo Schulz <[email protected]>          (fm_wipe): Display a 'wait' cursor until the wipe is complete.
1565            (is_floppy_disc): New.
1566          * wptGroups.c: Revamped from the base. Arggg.          * wptFileManagerDlg.cpp (filelist_subclass_proc): New.
1567            (file_manager_dlg_proc): Use subclassing to allow some hotkeys.
1568  2001-12-15  Timo Schulz <[email protected]>  
1569    2004-08-24  Timo Schulz  <[email protected]>
1570      * wptKeyManagerDlg.cpp (keymisc_dlg_proc): New menu items for  
1571      copy and paste.          * wptKeyEditDlgs.cpp (userid_list_init): Add creation date for
1572            the user-ids.
1573  2001-12-19      Timo Schulz <[email protected]>          * wptKeygenDlg.cpp (key_wizard_dlg_proc): Allow to switch into
1574            expert mode when the non-interactive mode is used.
1575          * Completed work on the temporary file support for GPG.          * WinPT.cpp (WinMain): Start the keygen wizard instead of the
1576          * wptRegistry.cpp (set_reg_winpt_prefs): Add mode for the          expert dialog and allow to switch to it.
1577          plaintext viewer option. Suggested by Markus Winkler.  
1578          (get_reg_winpt_prefs): Ditto.  2004-08-20  Timo Schulz  <[email protected]>
1579          * wptPreferencesDlg.cpp (prefs_dlg_proc): Ditto.  
1580          * wptMainProc.cpp (winpt_main_proc): Ditto.          * wptKeyManagerDlg.cpp (do_create_minpopup): In read-only
1581            mode the menu is not available.
1582  2001-12-21      Timo Schulz <[email protected]>          (popup_gpg_readonly): New.
1583            (menu_gpg_readonly): New.
1584          * wptTextInputDlg.cpp (text_input_dlg_proc): New.          (keymanager_dlg_proc): Use it here. Do not check the permissions
1585          * wptMainProc (clip_gpg_dlg): Support for deached signatures.          any longer since this is now handle via the read-only code.
1586          * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Ditto.          * wptMainProc.cpp (winpt_main_proc): Check if the keyrings
1587            are in read-only mode.
1588  2001-12-30      Timo Schulz <[email protected]>          * wptKeyGenDlg.cpp (keygen_wizard_dlg_proc): RSA support.
1589            * wptKeySignDlg.cpp (keysign_dlg_proc): Allow non-revocably
1590          * wptFileManager.cpp (fm_sign): Always use callbacks for the          signatures in expert mode.
1591          passphrase.          * wptKEyEditDlgs.cpp (do_find_userid): Release context.
1592          (fm_decrypt): Ditto.          * wptGPG.cpp (gpg_check_permissions): Only print out a warning
1593          (fm_parse_files): Cache the passphrase for the session and check          in the interactive mode.
1594          if the file still exists.          * wptTrayPopDlg.cpp (WndProc): Destroy the window when the left
1595          * wptRFC2240.cpp (parse_ske_sesskey): Removed. We no longer use          mouse button is clicked.
1596          low level stuff here.  
1597          * wptFile.cpp (get_keyid_from_file): Ditto.  2004-08-19  Timo Schulz  <[email protected]>
1598    
1599  2002-01-01      Timo Schulz <[email protected]>          * wptKeyEditDlg.cpp (keyedit_addsubkey_dlg_proc): Corrected
1600            key numbers.
1601          * wptFileManager.cpp (fm_verify): Support for the case there is  
1602          no public key to verify the signature.          * wptKeysigDlg.cpp (do_delsig): New. Implement 'delsig' command.
1603            (is_sig): Change code to allow to check pre-defined fields.
1604  2002-01-06  Timo Schulz <[email protected]>  
1605            * WinPT.cpp (WinMain): Allow read-only support for keyrings.
1606      * wptPreferencesDlg.cpp (prefs_dlg_proc): Support for the sign+encrypt  
1607      hotkey.  2004-08-06  Timo Schulz  <[email protected]>
1608          * wptRegistry.cpp: Ditto.  
1609          * wptRegistry.h: Ditto.          * wptContext.h: Move subclass_s context to this file.
1610          * wptHotkey.h: Ditto.  
1611          * wptGPG.cpp (gpg_load_options): New.          * wptKeysigDlg.cpp (subclass_dlg_proc): New.
1612          (gpg_save_options): New.  
1613    
1614  2002-01-13      Timo Schulz <[email protected]>  2004-08-05  Timo Schulz  <[email protected]>
1615    
1616          * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Fixed some boolesche          * wptKeySigDlg.cpp (sigprops_dlg_proc): Set the 'expired' flag
1617          settings.          when possible.
1618          * wptGPG.cpp (gpg_backup_options): New.          New dialog layout to enhance the readability of the text. Use
1619          (gpg_load_options): Ignore comment lines.          flat check boxes for the same reason.
1620          (gpg_save_options): Rewritten.  
1621            * wptKeyEditDlgs.cpp (do_editkey_expire): Set new value to
1622  2002-01-18      Timo Schulz <[email protected]>          the right column (3 not 4).
1623    
1624          * wptMainProc.cpp (winpt_main_proc): NLS support for new menu style.          * wptFileManagerDlg.cpp: Make sure the wipe freespace tempfile
1625          * wptPassphraseCB.cpp (parse_gpg_description): Support when no          uses a unique name.
1626          description was given. One example is when symmetric was used.  
1627    
1628  2002-01-20      Timo Schulz <[email protected]>  2004-08-04  Timo Schulz  <[email protected]>
1629    
1630          * wptMainProc.cpp (winpt_main_proc): Fix the error, that the user          * wptClipEditdlg.cpp (clip_edit_dlg_proc): Removed the
1631          have to click twice before the menu appears. Richard told me this.          edit-field to display the text. Now a RichEdit field is
1632            used. This solves the XP problem that the viewer is empty
1633            even if there is text in it.
1634  2002-01-23      Timo Schulz <[email protected]>  
1635            * wptKeyManger.cpp (km_file_export): Add WinPT specific comment.
1636          * wptClipEditDlg.cpp (clip_edit_dlg_proc): Release the buffer for  
1637          loading a file.          * wptKeySigDlg.cpp (sigprops_dlg_proc): New.
1638          Add new code to save file with clipboard contents.          (keysig_dlg_proc): Add new 'Properties' button and implement
1639            the code for it.
1640  2002-01-26      Timo Schulz <[email protected]>  
1641            * wptSigList.cpp: Add support to show the expiration date.
1642          * wptKeylist.cpp (keylist_add_key): Use flags for the file manager  
1643          to avoid to show all userid's. Thanks to Frank.          * wptGPGME.cpp (keycache_init): Support to show the progress bar.
1644          * wptDateDlg.cpp (date_dlg_proc): New context to use different          (keycache_release): Store the amount of keys in the registry for
1645          window texts and some other features.          the progress dialog.
1646          * wptKeygenDlg.cpp (keygen_dlg_proc): Use it here.  
1647          * wptKeySubkeyDlg.cpp (subkey_dlg_proc): Ditto.          * wptPreferenceDlg.cpp (prefs_dlg_proc): Add support to generate
1648          * wptGPG.cpp (gpg_create_groupdb): Create the groupdb.gpg file if          default keyserver.conf.
1649          it doesn't exist.  
1650          * WinPT.cpp (WinMain): Use the new code here.          * wptKeyserver.cpp (kserver_load_conf): Store the mod-time of the file.
1651            Fix possible buffer overflow.
1652  2002-02-04      Timo Schulz <[email protected]>          (wsock_end): Release stored keyserver list.
1653    
1654          * WinPT.rc: Set LVS_SHOWSELALWAYS for all listview elements          * wptEncryptDlg.cpp (clip_encrypt_dlg_proc): Allow to search for
1655          which need it. Thanks to Timo who find this out.          a specific recipient and select it.
1656          * WinPT.cpp (WinMain): We don't quit in the case the user changed  
1657          the preferences.  2004-08-02  Timo Schulz  <[email protected]>
1658          (update_keycache): New. Handy function to update the keycache.  
1659            * wptKeysigDlg.cpp (do_create_popup): New.
1660          * Use quotation for the options file in any case.          (do_load_keyprops): New.
1661    
1662          * clipboard.c (gpgme_clipboard_verify): When the NO_PUBKEY status          (keysig_dlg_proc): Factor out some common code and use
1663          is set, we don' try to get the sig key.          do_load_keyprops.
1664    
1665          * wptGPG.cpp (get_gpg_default_key): Revamped.          * wptKeyServer.cpp (kserver_check_inet_connection): New.
1666    
1667  2002-02-05      Timo Schulz <[email protected]>          * wptKeyManger.cpp (km_refresh_from_keyserver): First check
1668                    for an active internet connection. It's annoying for the
1669          wptGPG.cpp (gpg_save_options): Fixed the code for the case the          user to confirm an connection error for each key (n>40).
1670          values don't exist in the options file. Thanks to Lutz who found this out.  
1671          (get_gpg_default): First search for "default-key" then for "encrypt-to".  2004-07-27  Timo Schulz  <[email protected]>
1672    
1673  2002-02-05      Timo Schulz <[email protected]>          * wptKeyManagerDlgProc.cpp (keymanager_dlg_proc): Set the new
1674            value for the ownertrust.
1675          * wptGPG.cpp (gpg_save_options): Catch the case when the options file  
1676          exist but it has a length of zero.          * wptKeyManager.cpp (get_key_trust): Make it public.
1677          (gpg_display_error): Print out the data from the GPG stderr          (get_key_trust_str): New.
1678          (when available).          (km_refresh_from_keyserver): Allow to select random keys.
1679          * w32-util.c (_gpgme_get_gpg_optfile): Check if the file exists and if          (km_refresh_one_key): New.
1680          not, return NULL.  
1681          * wptKeyManagerDlg.cpp (keymisc_dlg_proc): Add support to export secret          * wptKeyserver.cpp: Use default keyserver if possible.
1682          keys.  
1683    2004-07-13  Timo Schulz  <[email protected]>
1684          * Fixed a lot of memory allocation all over the place.  
1685            * wptFileManager.cpp (fm_assume_onepass_sig): New.
1686  2002-02-08      Timo Schulz <[email protected]>          Thanks to Vedaal who found out that armored one-pass sigs are not
1687            correctly recognized.
1688          * wptNLS.c: Now it's C-source because GPGME needs gettext too.  
1689          (stpcpy): Makes it static.          (ask_filename): New.
1690          * errors.c: localize all error strings.          Again thanks to Vedaal who suggested to ask for a new output name
1691          * WinPT.cpp (get_gettext_lang): Move the code in this file because          for the case the user does not want to overwrite the file.
1692          we can't use it in plain C.  
1693            (fm_encrypt): Use it here.
1694  2002-02-23      Timo Schulz     <[email protected]>          (fm_decrypt): Likewise.
1695            (fm_sign): Likewise.
1696          * wptListview.cpp (listview_del_items): New.  
1697          * wptKeyManager.cpp (km_delete_keys): Use it here.          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): New context menu entry
1698          * wptKeygenDlg.cpp (keygen_dlg_proc): UTF8 support.          to set secret keys to ultimate trust.  
1699          * wptKeylist.cpp (add_key): UTF8 support.  
1700            * wptKeyManager.cpp (km_check_for_seckey): Optionally return if the
1701  2002-02-28      Timo Schulz <[email protected]>          key has ultimate trust.
1702            (km_set_implicit_trust): New.
1703          * wptImplist.cpp (implist_add_key): UTF8 support.  
1704          Handle invalid userID's.  2004-07-12  Timo Schulz <[email protected]>
1705          * wptPassphraseCB.cpp (parse_gpg_description): UTF8 support.  
1706          (passphrase_callback_proc): Ditto.          * wptRegistry.cpp: Support for disable compression of multi-media files.
1707            (set_reg_winpt_single): New.
1708            (get_reg_winpt_single): New.
1709  2002-03-01      Timo Schulz <[email protected]>  
1710            * wptFileManager.cpp (is_multi_media): New.
1711          * wptWipeFile: Replaced all low level I/O functions with W32 API          (fm_encrypt): Disable compression of multi-media files.
1712          functions. And support for more wiping modes. I don't know to          (fm_state_new): Set comment to indicate armored files were generated
1713          support all, but those makes sense for me:          by WinPT. This is a replacement due to the fact the WinPT string is not
1714          1. Simple (2 random passes)          added in the 'Version' for larger files.
1715          2. DoD (as described in the standard)  
1716          3. Peter Gutmanns method (from the paper)          * WinPT.cpp (WinMain): Extract the loadimage.exe from the DLL if not found.
1717    
1718    2004-07-11  Timo Schulz  <[email protected]>
1719  2002-03-02      Timo Schulz <[email protected]>  
1720            * Bug fix for the validity revoked status. Now it is 'revoked'
1721          * Use capital letters in the main menus and applied Patricks spelling          and not 'unknown' any longer.
1722          corrections.  
1723            * Feature to disable encryption. This might be useful for filetypes
1724          * wptClipDecryptDlg.cpp (clip_decrypt_dlg): keyID is a string          GPG does not recognize as compress (movies, ...).
1725          not an integer. Thanks to scrumpy.        
1726          * wptWipeFile.cpp (rename_unlink): Use '\' instead of '/'.          * wptFileManager.cpp (fm_get_file_type): Skip packet detction if
1727          (overwrite): Some bugfixes to set the pointer to the begin of the file.          the file is large and it has no openpgp extension.
1728          * wptVerlist.cpp (verlist_build): New keyID column.  
1729          (verlist_add_sig): Use it here.  2004-06-19  Timo Schulz  <[email protected]>
1730    
1731  2002-03-22      Timo Schulz <[email protected]>          * wptInet.cpp: Renamed to ...
1732            * wptHttp.c: ... this.
1733          * wptMainProc.cpp (currwnd_gpg_dlg): If the viewer is used, doesn't          * wptKeyManager.cpp (km_http_import): Release 'p' not too early.
1734          set window contents for some commands.          * WinPT.cpp (WinMain): If there is a problem with the homedir,
1735          (winpt_main_proc): Use the code here.          jump to the first start settings.
1736          * wptKeygenDlg.cpp (keygen_dlg_proc): Allow to generate keys > 2048 bits.  
1737          * wptProxySettingsDlg.cpp: (keyserver_proxy_dlg_proc): New.  2004-06-12  Timo Schulz  <[email protected]>
1738          * wptKeyserverDlg.cpp (keyserver_dlg_proc): Use the proxy dialog here.  
1739          * wptKeyserver.cpp (kserver_load_conf): Fixed malformed strings.          * wptInet.cpp: Updated.
1740            * wptKeyManager.cpp (km_http_import): Use http_send_request2() to
1741  2002-03-29      Timo Schulz <[email protected]>          parse the URL.
1742            * wptCommonDlg.cpp (http_file_dlg_proc): New.
1743          * wptGPG.cpp (create_groupdb): Only close the file handling if it          (get_http_file_dlg): New.
1744          really exists. Thanks to Mark.  
1745          (gpg_check_homedir): Applied the patch. Now we're a little stricter  2004-06-08  Timo Schulz  <[email protected]>
1746          about the homedir checks.  
1747          (check_homedir): Fixed a possible memory leak.          * wptInet.cpp: New.
1748          * WinPT.cpp (WinMain): Check the homedir functions to exit the program          * wptKeyManagerDlg.cpp (key_manager_dlg_proc): Support for http
1749          if      we've found some problems.          transfers.
1750          * wptErrors.cpp (winpt_strerror): New value if a directory could not          * wptKeyManager.cpp (km_http_import): New.
1751          created.  
1752          * wptMainProc (winpt_main_proc): Use new code for the current window mode.  
1753          * wptCurrWnd.cpp (get_curr_wnd): Ditto.  2004-06-02  Timo Schulz  <[email protected]>
1754          (get_window_contents): Always set focus to the current window.  
1755            * wptClipEditDlg.cpp (clip_edit_dlg_proc): Do not issue an error
1756  2002-03-31      Timo Schulz <[email protected]>          if there is no clipboard data.
1757    
1758          * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Ask if the user wants to          Release memory in case of an error.
1759          select the key used for signing.  
1760          * wptSeclistDlg.cpp (seclist_dlg_proc): New. Dialog for secret selecting.          * wptKeyManager.cpp (keylist_cmp_cb): Allow to sort by algorithm.
1761          * wptFilePrefsDlg.cpp (file_prefs_dlg): Fixes for the combo box ;-).  
1762          * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Reload the keycache after          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Likewise.
1763          fetching keys via HKP and try to update the Gpgmekey inside.  
1764          * wptVerifyList.cpp (verlist_add_sig): Check if the key context was  
1765          set inside the signature. Fixes some segfaults related to the HKP key  2004-05-31  Timo Schulz  <[email protected]>
1766          fetching during verification. Thanks to Julian. And force to use UTF8  
1767          for user ID's.          * wptFileVerifyDlg.cpp (file_verify_dlg_proc): Implement the
1768          * wptClipSignDlg.cpp (one_key_proc): If only one secret exists,          'X' close button. Noted by a friendly user.
1769          prevent that the dialog is loaded and ask for the passphrase directly.          
1770            Disable 'Save' button.
1771    
1772  2002-04-05      Timo Schulz <[email protected]>          * wptMainProc.cpp (cleanup_tmp_files): Delete all related temp files.
1773    
1774          * wptSigList.cpp (siglist_add_key): Added UTF8 support. Thanks to Scire.          * wptFileManager.cpp (fm_set_status): Do not use the data file name
1775          * wptKeyUidDlg.cpp (keyuid_dlg_proc): Ditto.          for signatures but keep the original file name.
1776          * wptKeySignDlg.cpp (keysign_dlg_proc): Ditto.  
1777          * wptKeyAddUidDlg.cpp (keyedit_adduid_dlg_proc): Ditto.          (fm_verify_pasted_detsig): Try to verify detached signatures from
1778            the clipboard.
1779  2002-04-19      Timo Schulz <[email protected]>  
1780    2004-05-14  Timo Schulz  <[email protected]>
1781          * wptImplist.cpp (implist_load): Support for the advanced PGP parser code.  
1782            * WinPT.cpp (check_crypto_engine): Due to some
1783  2002-04-23      Timo Schulz <[email protected]>          internal  GPG changes the min. version for smart card
1784            support is now 1.3.6.
1785          * wptRFC2440.cpp: Removed. We now use the OpenCDK package.  
1786          * wptFileManager.cpp (fm_get_file_type): Removed the old RFC2440 code.          * wptProxySettingsDlg.cpp (read_proxy): Correct prefix
1787          (fm_encrypt): Modified code to allow sign & encrypt.          handling. Thanks to the folks who reported this via SF.net.
1788          (fm_parse_file): Ditto.  
1789          (fm_decrypt): Support for checking signatures.          * wptRegistry.cpp (get_reg_winpt_prefs): Corrected enum ids.
1790          * wptFileManagerDlg.cpp (file_manager_dlg_proc): Ditto.          Thanks to the folks on winpt-users who reported it.
1791    
1792  2002-04-24      Timo Schulz <[email protected]>          * wptPreferencesDlg.cpp (prefs_dlg_proc): Fix code in case of
1793            the hotkeys are disabled.
1794          * wptKeyManagerDlg.cpp (key_misc_dlg_proc): Support to maximize windows.  
1795                    * wptKeylist.cpp (do_addkey): Broken ElGamal dection, fixed.
1796          Changed the way to modify the "Version:" string.  
1797            * wptFileManager.cpp (fm_get_file_type): Do not parse the entire
1798          * wptKeyserver.cpp (add_node): New.          file if the size is >= 256MB.
1799          (kserver_change_proxy): New.  
1800          (kserver_read_config): New.  2004-03-15  Timo Schulz  <[email protected]>
1801          (kserver_write_config): New.      
1802          (kserver_cfgfile_release): New.          * Decrypt list box has now a vertical scroll bar.
1803          (proxy_release): New.  
1804    2004-03-11  Timo Schulz  <[email protected]>
1805          * wptProxySettingsDlg.cpp (read_proxy): New.  
1806          * wptFileStatDlg.cpp (file_stat_dlg_proc): New.          * The DLL is now complety C-source.
1807          * wptFileManager.cpp (fm_list): New.  
1808          (fm_parse_files): Support the new list command.  2004-03-08  Timo Schulz  <[email protected]>
1809    
1810  2002-04-25      Timo Schulz <[email protected]>          * wptGPG.cpp (gnupg_import_keyrings): cleanups.
1811    
1812          * wptImplist.cpp (implist_add_key): Catch possible segfault.          * wptUTF8.c (utf8_to_wincp): New. Directly convert UTF-8 to Windows
1813          * wptVerifyList.cpp (verlist_add_sig): Ditto.          CP.
1814          * wptKeyManager.cpp (km_check_for_seckey): Modified for GPG 1.0.7.          (wincp_to_utf8): Likewise.
1815          * wptKeylist.cpp (find_secret_key): New.          (conv_charset): Now internal and static.
1816          (add_key): Use it here.  
1817          (keylist_add_key): And here.          * wptUTF8.h: New prototypes and remove the old prototypes.
1818    
1819          * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Fixed a bug that prevent          * WinPT.cpp (WinMain): Destroy the windows handle in case of an error.
1820          to fetch the key.  
1821    
1822  2002-04-26      Timo Schulz <[email protected]>  2004-03-07  Timo Schulz  <[email protected]>
1823    
1824          * wptKeyUidDlg.cpp: Fixed a typo. Kudos to Dugan Chen.          * wptGPG.cpp (get_gnupg_keyring): Special case because GPG creats
1825          * wptKeyUidDlg.cpp: Ditto.          dummy keyrings with a size of zero in the homedir.
1826    
1827  2002-04-27      Timo Schulz <[email protected]>          (gpg_check_permissions): Check for read-only keyrings and add code
1828            for this case.
1829          * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Support for the  new dialog.  
1830          * wptFileSaveDlg.cpp (file_save_dlg_proc): New.          This problem fixes a lof of other problems related to the OpenPGP
1831          * wptClipboard.cpp (clip_parse_pgp_id): use logical OR to concat the values.          parsing stuff for the key cache.
1832          * wptMainProc.cpp (clip_gpg_dlg): Use the new PGP id's.  
1833          (currwnd_gpg_dlg): Ditto.          * WinPT.cpp (check_crypto_engine): Store the GPG version for later use.
1834            
1835          Now it's possible to parse cleartext signatures which contains an  2004-03-04  Timo Schulz  <[email protected]>
1836          encrypted message inside the body.  
1837            * wptKeyserver.cpp (finger_recvkey): Error if key was not found
1838          * wptTextInputDlg.cpp (load_file_contents): New.          or garbled.
1839          (text_input_dlg_proc): Support for choosing the data file.  
1840            * wptGPG.cpp (gpg_check_permissions): Take care of the entries
1841          * wptFileManager.cpp (fm_verify): Support for detached signatures.          in gpg.conf.
1842          (fm_parse_files): Ditto.  
1843            * wptFileManagerDlg.cpp (file_encrypt_dlg_proc): Support to select
1844            the signer. Suggested by Sebastian.
1845  2002-04-28      Timo Schulz <[email protected]>  
1846            * wptKeylist.cpp (seclist_init): Moved from the clip dialog file to
1847          * wptRegistry.cpp (get_reg_winpt_prefs): New option for keylist mode.          this file.
1848          (set_reg_winpt_prefs): Ditto.          (seclist_free): Likewise.
1849          * wptPreferencesDlg.cpp (prefs_dlg_proc): Support for keylist mode option.          (seclist_select_key): Likewise.
1850          (set_keylist_mode): New.  
1851            * wptFileManager.cpp (fm_encrypt): Handle the case the signer was
1852          Implement minimal keylist mode. Suggested by Fabian.          already set.
1853    
1854          * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): Implement it here.  2004-03-02  Timo Schulz  <[email protected]>
1855          * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Ditto.  
1856          * wptKeylist.cpp (keylist_add_key): Ditto.          * wptGPG.cpp (check_keyring): Handle the case that the keyring
1857          (keylist_load): Ditto.          is set in the gpg.conf file and the pubring.gpg file is zero bytes.
1858          (keylist_build): Ditto.  
1859            (gnupg_backup_keyrings): Support backup of keyrings which were set
1860  2002-04-29      Timo Schulz <[email protected]>          in gpg.conf. Thanks to the user who reminded me of this problem.
1861    
1862          Adjustments for GPG 1.0.7          (gnupg_check_file_ext): Make check not case sentensive.
1863    
1864          * wptKeyEditDlg.cpp (keyedit_ownertrust_dlg_proc): Support ultimate trust          * (sfree_if_alloc): Overwrite the memory with zeros before freeing
1865          and ask the user if he knows what he's doing.          it. This only works with c-strings! Use it everywhere we handle
1866          * wptKeyManager.cpp          sentensive information (passphrases).
1867          (keylist_subclass_proc): Use double click to open the props.  
1868          * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Allow the user even to modify a          * Try to improve the usability with better menu names and new
1869          ultimate ownertrust value.          ordering.
1870          * wptKeyEditAddSubkeyDlg.cpp (keyedit_addsubkey_dlg_proc): Support for  
1871          new RSA keys.          * wptKeyMangerDlg.cpp: Make the 'Trust' column sortable.
1872    
1873  2002-04-30      Timo Schulz <[email protected]>          * wptMainProc.cpp (winpt_main_proc): Removed GPG about dialog. Now
1874            it is part of the WinPt about dialog. This way we can minimize the
1875          Merge ownertrust handling into the keycache. Now GPG outputs the          elements in the popup menu.
1876          ownertrust in the key listing which means we can get the ownertrust  
1877          value from the keycache.  2004-02-29  Timo Schulz  <[email protected]>
1878    
1879          (keymisc_dlg_proc): Add a button to rebuild the sig database cache.          * wptFileManagerDlg.cpp (file_encrypt_dlg_proc): Support throw-keyid.
1880          Please not that this is not the same as the key cache! The key cache  
1881          will be updated when a new key was imported or a subkey was added/changed.          * wptKeySignDlg.cpp (do_fill_seckeylist): Make sure we skip key itself
1882          The signature cache only affects the validity of the keys.          so we are not allowing to sign ourself.
1883    
1884          Removed the MyGPGME trustlist code. Now we can use the field in the key          * wptSigList.cpp (siglist_add_key): Support for the signature
1885          listing to determine the ownertrust (which makes things a lot of easier).          flags (local, non-revocably, ...).
1886    
1887  2002-05-01      Timo Schulz <[email protected]>          * Key signing with GPG 1.2.x should work again. Hopefully.
1888    
1889          * wptKeygenDlg.cpp (fill_keytype_box): New.  2004-02-26  Timo Schulz  <[email protected]>
1890          (keygen_dlg_proc): Use a combo box for various key types. With GPG 1.0.7  
1891          there is full RSA support.          * wptFileManagerDlg.cpp (file_encrypt_dlg_proc): Issue an error
1892            if no recipient was selected.
1893          Now we use the new status code by GPG (INV_RECP, NO_RECP) to figure out  
1894          what the problem was when no encryption was done.          * wptFileManager.cpp (fm_parse_files): Make sure the progress dialog
1895            is destroyed. This fixes the bug that the dialog sometimes exist even
1896          * wptKeysignDlg.cpp (keysign_dlg_proc): Before we sign a key, we make          after the procedure ended.
1897          sure it was not already signed (ALREADY_SIGNED).  
1898            * wptProgressDlg.cpp (progress_callback): Change the if-then-else
1899          * wptKeyManagerDlg.cpp (keymisc_dlg_proc): Due to the new trust system,          struct to prevent zombie dialogs.
1900          now we also support to sign ultimate trusted keys.  
1901            * wptKeyserver.cpp: Removed unused prototypes.
1902          * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Try to check if the button  
1903          is checked and do not check it.  2004-02-25  Timo Schulz  <[email protected]>
1904    
1905          * wptClipDecryptDlg.cpp (clip_decrypt_dlg_proc): New format for the verify          * wptKeyManagerDlg.cpp: Use consequently 'List Signatures' and
1906          box and now we also support the date of the signature.          do not mix the names in the different menus.
1907    
1908          Applied Rich's spelling and grammer mistakes.          * wptSigList.cpp: Support to show the signature class.
1909          Fixed a lot of minor spelling mistakes and capital letters for dialogs.  
1910            * wptKeyEditDlgs.cpp (keyedit_main_dlg_proc): Disable the combo
1911  2002-05-05      Timo Schulz <[email protected]>          box when there is no secret key available.
1912    
1913          * Fixed problem with rev certs for imports stats.          (do_init_keylist): Do not allow to use the owners key as a desig
1914            revoker.
1915          * Cosmetical changes for the GPGME libraray.  
1916            * wptKeylist.cpp (get_key_trust): New.
1917  2002-05-06      Timo Schulz <[email protected]>          (do_addkey): Use it here.
1918    
1919          * wptClipEditDlg.cpp (clip_edit_dlg_proc): Change the wording of  2004-02-24  Timo Schulz  <[email protected]>
1920          the buttons.  
1921            * WinPT.cpp (WinMain): Call a selftest check procedure to
1922  2002-05-07      Timo Schulz <[email protected]>          make sure all cryptographic code works as expected.
1923    
1924          * wptGPG.cpp (check_gpg_engine): New.  2004-02-22  Timo Schulz  <[email protected]>
1925    
1926          * wptKeyCacheDlg.cpp (keycache_dlg_proc): Add GPG 1.0.6 compatible          * PTD: Cryptdisk seems to have problems with locking. Use
1927          routines.          a forced flag to tell the code if it should bail out or
1928            ignore locking errors.
1929          * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Ditto.  
1930            * wptCryptdisk.cpp (cryptdisk_umount_dlg_proc): Use new
1931          * wptKeyEditOwnertrustDlg.cpp (keyedit_owerntrust_dlg_proc): Ditto.          locking code.
1932            (cryptdisk_new_dlg_proc): Adjust size of the volume.
1933  2002-05-08      Timo Schulz <[email protected]>  
1934    2004-02-21  Timo Schulz  <[email protected]>
1935          * wptKeyserver.cpp (kserver_change_proxy): Check the values.  
1936          Thanks to njek for reporting it.          * wptCryptdisk.cpp (cryptdisk_cleanup): New.
1937            (is_nt4): Because my Platform-SDK is too old I need to load
1938  2002-05-30  Timo Schulz <[email protected]>          some prototypes dynamically.
1939            (init_drives): Return the first useable drive letter if
1940          * wptFileManager.cpp (fm_verify): Corrected the handling          called with appropriate parameters.
1941          for detached RSA signatures.          * wptMainProc.cpp (winpt_main_proc): Use it here.
1942          (fm_add_sig_stat): Added support for short fingerprints.  
1943    2004-02-18  Timo Schulz  <[email protected]>
1944  2002-05-31      Timo Schulz <[email protected]>  
1945            * Modify the cryptdisk code for crosscrypt 0.4.1.
1946          * wptTrayPop.cpp: Revamped some parts of the code.          * wptCryptDisk.cpp (do_mount): Add key algorithm param.
1947    
1948          Changed all status_box functions to show_msg. The advantage  2004-02-17  Timo Schulz  <[email protected]>
1949          is that we only wait a fixed time and the user doesn't need  
1950          to hit the OK key. We should add  the time delay in the preferences.          * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Also encrypt
1951            to the signers key. Suggested by Alexander.
1952          * wptKeyManager.cpp (km_show_photo): New.          Use new keycache system, we use the public key part of the
1953            cache because it has all flags set.
1954  2002-06-07      Timo Schulz <[email protected]>          * wptGPG.cpp (default_key_from_cache): Use new cache system.
1955            * wptKeySignDlg.cpp (do_fill_seckeylist): Likewise.
1956          * wptMainProc.cpp (winpt_main_proc): Support for sign & encrypt hotkeys.  
1957          * wptKeyManagerDlg.cpp: Refresh keys was added in the menu.  
1958          * wptListView.cpp (listview_select_all): New.  2004-02-12  Timo Schulz  <[email protected]>
1959          * wptClipSignDlg.cpp (clip_sign_dlg_proc): Fixed the return code.  
1960            * wptErrors.cpp: New error codes for the cryptdisk feature.
1961  2002-06-16      Timo Schulz <[email protected]>          * wptCryptdisk.cpp (do_dispatch): Better error handling.
1962            (cryptdisk_mount_dlg_proc): Use it here.
1963          Don't put the questions in the message box title bar.          (cryptdisk_umount_dlg_proc): Likewise.
1964            (init_drives): Use system list.
1965          * wptGPGPrefsDlg.cpp (gpg_prefs_dlg_proc): Only close FP if it  
1966          is really opened. Thanks to Nelson.          Localized all strings.
1967    
1968          * wptKeyProps.cpp (keyprops_dlg_proc): Use a more informative title  2004-02-09  Timo Schulz  <[email protected]>
1969          for chaning the passphrase. Suggested by Ed.  
1970            * wptCryptdisk.cpp (cryptdisk_umount_dlg_proc): New.
1971  2002-08-26  Timo Schulz  <[email protected]>          (do_reaping): New. Release the list if all items are 'expired'.
1972            (cryptdisk_mount_dlg_proc): New.
1973          * wptTypes.h (free_if_alloc, CHECK_BOUND): New.          (init_drives): New.
1974          * wptClipEditDlg.cpp (gpgopt_dlg_proc): Use free_if_alloc to make sure          * wptMainProc.cpp (cryptdisk_proc): Renamed from...
1975          the memory is really released. Some strict checks for return values.          (handle_cryptdisk): this. And filled with life.
1976          Ident file.  
1977    2004-02-08  Timo Schulz  <[email protected]>
1978          * wptAboutDlg.cpp: Ditto. (ident)  
1979          * wptGPGAboutDlg.cpp: Ditto.          * wptCryptdisk.{cpp,h}: New. Support for the extended
1980          * wptClipDecryptDlg.cpp: Ditto.          filedisk application.
1981          (clip_decrypt_dlg): Stricter return value checkings.          * wptMainProc.cpp (winpt_main_proc): Likewise.
1982          Avoid one indent level.          * WinPT.cpp (WinMain): Make sure the new PTD lib is installed.
1983    
1984          * wptImportList.cpp (implist_add_key): More strict return value  2004-02-05  Timo Schulz  <[email protected]>
1985          checking.  
1986          * wptKeylist.cpp (keylist_cmp_cb): Fixed a typo.          * wptRegistry.cpp (set_reg_winpt_prefs): Forget to handle
1987          (add_key): New key status system.          CMD_DISHOTKEYS. Thanks to the user who reminded me.
1988          (keylist_get_keyflags): New.          * wptMainProc.cpp (spawn_cryptdisk): New interface to
1989          (keylist_enum_recipients): Simplified and use the new key flags.          the Cryptdisk application.
1990    
1991          * wptSiglist.cpp (siglist_add_key): Fix possible overflows.  2004-02-04  Timo Schulz  <[email protected]>
1992          (verlist_add_sig_log): More stricter checks.  
1993            * wptRegistry.cpp (get_reg_winpt_prefs): Revamped the core.
1994          * wptRegistry.cpp (get_reg_winpt_prefs): Fixed possible bug.  
1995    2004-02-03  Timo Schulz  <[email protected]>
1996  2002-08-28  Timo Schulz  <[email protected]>  
1997            * WinPT.cpp (check_crypto_engine): New. Factor out common code.
1998          * wptClipboard.cpp (clip_parse_pgp_id): Support for PGP 2.6.x types.          (WinMain): Check the crypto engine after the first start.
1999          * wptFileMananger.cpp (fm_check_armor_type): Ditto.  
2000            * wptRegistry.cpp (set_reg_winpt_prefs): Make sure an error is
2001            issued if the values could not stored. Revamped the core.
2002  2002-08-31  Timo Schulz  <[email protected]>  
2003            * Removed the last appearance of the GPG agent support.
2004          * wptGPG.cpp (gpg_check_homedir): Some fixes for the return codes.  
2005          (check_homedir): Ask the user whether to create the directory.          * wptGPG.cpp (init_gnupg_table): Do not use static buffers.
2006          * wptKeysigDlg.cpp (keysig_dlg_proc): Fixed keyid. Now it works          (free_gnupg_table): Free memory.
2007          to retrieve missing keys from a HKP server.  
2008          (recv_missing_keys): Likewise.          * wptClipImportDlg.cpp (clip_import_dlg_proc): Make sure the
2009          * wptPassphraseCB.cpp (passphrase_callback_proc):          ctx pointer get malloced and set the contents to zero.
2010          Implemented     the "Hide Typing" feature.  
2011          (hide_typing): New.  
2012          * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Improved error messages.  2004-02-02  Timo Schulz  <[email protected]>
2013          * wptClipDecryptDlg.cpp (clip_decrypt_dlg): Improved MDC handling.  
2014          Due to some attacks a MDC error is treated as a fatal error and a          * wptCardDlg.cpp (card_keygen_dlg_proc): Make sure the name
2015          possible security risk.          is long enough. The same check for the mail address.
2016          * wptClipImportDlg.cpp (print_import_status): Use a dialog instead  
2017          of a silly message box. Furthermore the user gets more information          Thanks to Achim.
2018          about the import procedure.  
2019          * wptKeyImportStatusDlg.cpp (import_status_dlg_proc): New.  2004-01-28  Timo Schulz  <[email protected]>
2020          * wptFileManager.cpp (fm_import): Report invalid user ID's.  
2021          (fm_verify): Try to guess the data name for detached signatures          * wptCardDlg.cpp (card_keygen_dlg_proc): A info is issued
2022          before we bother the user. When it's found, use it.          if keys on the card exist but the user does not said overwrite.
2023          * wptKeyManager.cpp (km_file_import): Ditto.  
2024            Make sure the expire date is not in the past.
2025  2002-09-01  Timo Schulz  <[email protected]>  
2026            * wptMainProc.cpp (winpt_main_proc): Avoid to release the file
2027          * wptFirstRunDlg.cpp (get_setup_choice): New. Returns the choice          lock twice. Not sure if this fixes some other problems but it
2028          of the dialog.          was definitely a bug.
2029          * WinPT.cpp (WinMain): Use it here. Reworded the error message.  
2030          * wptGPG.cpp (gpg_import_keyrings): New.          * wptMapi.cpp (mapi_init): Make sure all function ptrs are
2031          Let the user chose the keyrings and then they are copied to the          initialized otherwise bail out.
2032          homedir. After the procedure, the key cache will be reloaded.          (mapi_send_message): New. Interface to allow to send an
2033          * wptKeyManager.cpp (km_delete_keys): New delete confirmation messages.          encrypted mail with zero ore more encrypted attachments.
2034          * wptSigClassDlg.cpp (sig_class_dlg_proc): New.          (secure_attachment): New.
2035          (get_sig_class_choice): New.          (parse_recipients): New.
2036          * wptKeySignDlg.cpp (get_printable_fpr): New. More human readable  
2037          fingerprint.  2004-01-25  Timo Schulz  <[email protected]>
2038          (keysign_dlg_proc): Added new value for the GPG callback to handle  
2039          the signature class.          * WinPT.cpp (WinMain): Silently die when an instance is already
2040          * wptKeyUIDDlg.cpp (find_user_id): New. Find the index of the          running. Do not confuse the user with a message. Suggested by
2041          userID by calling edit-key with colons.          Sebastian.
2042          (keyuid_dlg_proc): Use it here.          * wptKeyManager.cpp (delete_keys_from_cache): New.
2043            (km_delete_keys): Use it here. Thanks to Achim.
2044  2002-09-02  Timo Schulz  <[email protected]>  
2045    2004-01-23  Timo Schulz  <[email protected]>
2046          * wptKeyManager.cpp (km_privkey_export): Check return codes and  
2047          some types has been changed.          * wptCardDlg.cpp (check_pin_len): New. Check if the
2048          (km_file_export): Likewise.          PIN is long enough and give an appropriate error.
2049            (card_changepin_dlg_proc): Use the new check function.
2050  2002-09-03  Timo Schulz  <[email protected]>  
2051    2004-01-22  Timo Schulz  <[email protected]>
2052          Removed all OpenCDK code from PTD. The code is not tested very  
2053          well and it might contain some errors. Now we used a stripped down          * Remove all internal card reader config. It's up to the
2054          version of GnuPG code. This has two advantages. First the code is          user to do this. It would be too error proune to offer it.
2055          stable and second we can easier port other parts to native GPG code.          * wptCard.h: Removed all card driver stuff.
2056            * wptPinDLG.cpp (pin_cb_dlg): Use better names to differ
2057          * wptFileManager.cpp (fm_get_file_type): Use native GPG code.          between the admin and the user (normal) PIN.
2058          * wptKeyCacheDlg.cpp (keycache_dlg_proc): Add photos from the  
2059          keyring when present to the keycache.  2004-01-04  Timo Schulz  <[email protected]>
2060          * wptKeyManager.cpp (km_show_photo): Fixes to work again with the  
2061          modified code.          * wptImageList.{cpp,h}: New. Contributed by Andreas Jobs.
2062          (km_check_for_seckey): Check substrings of the value because we          * wptKeylist.cpp (keylist_cmp_cb): More patches from Andreas
2063          don't use '**' values any longer.          and minor changes.
2064          * wptFileStat.cpp (do_list_packets): New. Adapted from the old code.          * wptListView.cpp (listview_sort_items): Likewise.
2065          (file_stat_dlg_proc): Uses the new code.          * wptKeyManager.cpp (key_manager_dlg_proc): Likewise.
2066            (regist_sep_wnd): Factored out some code.
2067  2002-09-04  Timo Schulz  <[email protected]>  
2068    2004-01-03  Timo Schulz  <[email protected]>
2069          * wptKeyManager.cpp (km_check_key_status): Parse new fields.  
2070            * wptClipImportDlg.cpp (clip_import_dlg_proc): automatically allow
2071  2002-09-07  Timo Schulz  <[email protected]>          to import secret keys.
2072    
2073          * wptClipVerifyDlg.cpp (clip_verify_dlg_proc):  2003-12-31  Timo Schulz  <[email protected]>
2074          Print notation data when available.  
2075          Show if the signature is expired or not.          * wptKeyEditDlgs.cpp (keyedit_addsubkey_dlg_proc): Do not sort
2076            the list otherwise the index is wrong.
2077          * wptKeyManagerDlg.cpp (keymisc_dlg_proc): Added the show photo          * wptKeySignDlg.cpp (keysign_dlg_proc): Add the ability to set
2078          command to the context menu.          a signature expire date.
2079    
2080          * wptKeygenDlg.cpp (keygen_dlg_proc): New default keysize is 1792.  2003-12-30  Timo Schulz  <[email protected]>
2081          This is 256 bits more than the old size. Hopefully it's enough  
2082          security to protect against the most enemies ;-).          * fixed the GPG edit-key commands sign and addrevoker.
2083    
2084  2002-09-08  Timo Schulz  <[email protected]>  2003-12-23  Timo Schulz  <[email protected]>
2085    
2086          * wptKeygenDlg.cpp (ask_for_backup): Check if the copy process          * wptKeyEditAddKEyDlg.cpp (keyedit_addsubkey_dlg_proc): Remove
2087          really succeeded.          ElGamal s+e support. Oops, this should be already done.
2088          (mbox): Alias for msg_box with fixed title to avoid long lines.          * wptGPGME.cpp (keycache_init): Sync both key caches. In other
2089          * wptKeyEditAddSubkeyDlg.cpp (keyedit_addsubkey_dlg_proc): Allow          words transfer some flags from the sec-cache to the pub-cache.
2090          to generate keys with a length til 4096 bits.          * wptKeySignDlg.cpp (key_sign_dlg_proc): A workaround for the
2091          * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): Check for          key sign procedure. If it is already signed, the process
2092          invalid recipients and print out the reasons.          sometimes hangs.
2093          * wptKeylist.cpp (keylist_add_to_recipients): Improved error message  
2094          and corrected the validity checking.  2003-12-14  Timo Schulz  <[email protected]>
2095    
2096  2002-09-09  Timo Schulz  <[email protected]>          * wptKeyeditSetPrefDlg.cpp (get_userid_preflist): New.
2097            * wptKeyEditDlgs.cpp (keyedit_main_dlg_proc): Support for updpref.
2098          * wptKeyManagerDlg.cpp (keymisc_dlg_proc): Improved code for          (do_editkey_setpref): Implement updpref command.
2099          the privat key (export).  
2100    
2101  2002-09-10  Timo Schulz  <[email protected]>  2003-12-10  Timo Schulz  <[email protected]>
2102    
2103          * wptFileManager.cpp (fm_get_file_type): Disable FD cache.          * GPGME support to change key preferences.
2104          (fm_decrypt): Only cut off the extension if it belong to GPG.          * wptKeyeditSetPrefDlg.cpp (keyedit_setpref_dlg_proc): New.
2105          Added user ID to the box if the file was signed.          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Use the new feature here.
2106          Ask for the filename if the name has no valid GPG extension.  
2107    
2108  2002-09-12  Timo Schulz  <[email protected]>  2003-11-29  Timo Schulz  <[email protected]>
2109    
2110          * wptPasswdDlg.cpp (passwd_dlg_proc): Implement the "Hide Typing" fature.          * wptMAPI.cpp (mapi_init): New.
2111          * wptKeyManagerDlg.cpp (keymisc_dlg_proc): Off by one bug for secret          (mapi_deinit): New.
2112          key export.          (mapi_send_pubkey): New.
2113          * wptKeyManager.cpp (fm_encrypt): Use the new GPG status messages to          * wptKeyManager.cpp (km_send_to_mail_recipient): New.
2114          check if the encryption failed.          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Support
2115          (km_show_photo): Fixed offset calculation.          to send the public key via MAPI to a recipient.
2116          Use keyid as filename and delete the tempfile after use.          * wptKeySignDlg.cpp (do_fill_seckeylist): Make sure we rewind
2117          * wptFile.cpp (init_file_lock): Use dynamic buffer.          the secret key cache so it's not at the end.
2118          (release_file_lock): Free this buffer.          (keysign_dlg_proc): Issue a warning when no secret key was
2119          * wptFileManager.cpp (quote_filename): Removed.          found which could be used for signing the key.
2120          (quote_file): New. Use dynamic buffers.          * wptKeylist.cpp (do_addkey): Never add an Elgamal sign+encrypt key.
2121          (fm_import, fm_decrypt, fm_encrypt, fm_sym_encrypt, fm_export):          * wptKeySignDlg.cpp (do_fill_seckeylist): Likewise.
2122          Use it here.  
2123          * wptFileStatDlg.cpp (do_list_packets): Do not cache FD.  2003-11-28  Timo Schulz  <[email protected]>
2124          Initalize packet at the begin and during the loop.  
2125          * wptFileManager.cpp: Replaced all static memory handling with          * Remove all support for ElGamal sign+encrypt keys.
2126          dynamic routines.  
2127          * wptKeyCacheDlg.cpp (key_cache_dlg): Remove obsolete ownertrust          There is a flaw in GPG which makes all such keys useable and
2128          functions.          they are comprised even if one signature they made is accessable.
2129          * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Ditto.                  And due to the fact the key is self signed, such a sig is always
2130            available for the public.
2131  2002-09-13  Timo Schulz  <[email protected]>  
2132            We warn the user at startup if such keys were found!
2133          * wptKeyManager.cpp (km_show_photo): Use a const buffer for the  
2134          image and do NOT free it.          * wptMainProc.cpp (elgamal_warn_dlg_proc): New.
2135          * wptKeyUidDlg.cpp (keyuid_dlg_proc): Implement "revoke" function.          * wptGPGME.cpp (count_insecure_elgkeys): New.
2136          (find_user_id): Use keyid to find the key. Changed all callers.          * WinPT (WinMain): Use it here.
2137    
2138          * Removed global gpg_version variable. Now we also support GPG 1.1.9x  2003-11-14  Timo Schulz  <[email protected]>
2139          so we don't need to check this after the start again.  
2140            * wptCardDlg.cpp (card_edit_dlg_proc): Release the second PIN.
2141  2002-09-17  Timo Schulz  <[email protected]>  
2142    2003-11-13  Timo Schulz  <[email protected]>
2143          * winpt.cpp (WinMain): Use make_filename and no static buffer.  
2144          Modified for the new gnupg interface.          * Clarify pin names. Now all PIN's are labeled 'Admin' or 'User'.
2145          * wptFile.cpp (make_filename): New.          * wptPINDlg.cpp (pin_cb_dlg_proc): Length check for the PINs.
2146          * wptGpgCmds.h: New from GPG 1.1.92          Thanks to Achim.
2147          * wptGPG.cpp (gnupg_import_keyrings): Use dynamic buffers          * Change PIN interface. Now it is easier when an operation requires
2148          and make_filename.          both PINs.
2149          * wptKeygenDlg.cpp (ask_for_backup): Use new gpg code and          * wptCardDlg.cpp (do_proc_card_cmds): Now GPG requires both PINs
2150          make_filename instead of static buffers.          to change card attributes. Do not ask me why, but now the user
2151          * wptKeyCacheDlg.cpp (keycache_dlg_proc): Likewise.          needs to enter 2 PINs.
2152          * wptParser.cpp: Changed to new allocation instead of malloc.  
2153          * wptGPGOptSkel.h: Updated from GPG 1.1.92          Name parts were swapped, now they have the right order again.
2154          * wptRegistry.cpp (get_reg_entry): Expand %s like registry strings.  
2155    2003-10-02  Timo Schulz  <[email protected]>
2156  2002-09-23  Timo Schulz  <[email protected]>  
2157            * Prepare test release.
2158          * wptParser.cpp (add_multi_option): Support for values with more ' 's          * wptGPGCmds.h: New from GPG 1.3.4-cvs.
2159          and skip the ' ' after the name.  
2160          (modify_entry): New.  2003-10-29  Timo Schulz  <[email protected]>
2161          * wptGPG.cpp (gnupg_save_options): Removed.  
2162          (gnupg_load_options): Removed.          * wptKeyEditDlgs.cpp: New logging scheme. Changed all callers.
2163          (gnupg_release_options): Removed.  
2164          * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Use the new code.          * Create a new interface for an interactive card callback. GPG
2165            provides card control status messages if the wrong card is inserted.
2166  2002-09-25  Timo Schulz  <[email protected]>  
2167            * wptCardManager.cpp (card_cb_dlg_proc): New.
2168          * wptClipboard.cpp (clip_parse_pgp_id): Add a flag when the text          (card_callback): New.
2169          is dash escaped. This is useful for keys to avoid errors.  
2170          * wptKeyManager.cpp (extract_dash_escaped_key): New. Extract an          * wptCardPCSC.cpp (pcsc_loadlib): Use some 'A' to declare we use
2171          OpenPGP key from the clipboard which is dash escaped.          the ASCII functions and not the Unicode function names. Thanks to
2172          (km_clip_import): Use the new code here.          Werner for pointing this out.
2173    
2174  2002-10-10  Timo Schulz  <[email protected]>          * wptPassphraseCB.cpp (passphrase_cb): Better card interface. Now the
2175            serial card number is shown to help the user to find the right card.
2176          * wptW32API.cpp (get_filename_dlg): Added default filename parameter.  
2177          Changed all callers.          * wptClipSignDlg.cpp (clip_sign_dlg_proc): New logging scheme.
2178          * wptKeyManagerDlg.cpp (keymisc_dlg_proc): Adjusted the code for the  
2179          new get_filename_dlg.  2003-10-26  Timo Schulz  <[email protected]>
2180          * wptFileManager.cpp (fm_export): Likewise.  
2181          * wptClipDecryptDlg (clip_decrypt_dlg): Modified the verify message box.          * wptClipDecryptDlg.cpp (clip_decrypt_dlg): Implement new logging.
2182          * wptKeySignDlg.cpp (keysign_dlg_proc): Changed the code for edit-key.  
2183          Use signature class dialog.          * Changed the code at several other places to support the new logging
2184          * wptKeyRevokeDlg.cpp (key_revoke_dlg_proc): Use the new code and the          scheme.
2185          keyid instead of the userid to avoid charset problems.  
2186          (err_message): New.  
2187    2003-10-24  Timo Schulz  <[email protected]>
2188          * Moved all wipe specific code (random, rmd160) to the DLL so we can  
2189          save some memory for the tray section.          * Implemented a better logging system. If the return code
2190            of GPG is != 0 and the error is not known, display the errors
2191          * wptKeyRevokersDlg.cpp (revokelist_build): New.          from stderr.
2192          (revokelist_init): New.  
2193          (key_revokers_dlg_proc): New.          * wptGPGME.cpp (logging_cb): New.
2194    
2195          * wptKeyPropsDlg.cpp (key_props_dlg_proc): Use the designated revoker  2003-10-23  Timo Schulz  <[email protected]>
2196          code here when available.  
2197            * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): Show GPG output
2198  2002-10-13  Timo Schulz  <[email protected]>          if the error is unknown.
2199            (clip_sign_dlg_proc): Likewise.
2200          * wptKeylist.cpp (get_key_expire_date): New.          (clip_signenc_dlg_proc): Likewise.
2201          * wptKeyPropsDlg.cpp (key_props_dlg_proc): Use it here.          (clip_import_dlg_proc): Likewise.
2202    
2203          * Removed global keycache from GPGME. It's a bad style to mix  2003-10-21  Timo Schulz  <[email protected]>
2204          general and specific interfaces.  
2205            * wptClipDecryptDlg.cpp (list_recipients): New.
2206          * wptGPGME.cpp (get_pubkey): New. Used to hide keycache implementation          (algo_from_list): New.
2207          details. Useful to replace it later.          (clip_decrypt_dlg): New concept to list all recipients.
2208          (get_seckey): Ditto.          * wptFileManager.cpp (fm_list_keys): New.
2209          (keycache_reload): Moved from the GPGME library.          (fm_decrypt): Same changes as for the clipboard decryption.
2210          (keycache_release): New.  
2211          (keycache_init): New.  2003-10-21  Timo Schulz  <[email protected]>
2212          (keycache_set_reload): New.  
2213          (keycache_get_reload): New.          * wptClipDecryptDlg.cpp (clip_decrypt_dlg): If the passphrase
2214          (keycache_get_ctx): New.          was wrong, delete the cache item (if available).
2215            * wptClipSignDlg.cpp (clip_sign_dlg): Likewise.
2216          * wptSigList.cpp (siglist_add_key): Use the new code.          * wptClipSignEncDlg.cpp (clip_signenc_dlg): Likewise.
2217          (siglist_build): Ditto.          * wptPassphraseCB.cpp (set_gpg_passphrase_cb): Set 'is_card'
2218            flag to zero.
2219            
2220  2002-10-15  Timo Schulz  <[email protected]>  
2221    2003-10-19  Timo Schulz  <[email protected]>
2222          * Changed all s(n)printf -> msg_box constructs to log_box.  
2223            * wptPINDlg.cpp (pin_cb_dlg_proc): Support to store the admin and
2224  2002-10-30  Timo Schulz  <[email protected]>          the working PIN.
2225            wptCardDlg.cpp (free_pincb): New.
2226          * wptLDAP.cpp, wptLDAP.h: Removed. The plan is to use the gpgkey_xxx.exe          (card_keygen_dlg_proc): Pin callback implemented.
2227          LDAP plugin for this purpose.          Simple check for the e-mail address.
2228          * wptMainproc.cpp (winpt_main_proc): Removed all LDAP stubs.          (card_edit_dlg_proc): End the dialog if no changes were made.
2229          * wldap32.lib is now not longer needed.  
2230          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Copy userid to clipboard.          * Expanded GPGME passphrase interface to work both with PINs
2231          * Updated the resource file.          and passphrases.
2232          * wptFileManager.cpp (fm_parse_command_line): Implemented the stuff  
2233          for 'Decrypt', 'Verify', 'Import'.  2003-10-18  Timo Schulz  <[email protected]>
2234    
2235  2002-10-31  Timo Schulz  <[email protected]>          * wptCardDlg.cpp (card_keygen_dlg_proc): New.
2236            (do_askpin): Handle the case there is no card.
2237          * wptKeyManager.cpp (km_update_default_key_str): Fixed '0x' handling.          (card_edit_dlg_proc): Add 'New Keys' feature.
2238          Thanks to Gustavo.          (card_changepin_dlg_proc): Implemented.
2239          * wptKeylist.cpp (add_key): Now we only use find_secret_key to detect          * WinPT.cpp (WinMain): Ability to start the card manager directly.
2240          whether it's a key pair or not.          * wptMainProc.cpp (smartcard_init): Global stuff to init the reader
2241          * Callback struct into KEY so we can modify the values in the background.          driver and the inserted card.
2242          * wptKeyPropsDlg.cpp (change_ownertrust): New.  
2243    2003-10-17  Timo Schulz  <[email protected]>
2244  2002-10-13  Timo Schulz  <[email protected]>  
2245            * wptGPGME.cpp (keycache_init): Do not use secring the first time.
2246          * wptKeyManager.cpp (km_file_import): Alloc buffer, it's not static          * wptKeySignDlg.cpp (keysign_dlg_proc): Make sure only the short
2247          any longer.          keyid will be displayed.        
2248    
2249  2002-10-14  Timo Schulz  <[email protected]>  2003-10-16  Timo Schulz  <[email protected]>
2250    
2251          * wptKeyserver.c: Replaced all strdup's with m_strdup and free          * Changed GPGME interface for edit card. Now one context is
2252          with free_if_alloc.          used for all edit card operations.
2253          (ldap_recvkey): Fill with life. We use the GPG plugin to avoid          * wptCardDlg.cpp (card_edit_dlg_proc): Support for working
2254          all the LDAP overhead.          and admin PIN. Changed gpgme interface.
2255            (ask_pin): Renamed to..
2256  2002-12-14  Timo Schulz  <[email protected]>          (do_askpin): this. Provide more information about the card
2257            and its holder.
2258          * wptKeyManager.cpp (km_check_for_seckey): Ultimate doesn't mean          (do_proc_card_cmds): If no error, reset modify flags for
2259          any longer there is also a secret key.          all controls. Show a short message that the operation ended.
2260          (km_check_photo): New.          * wptCardPCSC.c (pcsc_free_readers): New.
2261          (km_complete_status_bar): New.          (pcsc_scan_readers): New.
2262          * wptFileManager.cpp (fm_verify): Support for bad signatures.          (pcsc_get_reader): New.
2263          Set the sigmode if not set.          (pcsc_get_card_status): New.
2264          * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Output a warning when  
2265          the ownertrust of a non-valid (not signed) key is changed.  
2266          * wptRegistry.cpp (expand_path): New. Use this code because it's  2003-10-14  Timo Schulz  <[email protected]>
2267          much shorter.  
2268            * wptKeyList.cpp (do_addkey): Add the case the secret key
2269  2002-12-18  Timo Schulz  <[email protected]>          is stored on a smart card.
2270            (km_check_for_seckey): Take care of the new code.
2271          * wptGPG.cpp (get_gnupg_optfile): Support for gpg.conf instead          * wptKeyManager.cpp (km_delete_keys): Extra warning when
2272          of the old name "options".          the secret key is stored on a card.
2273          * WinPT.cpp (WinMain): Try to repair broken home directories          * wptKeyEditDlgs.cpp (subkey_list_init): Add the key cabilities
2274          in the registry. Thanks to Gustavo who reminded me of it.          to the list view. Now the user can see if the key is useable
2275          * wptKeyserver.cpp (check_hkp_response): Only copy the text          for: signing, certifying or encrypting.
2276          between <p> and </p> when possible.  
2277          * wptAgent.cpp: Re-activated the old code. Now the passphrase  2003-10-13  Timo Schulz  <[email protected]>
2278          timer can be used.  
2279            * Extended the GPGME API that it is possible to retrieve
2280  2002-12-21  Timo Schulz  <[email protected]>          the key data. This is for the planned card login but it
2281            might be also useful for other purposes.
2282          * Fixed some language mistakes.  
2283          * wptMainproc.cpp: Use the desktop window as the parent window          * wptCardPCSC.c: New. General code for PC/SC card readers.
2284          for the main dialogs so they are visible in the taskbar.  
2285          * wptKeyManagerDlg.cpp: Enable minimize.  
2286          * wptFileManager.cpp (fm_parse_command_line): Support for detached  2003-10-12  Timo Schulz  <[email protected]>
2287          signatures.  
2288          (fm_encrypt_directory): New.          * wptCardDlg.cpp (guess_libname): New.
2289          * wptKeylist.cpp (keylist_add_key): Check the current key if it          (card_status): Simplified the code with an attribute
2290          is not expired, not the primary (idx=0).          table. Now it is a loop and not hard coded.
2291            * The card interface has changed. Now the surname and
2292  2002-12-23  Timo Schulz  <[email protected]>          the given name are two fields and not one field.
2293            * wptMainProc.cpp (winpt_main_proc): Check if the card
2294          * wptRegistry.cpp (regist_inst_winpt): Try to create \Keyserver          reader is configured where appropriate.
2295          directory if does not exist.  
2296          * wptKeyserver.cpp: Simpliefied config file.  2003-10-09  Timo Schulz  <[email protected]>
2297          (kserver_change_proxy): Write config to the registry. Remove  
2298          code for the config file.          * wptCardDlg.cpp (get_card_status): New.
2299          * wptProxySettingsDlg.cpp (read_proxy): More robust code.          (show_card_status): New. Retrieve the card status and show an
2300          * wptKeyserverDlg.cpp (keyserver_dlg_proc): Removed the feature          error if approprioate.
2301          to send keys. The Key Manager is better for this.          * Make sure that WinPT does not try to use non-OpenPGP cards.
2302            * Add GPGME support for the forthcoming AUTH flag for keys.
2303            * Implemented the detection of keys where the secret key components
2304  2003-01-07  Timo Schulz  <[email protected]>          are stored on a smart card.
2305    
2306          * wptKeyManagerDlg.cpp (do_center_window): New. Try to set the window  
2307          pos from the coordinates from the registry.  2003-10-08  Timo Schulz  <[email protected]>
2308          (keymanager_dlg_proc): Store the window pos in the registry.  
2309          * wptKeyRevokeDlg.cpp (key_revoke_dlg): Check box for PGP compatible certs.          * wptCardDlg.cpp (do_proc_card_cmds): Check that only US-ASCII
2310          * wptKeyImportStatusDlg.cpp (import_status_dlg_proc): Print out a hint when          is used. Otherwise reject the value.
2311          a revcert was found.          (ask_pin): New. Enable PIN caching for the 'dialog session' so
2312          * wptKeyserverDlg.cpp (hkp_recv_key): Print an error if the LDAP import does          the user does not need to re-enter it again and again.
2313          not succeed.  
2314          (keyserver_dlg_proc): Corrected some listview index values.  2003-10-07  Timo Schulz  <[email protected]>
2315          * wptKeylist.cpp (keylist_add_key): Use primary user-id when possible.  
2316            * wptPINDlg.cpp (pin_cb_dlg_proc): New.
2317  2003-01-08  Timo Schulz   <[email protected]>          * wptCardDlg.cpp (do_proc_card_cmds): New.
2318            (card_edit_dlg_proc): Use it here.
2319          * wptKeyEditAddUidDlg.cpp (keyedit_adduid_dlg_proc): Output a warning  
2320          if the user tries to add the email address in the name field.  2003-10-06  Timo Schulz  <[email protected]>
2321          * wptKeyserver.cpp: Add support for protocols.  
2322          (finger_readline): New.          * wptFileManager.cpp (fm_encrypt): Wipe files in both modes.
2323          (finger_recvkey): New.          * wptGPG.cpp (gnupg_display_error): Display general error
2324          * wptKeyUidDlg.cpp (keyuid_dlg_proc): Add a warning icon to the revoke          when the file does not exit.
2325          message box to show it's a serious decision.          * wptW32API.cpp (get_folder_dlg): New.
2326          * wptPasswdDlg.cpp (passwd_dlg_proc): Center dialog window.          * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Ability to select
2327          * wptRegistry.cpp (regist_single_filetype): Now internal and we use          the folder for the home directory.
2328          an easier way to get the location of the binary.          * wptKeyManager.cpp (km_update_default_key_str): Return length
2329          (regist_inst_winpt): Implemented the 'with_ext' part and add a registry          of the string.
2330          entry to avoid double file registering.          (km_complete_status_bar): Use the offset of the default
2331            key string so it is not appened twice.
2332  2003-01-19  Timo Schulz  <[email protected]>          * wptRegistry.cpp (regist_inst_winpt): Create 'Card' subkey.
2333            * wptCard.h: New.
2334          * winpt.cpp (WinMain): Fixed spelling mistake. Closes #669321.          * wptCardDlg.cpp (new_card_driver): New.
2335          * wptKeyManagerDlg.cpp (do_resize_window): New.          (load_card_driver): New.
2336          (do_create_minpopup): New. Closes #669730.          (free_card_driver): New.
2337          * wptVerifyList.cpp (get_sig_date): Renamed to...          (card_config_dlg_proc): If the reader is configured, load the
2338          (longdate_to_strdate): New. Changed all callers.          values. This is needful to change the driver later.
2339          * wptClipDecryptDlg.cpp (clip_decrypt_dlg): If the ciphertext contains          (gpg_load_scard): Use driver as a parameter.
2340          a signature, also display the time of it. Closes #669780.          * wptMainProc.cpp (winpt_main_proc): Load card driver and
2341          * wptKeyImportStatusDlg.cpp (import_status_dlg_proc): Localize 2 strings.          unload it after use.
2342          * wptEditKeyOwnertrust.cpp (keyedit_ownertrust_dlg_proc): Fixed a typo.  
2343          * wptKeySignDlg.cpp (do_add_local_user): New. Now the dialog has the ability  2003-09-28  Timo Schulz  <[email protected]>
2344          to choose the signer.  
2345          (keysign_dlg_proc): Implemented a feature request. See above.          * wptCardDlg.cpp (card_edit_dlg_proc): New.
2346            (gpg_load_scard): New. Try to use GPG load the card info.
2347  2002-01-21  Timo Schulz  <[email protected]>          (print_fpr): New. Print beautified fingerprint.
2348            (card_status): New. Set all dialog fields with the values from
2349          * wptSymEnc.cpp (gpgme_encrypt_symmetric): Ask the passphrase twice to          the card.
2350          avoid typing mistakes.          (prepare_dialog): New. Load combo boxes with pre-defined strings.
2351    
2352  2002-01-25  Timo Schulz  <[email protected]>  
2353    2003-09-25  Timo Schulz  <[email protected]>
2354          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Support to copy the key id  
2355          and the fingerprint to the clipboard. Closes #674455.          * wptProgressDlg.cpp (progress_cb_thread): New.
2356          Automatically reload the keycache when a command is chosen and the cache          (progress_callback): Use asynchron code.
2357          state is set to 'reload requested'. Closes #671218.          * wptFileManager.cpp (fm_parse_files): Implement progress callback.
2358          * wptKeySignDlg.cpp (do_fill_seckeylist): Make sure the public key parts  
2359          are not invalid.  
2360          * WinPT.cpp (check_permissions): Make sure we have the permission to  2003-09-25  Timo Schulz  <[email protected]>
2361          write the keyring. Stop if not because it's expected at many other places.  
2362          * wptSigList.cpp (siglist_add_key): Indent signatures under the root entry.          * wptClipSignEncDlg.cpp (seclist_dlg_proc): The dialog was broken.
2363          (siglist_build): Use a placeholder sig to avoid the position chaos.          (check_key): New.
2364          * wptKeyUidDlg.cpp: Unified text for 'user-ID'.          Removed the old Secret Key List dialog. Now the key can be directly
2365          * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): If a key is not found,          chose in the dialog.
2366          display more information and use a GPG like output.          (seclist_init): New.
2367          * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Force trust if there is          (seclist_destroy): New.
2368          an invalid key in the list of recipients. Closes #674965.          (seclist_select_key): New.
2369            * wptFileManager.cpp (fm_sign): Ask for output file if needed.
2370    
2371  2002-02-01  Timo Schulz  <[email protected]>          * Client side implementation of the --enable-progress-filter feature.
2372    
2373          * wptKeyserver.cpp (kserver_search): Fix <KEYID bug.          * wptProgressDlg.cpp: Server side implementation.
2374            (progress_dlg_proc): New. The actual dialog procedure.
2375  2002-02-08  Timo Schulz  <[email protected]>          (progress_callback): The GPGME wrapper callback.
2376    
2377          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Only export  2003-09-24  Timo Schulz  <[email protected]>
2378          the secret key when a file was chosen.  
2379            * wptKeygenDlg.cpp (keygen_dlg_proc): Implement 'Hide Typing' feature.
2380  2002-03-01  Timo Schulz  <[email protected]>          * wptFileManager.cpp (fm_encrypt): Ask for output file if needed.
2381            * wptFileManagerDlg.cpp (fm_dlg_proc): Removed im- and export from
2382          * wptFileManager.cpp (fm_check_file_type): Fix bug in the detection          the menu. We use import internally, but export was not useful and
2383          logic. Now we can decrypt symmetrically encrypted files again.          thus the code were removed.
2384          Be stricter on memory alloaction checks.          * wptPreferenceDlg.cpp (prefs_dlg_proc): Disable some controle at
2385          (fm_get_file_type): Be more strict with the return code of          startup when they are not allowed.
2386          parse_packet. This avoids bogus file types for MS-Word files and          * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Removed PGP2 option.
2387          other non-PGP data.          Make the parsing code much shorter (read).
2388          (fm_wipe): Use the wipe mode from the registry and not a fixed value.  
2389          * WptRegistry.cpp (set_reg_winpt_prefs): Support wipe mode.  
2390          (get_reg_winpt_prefs): Likewise.  2003-09-22  Timo Schulz  <[email protected]>
2391          * wptFilePrefsDlg.cpp: Removed. We don't use it any longer.  
2392          * wptDlgs.h: Corrected all dialog protypes to BOOL.          * wptSigList.cpp (extract_filename): Make sure there is a '\',
2393          LRESULT was not correct.          otherwise just dup the string and return.
2394            * wptVerifyList.cpp (verlist_add_sig): Use a variable for the key
2395  2002-03-08  Timo Schulz  <[email protected]>          to make the code more readable.
2396            * Implemented the GPGME part of the new smartcard interface.
2397          * wptFileManager.cpp (fm_parse_command_line): Ignore lines with '--'          The WinPT interface will be open until the scard stuff is back
2398          because they are options rather than files.          ported to GPG 1.3.x.
2399          * WinPT.cpp (WinMain): Allow to start the key manager directly          * wptKeyEditDlgs.cpp (do_editkey_revuid): Need a secret key to do it.
2400          via --keymanager.          Several code cleanups.
2401          * wptFileManagerDlg.cpp (file_secdel_confirm_dlg_proc): New.  
2402          (wipe_cb): New. Wipe callback function.  2003-09-08  Timo Schulz  <[email protected]>
2403          (fill_drive_combobox): New. Fill in all logical drives into  
2404          the given combo box.          * wptRegistry.cpp: Remove some hotkeys to correct index calculation.
2405          (wipe_thread): New. Worker thread.          (get_reg_winpt_flag): Check buffer first.
2406          (update_disc_stats): New. Set the disc statistics for the          (get_reg_winpt_prefs): Support for the new backup system.
2407          given drive entry.          (set_reg_winpt_prefs): Likewise.
2408          (space_wipefrees_dlg_proc): New.          * wptHotkey.h: Removed import and export hotkey. Re-ordered elements.
2409            * wptRegistry.h: Cleaned up the hotkey interface.
2410  2002-03-09  Timo Schulz  <[email protected]>          * wptPreferenceDlg.cpp (enable_backup_items): New.
2411            (prefs_dlg_proc): Simplified hotkey handling. Use new code.
2412          * 64-bit support for wipe operations.          * wptMainProc.cpp (clip_gpg_dlg): Remove hotkey handling for
2413            im- and export. Use the code directly.
2414  2002-03-16  Timo Schulz  <[email protected]>          (currwnd_gpg_dlg): Likewise.
2415            * wptGPG.cpp (gnupg_backup_keyrings): New.
2416          * wptKeyRevokeDlg.cpp (key_revoke_dlg_proc): Encode the          (backup_one_file): New.
2417          optional text in UTF-8 to avoid charset problems.  
2418          * wptKeyManager.cpp (km_quote_uid): Use dynamic memory instead  2003-09-04  Timo Schulz  <[email protected]>
2419          of a static buffer. Changed all callers.  
2420          * wptKeylist.cpp (keylist_cmp_cb): Implemented sort functions          * wptFileManager.cpp (fm_get_file_type): Due to an unknown reason,
2421          for the rest of the columns.          the packet parsing return value check was wrong again. Now it does
2422          (keylist_handle_column_click): New.          not recognize Word documents as SECKEY or ENCRYPTED any longer.
2423          * wptKeyEditOwnertrustdlg.cpp (keyedit_ownertrust_dlg_proc):  
2424          Removed the 'Advanced' button because it only confuses users  2003-09-03  Timo Schulz  <[email protected]>
2425          and it is not often used.  
2426          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Support to ex-          * The secret key listing does not contain any 'validity' or
2427          and import the trustdb values (ownertrust).          'status' flags any longer. Thus we only can use the cache to
2428          * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): Ability to          make sure we have a secret key. All attributes need to be retrieved
2429          sort columns.          from the public key listing.
2430    
2431  2003-03-18  Timo Schulz  <[email protected]>          * wptGPG.cpp (default_key_from_cache): New.
2432            (get_gnupg_default_key): Use new function to make sure we try
2433          * wptKeyImportStatDlg.cpp (import_status_dlg_proc): Fix index          to get the key from cache if there is a problem with the config
2434          of revocation from 9 to 8.          file.
2435          Set the text that no key was updated only if no new sig, subkey,  
2436          userid and no public were added.  2003-08-30  Timo Schulz  <[email protected]>
2437          Add more information: new {subkeys, signatures, userid}.  
2438          * wptKeyManager.cpp (km_delete_keys): Fixme lame, '=' instead of '==' bug.          * wptGPG.h: Support for the GPG status messages REVKEYSIG and
2439          * wptDlgs.cpp: Removed.          EXPKEYSIG. With this new feature, GPG 1.2.3 is required.
2440          * wptDlgs.h: (dlg_fatal_error): New. Macro.          * Make sure that the signature status does not cause an
2441            segfault.
2442  2003-03-19  Timo Schulz  <[email protected]>          * WinPT.cpp: Use new check to detect the GPG version and make sure
2443            it is the minimum.
2444          * wptMainProc.cpp (winpt_main_proc): Put the init_dtp code here.          * wptGPG.cpp (parse_version_nr): New.
2445          * wptPassphraseCB.cpp (hide_typing): Removed. Use short code directly          (check_gnupg_engine): Improved. Now it returns the actual version.
2446          in the code.  
2447          * wptPasswdDlg.cpp: Likewise.  2003-08-24  Timo Schulz <[email protected]>
2448          (passphrase_cb_init): Declare as static.  
2449          (passphrase_cb_gpgme): Modified to use the static function and rename          * wptPreferencesDlg.cpp (prefs_dlg_proc): Use better code to disable
2450          it to...          dialog controls.
2451          (passphrase_gpgme_set_cb): ..this. New.  
2452          * wptSecListDlg.cpp: Complete new appraoch. Now we use CB_SETITEMDATA  2003-08-17  Timo Schulz  <[email protected]>
2453          and friends to assign data to each item.  
2454          Move dialog code to...          * wptKeyManagerDlg.cpp (keymanager_dlg_proc):
2455          * wptClipSignEncDlg.cpp: ..here.          #ID_KEYMISC_EXPORT_PRIVKEY: Retrieve the current list view index. The
2456          * MyGPGME/keycache.c: We first look for directly key signatures and          value was malformed.
2457          then we skip all other signatures if we've already seen the key. This          * wptClipEditDlg.cpp (clip_edit_dlg_proc): Free global memory.
2458          is needed to gather the designated revoker keys.          * wptKeyserver.cpp (kserver_load_conf): If the file does not exist,
2459            don't bother the user with an error message. Closes #782751.
2460  2003-03-20  Timo Schulz  <[email protected]>          * wptKeyEditDlgs.cpp (do_editkey_primary): New. Implement the
2461            "primary" edit key command.
2462          * wptFindWnd.cpp: Removed.          * wptKeyserverDlg.cpp (hkp_recv_key): New flag parameter. Now it is
2463          * wptW32API.c (dialog_box_param): Use FindWindowEx() instead of          possible to supress the status message. This is useful when the whole
2464          find_window.          keyring will be refreshed.
2465          * Whenever it's possible, use case insentensive searches to avoid          * wptFileManager.cpp (fm_parse_command_line): Unquote file if needed.
2466          problems.          (quote_file): Avoid double quotes.
2467            * GPGME support for quoted file names.
2468  2003-04-09  Timo Schulz  <[email protected]>          (fm_sym_encrypt): Double check password and to additional 8-bit checks.
2469            * WinPT.cpp (my_acces): Moved to this file..
2470          * wptFirstRunDlg.cpp (first_run_dlg_proc): Mark selection as          * wptGPG.cpp: ..here.
2471          invalid for cancel.          (gpg_check_permissions): Renamed from check_permissions and make it global.
2472            * wptKeyManagerDlg.cpp (key_manager_dlg_proc): Check to make sure we
2473  2003-04-12  Timo Schulz  <[email protected]>          have write access to the keyring for some commands.
2474    
2475          * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Use the new  2003-07-22  Timo Schulz  <[email protected]>
2476          GPGME code.  
2477          * wptVerifyList.cpp (verlist_add_sig_log): Likewise.          * wptClipEditDlg.cpp (clip_edit_dlg_proc): Figure out the size of
2478          * wptClipDecryptDlg.cpp (clip_decrypt_dlg_proc): Likewise.          the text instead of allocating the maximum.
2479          * wptFileManager.cpp (fm_decrypt): Likewise.  
2480          * WinPT.cpp (check_default_key): Check if the keys in gpg.conf  2003-07-13  Timo Schulz  <[email protected]>
2481          are valid and in the keyring.  
2482          * wptKeySignDlg.cpp (do_check_protection): Disable the passphrase          * wptKeygenDlg.cpp (check_passphrase): Check if the passphrase contains
2483          item if the key is not protected.          characters >= 127. Due to the fact that we use CP-1250 and GPG uses CP-850
2484            it would be a bad idea to use such passphrases. And thus we disallow it.
2485            * wptKeyEditDlgs.cpp (keyedit_change_passwd): Likewise.
2486  2003-04-13  Timo Schulz  <[email protected]>          * wptSymEnc.cpp (gpgme_encrypt_symmetric): Likewise.
2487            * wptHotkey.cpp (hotkeys_strerror): Use capital letters.
2488          * wptSubkeyDlgProc.cpp (key_subkey_dlg_proc): Use a callback  
2489          context.  2003-07-12  Timo Schulz  <[email protected]>
2490          * wptUidDlgProc.cpp (keyuid_dlg_proc): Likewise.  
2491          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Set the protect          * wptFileManager.cpp (fm_verify): Support for multiple signatures.
2492          flag inside the KEY contect if needed.          * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Likewise.
2493          * wptKeySubkeyDlg.cpp (key_subkey_dlg_proc): Only ask for a          * wptProxySettingsDlg.cpp (read_proxy): Skip http:// prefix.
2494          passphrase if the protect flag is set.          * wptKeyserver.cpp (check_URL): Support for hkp://. Closes #755156.
2495          Display the callback dialog to show the progress.          (kserver_connect): Likewise.
2496          Implemented the "revkey" feature.          (kserver_read_config): Likewise.
2497          * wptKeyUidDlg.cpp (key_uid_dlg_proc): Likewise.          * wptSymEnc.cpp (gpgme_encrypt_symmetric): Free memory if the passphrases
2498          (do_add_new_userid): New. Add an entry to the list box          are not equal.
2499          after the GPG process finished.          * wptKeyGenDlg.cpp (keygen_wizard_dlg_proc): New. An easy to use wizard to
2500          * wptClipDecryptDlg.cpp (clip_decrypt_dlg): Initialize sig          generate a key pair.
2501          to zero to avoid segfaults.  
2502    2003-06-24  Timo Schulz  <[email protected]>
2503  2003-04-15  Timo Schulz  <[email protected]>  
2504            * Fixed filter code in Get{Open,Save}FileName. Changed all callers.
2505          * wptClipImportDlg.cpp (data_cb_dlg_proc): New.          Thanks to Alex.
2506          (data_cb_thread): New.          * wptKeyManager.cpp (km_delete_keys): Quote the user-id.
2507          (data_cb_dlg_create): New.  
2508          (data_cb_dlg_destroy): New.  
2509          (data_cb_new): New.  2003-06-13  Timo Schulz  <[email protected]>
2510          (clip_import_dlg_proc): Use a callback dialog to  
2511          show the user the data decoding procedure is in          * wptClipDecryptDlg.cpp (clip_decrypt_dlg): Quote the user-id name.
2512          progress. This dialog is destroyed in the key          * wptClipSignDlg.cpp (clip_sign_dlg_proc): Fix the code due to
2513          import statistics dialog.          the fact the signer is now dymanic and not static.
2514            * wptGPG.cpp (check_gnupg_engine): Check if IDEA is available and
2515            change all code that it only shows an error if no plug-in was loaded.
2516  2003-04-20  Timo Schulz <[email protected]>          * wptKeyEditDlgs.cpp (is_cmd_openpgp): Remove REVKEY since you
2517            can revoke v3 keys.
2518          * wptFindWnd.h: Removed. We don't use it any longer.          (do_editkey_revoke): Clarify command because it can be only used
2519          * wptGPG.h: Merged GPGERR_xxx constants with WPTERR_xxx.          for secondary keys.
2520          (gpg_strerror): Removed. Now it is handled in winpt_strerror.          * wptKeyManagerDlg.cpp (file_sign_dlg_proc): Make sure an error
2521          * wptFileManager.cpp (fm_get_file_name): move this to          is issued when no key was selected. Thanks to vedaal.
2522          * wptVerifyList.cpp (get_file_name): ..this place and declare  
2523          it as static because no other file need this function.  2003-06-11  Timo Schulz  <[email protected]>
2524    
2525  2003-04-20  Timo Schulz  <[email protected]>          * wptKeylist.cpp (keylist_add_key): Now the user-ids are in the
2526            right order and we do not use the last user-id but the first
2527          * wptClipboard.cpp: Removed. All these functions and constants          because this is always the primary user-id or the newest user-id.
2528          are now available in MyGPGME/clip.c and thus part of GPGME.          * wptGPGME.cpp (get_default_keyid): Removed. Some better code
2529          * wptKeylist.cpp (keylist_add_to_recipients): Renamed to...          were added to get_gnupg_default_key.
2530          (keylist_get_recipients): this. Return the context instead of  
2531          an argument.  2003-06-10  Timo Schulz  <[email protected]>
2532          (get_key_size): Add key index.  
2533          (get_key_algo): Likewise.          * wptKeysignDlg.cpp (do_fill_seckeylist): Make sure disabled keys
2534          (keylist_build): Use a special mode when signing is used.          are skipped.
2535          (keylist_enum_recipients): Return a malloced pointer to the          (keysign_dlg_proc): Removed some redundant code.
2536          recipients.          * wptKeyEditDlgs.cpp (is_idea_protect_algo): New. Find out if
2537          * wptClipDecryptDlg.cpp (clip_decrypt_dlg): Add primary fingerprint          it is possible to change the passphrase.
2538          when we have a signature result and we do not trust the key.  
2539    2003-06-06  Timo Schulz  <[email protected]>
2540  2003-04-23  Timo Schulz  <[email protected]>  
2541            * wptKeylist.cpp (keylist_get_recipients): Use a stronger warning
2542          * wptKeyPropsDlg.cpp (ownertrust_to_string): Moved the function          message and include the user-id.
2543          from GPGME#gpgme_ownertrust_to_string into WinPT.          * Encryption: use force overwrite (--yes) to make sure there are
2544            no complications with GPG.
2545  2003-04-24  Timo Schulz  <[email protected]>          * Import: skip all record types we do not understand.
2546    
2547          * wptKeyEditAddSubKeyDlg.cpp (keyedit_addsubkey_dlg_proc): Init  
2548          default values to make it easier for newbies.  2003-06-05  Timo Schulz  <[email protected]>
2549          * wptClipDecryptDlg.cpp (clip_decrypt_dlg): Use a better error  
2550          when no secret key was found. Also mention the public key algo.          * wptPassphraseCB.cpp (passphrase_callback_proc): Now the dialog
2551          * wptFileManager.cpp (fm_decrypt): Likewise.          shows all involved recipients and also the public key algorithm.
2552            * wptRegistry.cpp (reg_inst_winpt): If the user does not want
2553  2003-04-25  Timo Schulz  <[email protected]>          the extensions, set the entry to "1" so the message is not shown
2554            again.
2555          * wptVerList.cpp (verlist_build): Change the name of some columns.  
2556          * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Instead of just the  2003-06-04  Timo Schulz  <[email protected]>
2557          notation (if present!) present the user a general message box  
2558          with extended signature information. This means the notation          * wptKeylist.cpp (get_key_algo, get_key_size): Due to the fact
2559          data and a possible policy URL.          that GPG uses the newest subkey by default, we always return
2560            the info of this subkey and not the first.
2561            * wptKeyImportStatusDlg.cpp (import_status_dlg_proc): Fixed off-by-one
2562  2003-04-26  Timo Schulz  <[email protected]>          bug. Now the indicies are correctly.
2563            * wptGPG.cpp (gnupg_check_keyring): Do not free the value before
2564          * wptParser.cpp: A lot of structural changes. Always add items          get_file_size is called.
2565          at the end of the list so we don't need to make a copy of the list          * WinPT.cpp (WinMain): Only check the GPG engine version if there
2566          to restore the original order. Fix the group problem.          were no problems with the GPG config. And differ between a problem
2567          * wptKeylist.cpp (keylist_build): Use OR to get the flags and          to get the version and if a wrong version were detected.
2568          not ==.  
2569          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): The export command  
2570          (file) does not use the keyid as the file name when more than one  2003-06-01      Timo Schulz  <[email protected]>
2571          keys were selected.  
2572          Allow allow to set default keys which are not revoked or expired.          * wptCurrWnd.cpp (rel_key, hit_key): Replaced with macros...
2573          * wptFileEncryptDlg.cpp (file_encrypt_dlg_proc): Allow to sort          (KEYDOWN, KEYUP): macros for the functions above.
2574          the columns.  
2575          Set the force trust flag in GPGME if there are some recipients  2003-05-31  Timo Schulz  <[email protected]>
2576          with no validity.  
2577            * wptKeyManager.cpp (km_key_is_v3): Return if the selected
2578  2003-04-27  Timo Schulz  <[email protected]>          key is an old PGP 2 (v3) key.
2579            * wptKeyManagerDlg.cpp (key_manager_dlg_proc): Only allow
2580          * wptKeysigDlg.cpp (keysig_dlg_proc): A double click now allows          (#ID_KEYMISC_EDITKEY): Bail out if no key was selected.
2581          to show the properties of the signers keys.          to add extented items if the key is NOT version 3.
2582          * wptKeyEditAddRevokerDlg.cpp (keyedit_addrevocer_dlg_proc): New.          * wptKeyEditDlgs.cpp (keyedit_main_dlg_proc): Check if the
2583            key is v3 and forbid most commands.
2584  2003-04-30  Timo Schulz  <[email protected]>          (is_cmd_openpgp): New.
2585    
2586          * wptKeyManagerdlg.cpp (keymanager_dlg_proc): Support for the  2003-05-28  Timo Schulz  <[email protected]>
2587          next context menu ("Add"). Make sure the entries are disabled  
2588          when the key has no secret key.          * wptKeyManager.cpp (km_set_clip_info): New.
2589          * wptKeyEditAddPhotoDlg.cpp (keyedit_addphoto_dlg_proc): New.          * wptKeyManagerDlg.cpp (key_manager_dlg_proc): Use it here.
2590          * wptFileManager.cpp (fm_decrypt): Set sig to NULL so it won't          * wptImportList.cpp (implist_build): Some column changes for
2591          cause a segfault when the pointer free tries to deallocate the          the listview control.
2592          pointer.          (implist_load): Return if secret keys were found.
2593            * wptClipImportDlg.cpp (data_cb_dlg_proc): Store if secret keys
2594  2003-05-02  Timo Schulz  <[email protected]>          were found.
2595            (clip_import_dlg_proc): New message if secret keys were found.
2596          * wptW32API.cpp (set_foreground_wnd): Removed. Changed all callers.  
2597    
2598  2003-05-03  Timo Schulz  <[email protected]>  2003-05-25  Timo Schulz  <[email protected]>
2599    
2600          * wptParser.cpp: Renamed to...          * wptImportList.cpp (implist_add_key): Address charset problem.
2601          * wptGPGParser.cpp: this.          * wptVerifyList.cpp (verlist_add_sig_log): Use UTF8 decoding.
2602          (release_option): Renamed to...          * wptKeyserver.cpp (set_default_kserver): New.
2603          (release_gpg_options): this.          (wsock_init): Call the new function.
2604          (commit_option): Renamed to...          (kserver_load_conf): If the FP is invalid, skip to read the file.
2605          (commit_gpg_options): this.          * WinPT.cpp (WinMain): Call set_default_kserver to make sure the
2606          (parse_option): Renamed to...          item has a value.
2607          (parse_gpg_options): this.  
2608          * wptGPG.cpp: Use new parser function names.  2003-05-24  Timo Schulz  <[email protected]>
2609          (set_gnupg_default_key): Free memory.  
2610          * wptKeylist.cpp (keylist_add_groups): New group code.          * wptKeyEditDlgs.cpp (keyedit_main_dlg_proc): Subclass the two lists
2611          * wptGroups.{c,h}: Removed. Now we use the GPG group command.          to allow to use virtual keys (DEL, INS).
2612          * wptKeySigListDlg.cpp (keysig_dlg_proc): Change column from          Release the uid control context when the dialog will be destroyed.
2613          2 to 4.  
2614          (recv_missing_keys): Likewise. Now it is possible to retrieve  
2615          missing keys. Thanks to Klaus.  2003-05-22  Timo Schulz  <[email protected]>
2616          * wptKeyserverDlg.cpp (hkp_recv_key): Use a dymanic buffer rather  
2617          than a static buffer to avoid garbled keys. There are some very          * wptMainProc.cpp (winpt_main_proc): Set use_hotkey for current
2618          large keys and these cause some trouble with a 16k buffer.          window mode sign+encrypt. This fixes a couple of other problems.
2619          (keyserver_dlg_proc): Localized some strings.          * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Get new values of the
2620          * wptKeyserverSearchDlg.cpp (hkpsearch_dlg_proc): Use new column          key when the cache was reloaded.
2621          names which are equal to the names we use in the Key Manager.  
2622          * wptKeySignDlg.cpp (keysign_dlg_proc): Fix a silly '=' but  
2623          should be "==" bug.  2003-05-21  Timo Schulz  <[email protected]>
2624          * wptKeygenDlg.cpp (mbox): Removed. Too much overhead.  
2625          * Add --expert option for the GPG procedure call if needed.          * wptSiglist.cpp (siglist_add_key): Only list signatures which are
2626            user-id certificates (0x10-0x13) and ignore key and subkey sigs.
2627  2003-05-04  Timo Schulz  <[email protected]>          c-strings are now handle correctly and decoded into GPGME.
2628    
2629          * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): If invalid recipients  2003-05-20  Timo Schulz  <[email protected]>
2630          were found, output a more precise error message. Now the GPGME code  
2631          first tests for special cases and if no one hit the nail on the head,          * wptKeyPropsDlg.cpp (key_props_dlg_proc): Factor out code to change
2632          a general error is used.          the passphrase from here to...
2633            * wptKeyEditDlgs.cpp (keyedit_change_passwd): ...this place.
2634  2003-05-06  Timo Schulz  <[email protected]>  
2635    2003-05-19  Timo Schulz  <[email protected]>
2636          * wptKeySigDlg.cpp (keysig_dlg_proc): Disable the button when all keys  
2637          are available. Removed old [unused] code.          * wptPasswdDlg.cpp (create_passwd_dlg): Removed.
2638          Make sure we really have the key in the cache.          (request_passphrase): New.
2639            The passphrase_s context is now internal, all externl function use now
2640  2003-05-07  Timo Schulz  <[email protected]>          request_passphrase. Changed all callers.
2641            * wptKeygenDlg.cpp (keygen_dlg_proc): Reworded the passphrase
2642          * Clean up the outer GPGME interface. Internal functions should be          warning and a check for the comment field was added.
2643          invisible in gpgme.h.          * wptKeyEditDlgs.cpp: New. This file now combines the dialogs which
2644          Merge the photo-id, formerly attribute id stuff with gpgme_key_get_xxx_attr.          has shown the subkeys and the userids.
2645          * wptKeyserver.cpp: Some cleanups.          * wptKeySubkeyDlg.cpp: Deleted and stuff merged into wptKeyEditDlgs.cpp.
2646          (finger_recvkey): Skip URL postfix if there.  
2647    2003-05-17  Timo Schulz  <[email protected]>
2648  2003-05-08  Timo Schulz  <[email protected]>  
2649            * wptFileManager.cpp: Moved gpgme_file_get_extension to this file
2650          * wptMainProc.cpp (winpt_main_proc): Symmetric encryption for the current          and renamed it to...
2651          window mode.          (file_get_extension): this. gpgme_control now also returns the
2652          (currwnd_gpg_dlg): Likewise.          (get_file_name): Corrected the calculation of the basename.
2653          * wptCurrWnd.cpp (wnd_msg_em_set_pos): Fix an off-by-one bug.          state of the command if you use -1 as the value.
2654          * WinPT.cpp (WinMain): If the default key was not found, show the string          * wptImportList.cpp (implist_load): Make sure we really have the key ID.
2655          in the error message to make it easier for the user to fix the problem.          * wptClipEditDlg.cpp (clip_edit_dlg_proc): Some small changes all over
2656          * wptImportStatusDlg.cpp (import_status_dlg_proc): Take care of secret          the place.
2657          keys.  
2658          * wptfileManager.cpp (fm_get_file_type): Fix packet type detection error.  2003-05-14  Timo Schulz  <[email protected]>
2659          This makes the priority of the rc2 update more urgent.  
2660            * wptKeyManager.cpp (km_enable_disable_key): New.
2661  2003-05-09  Timo Schulz  <[email protected]>  
2662    2003-05-13  Timo Schulz  <[email protected]>
2663          * wptMDSumDlg.cpp (mdsum_dlg_proc): New.  
2664          * wptFileManager.cpp (fm_print_md): New.          * wptKeyList.cpp (keylist_add_key): Add 'DISABLED' flag for keys.
2665          * wptFileManagerDlg.cpp (file_manager_dlg_proc): Support for the Print MD          (key_check_validity): Moved from GPGME to this file.
2666          command.          * wptKeyManager.cpp (km_get_key_status): New.
2667    
2668  2003-05-13  Timo Schulz  <[email protected]>  2003-05-09  Timo Schulz  <[email protected]>
2669    
2670          * wptKeyList.cpp (keylist_add_key): Add 'DISABLED' flag for keys.          * wptMDSumDlg.cpp (mdsum_dlg_proc): New.
2671          (key_check_validity): Moved from GPGME to this file.          * wptFileManager.cpp (fm_print_md): New.
2672          * wptKeyManager.cpp (km_get_key_status): New.          * wptFileManagerDlg.cpp (file_manager_dlg_proc): Support for the Print MD
2673            command.
2674  2003-05-14  Timo Schulz  <[email protected]>  
2675    2003-05-08  Timo Schulz  <[email protected]>
2676          * wptKeyManager.cpp (km_enable_disable_key): New.  
2677            * wptMainProc.cpp (winpt_main_proc): Symmetric encryption for the current
2678  2003-05-17  Timo Schulz  <[email protected]>          window mode.
2679            (currwnd_gpg_dlg): Likewise.
2680          * wptFileManager.cpp: Moved gpgme_file_get_extension to this file          * wptCurrWnd.cpp (wnd_msg_em_set_pos): Fix an off-by-one bug.
2681          and renamed it to...          * WinPT.cpp (WinMain): If the default key was not found, show the string
2682          (file_get_extension): this. gpgme_control now also returns the          in the error message to make it easier for the user to fix the problem.
2683          (get_file_name): Corrected the calculation of the basename.          * wptImportStatusDlg.cpp (import_status_dlg_proc): Take care of secret
2684          state of the command if you use -1 as the value.          keys.
2685          * wptImportList.cpp (implist_load): Make sure we really have the key ID.          * wptfileManager.cpp (fm_get_file_type): Fix packet type detection error.
2686          * wptClipEditDlg.cpp (clip_edit_dlg_proc): Some small changes all over          This makes the priority of the rc2 update more urgent.
2687          the place.  
2688    2003-05-07  Timo Schulz  <[email protected]>
2689  2003-05-19  Timo Schulz  <[email protected]>  
2690            * Clean up the outer GPGME interface. Internal functions should be
2691          * wptPasswdDlg.cpp (create_passwd_dlg): Removed.          invisible in gpgme.h.
2692          (request_passphrase): New.          Merge the photo-id, formerly attribute id stuff with gpgme_key_get_xxx_attr.
2693          The passphrase_s context is now internal, all externl function use now          * wptKeyserver.cpp: Some cleanups.
2694          request_passphrase. Changed all callers.          (finger_recvkey): Skip URL postfix if there.
2695          * wptKeygenDlg.cpp (keygen_dlg_proc): Reworded the passphrase  
2696          warning and a check for the comment field was added.  2003-05-06  Timo Schulz  <[email protected]>
2697          * wptKeyEditDlgs.cpp: New. This file now combines the dialogs which  
2698          has shown the subkeys and the userids.          * wptKeySigDlg.cpp (keysig_dlg_proc): Disable the button when all keys
2699          * wptKeySubkeyDlg.cpp: Deleted and stuff merged into wptKeyEditDlgs.cpp.          are available. Removed old [unused] code.
2700            Make sure we really have the key in the cache.
2701  2003-05-20  Timo Schulz  <[email protected]>  
2702    2003-05-04  Timo Schulz  <[email protected]>
2703          * wptKeyPropsDlg.cpp (key_props_dlg_proc): Factor out code to change  
2704          the passphrase from here to...          * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): If invalid recipients
2705          * wptKeyEditDlgs.cpp (keyedit_change_passwd): ...this place.          were found, output a more precise error message. Now the GPGME code
2706            first tests for special cases and if no one hit the nail on the head,
2707  2003-05-21  Timo Schulz  <[email protected]>          a general error is used.
2708    
2709          * wptSiglist.cpp (siglist_add_key): Only list signatures which are  2003-05-03  Timo Schulz  <[email protected]>
2710          user-id certificates (0x10-0x13) and ignore key and subkey sigs.  
2711          c-strings are now handle correctly and decoded into GPGME.          * wptParser.cpp: Renamed to...
2712            * wptGPGParser.cpp: this.
2713  2003-05-22  Timo Schulz  <[email protected]>          (release_option): Renamed to...
2714            (release_gpg_options): this.
2715          * wptMainProc.cpp (winpt_main_proc): Set use_hotkey for current          (commit_option): Renamed to...
2716          window mode sign+encrypt. This fixes a couple of other problems.          (commit_gpg_options): this.
2717          * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Get new values of the          (parse_option): Renamed to...
2718          key when the cache was reloaded.          (parse_gpg_options): this.
2719            * wptGPG.cpp: Use new parser function names.
2720            (set_gnupg_default_key): Free memory.
2721  2003-05-24  Timo Schulz  <[email protected]>          * wptKeylist.cpp (keylist_add_groups): New group code.
2722            * wptGroups.{c,h}: Removed. Now we use the GPG group command.
2723          * wptKeyEditDlgs.cpp (keyedit_main_dlg_proc): Subclass the two lists          * wptKeySigListDlg.cpp (keysig_dlg_proc): Change column from
2724          to allow to use virtual keys (DEL, INS).          2 to 4.
2725          Release the uid control context when the dialog will be destroyed.          (recv_missing_keys): Likewise. Now it is possible to retrieve
2726            missing keys. Thanks to Klaus.
2727            * wptKeyserverDlg.cpp (hkp_recv_key): Use a dymanic buffer rather
2728  2003-05-25  Timo Schulz  <[email protected]>          than a static buffer to avoid garbled keys. There are some very
2729            large keys and these cause some trouble with a 16k buffer.
2730          * wptImportList.cpp (implist_add_key): Address charset problem.          (keyserver_dlg_proc): Localized some strings.
2731          * wptVerifyList.cpp (verlist_add_sig_log): Use UTF8 decoding.          * wptKeyserverSearchDlg.cpp (hkpsearch_dlg_proc): Use new column
2732          * wptKeyserver.cpp (set_default_kserver): New.          names which are equal to the names we use in the Key Manager.
2733          (wsock_init): Call the new function.          * wptKeySignDlg.cpp (keysign_dlg_proc): Fix a silly '=' but
2734          (kserver_load_conf): If the FP is invalid, skip to read the file.          should be "==" bug.
2735          * WinPT.cpp (WinMain): Call set_default_kserver to make sure the          * wptKeygenDlg.cpp (mbox): Removed. Too much overhead.
2736          item has a value.          * Add --expert option for the GPG procedure call if needed.
2737    
2738  2003-05-28  Timo Schulz  <[email protected]>  2003-05-02  Timo Schulz  <[email protected]>
2739    
2740          * wptKeyManager.cpp (km_set_clip_info): New.          * wptW32API.cpp (set_foreground_wnd): Removed. Changed all callers.
2741          * wptKeyManagerDlg.cpp (key_manager_dlg_proc): Use it here.  
2742          * wptImportList.cpp (implist_build): Some column changes for  2003-04-30  Timo Schulz  <[email protected]>
2743          the listview control.  
2744          (implist_load): Return if secret keys were found.          * wptKeyManagerdlg.cpp (keymanager_dlg_proc): Support for the
2745          * wptClipImportDlg.cpp (data_cb_dlg_proc): Store if secret keys          next context menu ("Add"). Make sure the entries are disabled
2746          were found.          when the key has no secret key.
2747          (clip_import_dlg_proc): New message if secret keys were found.          * wptKeyEditAddPhotoDlg.cpp (keyedit_addphoto_dlg_proc): New.
2748            * wptFileManager.cpp (fm_decrypt): Set sig to NULL so it won't
2749            cause a segfault when the pointer free tries to deallocate the
2750  2003-05-31  Timo Schulz  <[email protected]>          pointer.
2751    
2752          * wptKeyManager.cpp (km_key_is_v3): Return if the selected  2003-04-27  Timo Schulz  <[email protected]>
2753          key is an old PGP 2 (v3) key.  
2754          * wptKeyManagerDlg.cpp (key_manager_dlg_proc): Only allow          * wptKeysigDlg.cpp (keysig_dlg_proc): A double click now allows
2755          (#ID_KEYMISC_EDITKEY): Bail out if no key was selected.          to show the properties of the signers keys.
2756          to add extented items if the key is NOT version 3.          * wptKeyEditAddRevokerDlg.cpp (keyedit_addrevocer_dlg_proc): New.
2757          * wptKeyEditDlgs.cpp (keyedit_main_dlg_proc): Check if the  
2758          key is v3 and forbid most commands.  2003-04-26  Timo Schulz  <[email protected]>
2759          (is_cmd_openpgp): New.  
2760            * wptParser.cpp: A lot of structural changes. Always add items
2761  2003-06-01      Timo Schulz  <[email protected]>          at the end of the list so we don't need to make a copy of the list
2762            to restore the original order. Fix the group problem.
2763          * wptCurrWnd.cpp (rel_key, hit_key): Replaced with macros...          * wptKeylist.cpp (keylist_build): Use OR to get the flags and
2764          (KEYDOWN, KEYUP): macros for the functions above.          not ==.
2765            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): The export command
2766  2003-06-04  Timo Schulz  <[email protected]>          (file) does not use the keyid as the file name when more than one
2767            keys were selected.
2768          * wptKeylist.cpp (get_key_algo, get_key_size): Due to the fact          Allow allow to set default keys which are not revoked or expired.
2769          that GPG uses the newest subkey by default, we always return          * wptFileEncryptDlg.cpp (file_encrypt_dlg_proc): Allow to sort
2770          the info of this subkey and not the first.          the columns.
2771          * wptKeyImportStatusDlg.cpp (import_status_dlg_proc): Fixed off-by-one          Set the force trust flag in GPGME if there are some recipients
2772          bug. Now the indicies are correctly.          with no validity.
2773          * wptGPG.cpp (gnupg_check_keyring): Do not free the value before  
2774          get_file_size is called.  2003-04-25  Timo Schulz  <[email protected]>
2775          * WinPT.cpp (WinMain): Only check the GPG engine version if there  
2776          were no problems with the GPG config. And differ between a problem          * wptVerList.cpp (verlist_build): Change the name of some columns.
2777          to get the version and if a wrong version were detected.          * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Instead of just the
2778            notation (if present!) present the user a general message box
2779            with extended signature information. This means the notation
2780  2003-06-05  Timo Schulz  <[email protected]>          data and a possible policy URL.
2781    
2782          * wptPassphraseCB.cpp (passphrase_callback_proc): Now the dialog  
2783          shows all involved recipients and also the public key algorithm.  2003-04-24  Timo Schulz  <[email protected]>
2784          * wptRegistry.cpp (reg_inst_winpt): If the user does not want  
2785          the extensions, set the entry to "1" so the message is not shown          * wptKeyEditAddSubKeyDlg.cpp (keyedit_addsubkey_dlg_proc): Init
2786          again.          default values to make it easier for newbies.
2787            * wptClipDecryptDlg.cpp (clip_decrypt_dlg): Use a better error
2788  2003-06-06  Timo Schulz  <[email protected]>          when no secret key was found. Also mention the public key algo.
2789            * wptFileManager.cpp (fm_decrypt): Likewise.
2790          * wptKeylist.cpp (keylist_get_recipients): Use a stronger warning  
2791          message and include the user-id.  2003-04-23  Timo Schulz  <[email protected]>
2792          * Encryption: use force overwrite (--yes) to make sure there are  
2793          no complications with GPG.          * wptKeyPropsDlg.cpp (ownertrust_to_string): Moved the function
2794          * Import: skip all record types we do not understand.          from GPGME#gpgme_ownertrust_to_string into WinPT.
2795    
2796    2003-04-20  Timo Schulz  <[email protected]>
2797  2003-06-10  Timo Schulz  <[email protected]>  
2798            * wptClipboard.cpp: Removed. All these functions and constants
2799          * wptKeysignDlg.cpp (do_fill_seckeylist): Make sure disabled keys          are now available in MyGPGME/clip.c and thus part of GPGME.
2800          are skipped.          * wptKeylist.cpp (keylist_add_to_recipients): Renamed to...
2801          (keysign_dlg_proc): Removed some redundant code.          (keylist_get_recipients): this. Return the context instead of
2802          * wptKeyEditDlgs.cpp (is_idea_protect_algo): New. Find out if          an argument.
2803          it is possible to change the passphrase.          (get_key_size): Add key index.
2804            (get_key_algo): Likewise.
2805  2003-06-11  Timo Schulz  <[email protected]>          (keylist_build): Use a special mode when signing is used.
2806            (keylist_enum_recipients): Return a malloced pointer to the
2807          * wptKeylist.cpp (keylist_add_key): Now the user-ids are in the          recipients.
2808          right order and we do not use the last user-id but the first          * wptClipDecryptDlg.cpp (clip_decrypt_dlg): Add primary fingerprint
2809          because this is always the primary user-id or the newest user-id.          when we have a signature result and we do not trust the key.
2810          * wptGPGME.cpp (get_default_keyid): Removed. Some better code  
2811          were added to get_gnupg_default_key.  2003-04-20  Timo Schulz <[email protected]>
2812    
2813  2003-06-13  Timo Schulz  <[email protected]>          * wptFindWnd.h: Removed. We don't use it any longer.
2814            * wptGPG.h: Merged GPGERR_xxx constants with WPTERR_xxx.
2815          * wptClipDecryptDlg.cpp (clip_decrypt_dlg): Quote the user-id name.          (gpg_strerror): Removed. Now it is handled in winpt_strerror.
2816          * wptClipSignDlg.cpp (clip_sign_dlg_proc): Fix the code due to          * wptFileManager.cpp (fm_get_file_name): move this to
2817          the fact the signer is now dymanic and not static.          * wptVerifyList.cpp (get_file_name): ..this place and declare
2818          * wptGPG.cpp (check_gnupg_engine): Check if IDEA is available and          it as static because no other file need this function.
2819          change all code that it only shows an error if no plug-in was loaded.  
2820          * wptKeyEditDlgs.cpp (is_cmd_openpgp): Remove REVKEY since you  2003-04-15  Timo Schulz  <[email protected]>
2821          can revoke v3 keys.  
2822          (do_editkey_revoke): Clarify command because it can be only used          * wptClipImportDlg.cpp (data_cb_dlg_proc): New.
2823          for secondary keys.          (data_cb_thread): New.
2824          * wptKeyManagerDlg.cpp (file_sign_dlg_proc): Make sure an error          (data_cb_dlg_create): New.
2825          is issued when no key was selected. Thanks to vedaal.          (data_cb_dlg_destroy): New.
2826            (data_cb_new): New.
2827  2003-06-24  Timo Schulz  <[email protected]>          (clip_import_dlg_proc): Use a callback dialog to
2828            show the user the data decoding procedure is in
2829          * Fixed filter code in Get{Open,Save}FileName. Changed all callers.          progress. This dialog is destroyed in the key
2830          Thanks to Alex.          import statistics dialog.
2831          * wptKeyManager.cpp (km_delete_keys): Quote the user-id.  
2832    
2833    2003-04-13  Timo Schulz  <[email protected]>
2834  2003-07-12  Timo Schulz  <[email protected]>  
2835            * wptSubkeyDlgProc.cpp (key_subkey_dlg_proc): Use a callback
2836          * wptFileManager.cpp (fm_verify): Support for multiple signatures.          context.
2837          * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Likewise.          * wptUidDlgProc.cpp (keyuid_dlg_proc): Likewise.
2838          * wptProxySettingsDlg.cpp (read_proxy): Skip http:// prefix.          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Set the protect
2839          * wptKeyserver.cpp (check_URL): Support for hkp://. Closes #755156.          flag inside the KEY contect if needed.
2840          (kserver_connect): Likewise.          * wptKeySubkeyDlg.cpp (key_subkey_dlg_proc): Only ask for a
2841          (kserver_read_config): Likewise.          passphrase if the protect flag is set.
2842          * wptSymEnc.cpp (gpgme_encrypt_symmetric): Free memory if the passphrases          Display the callback dialog to show the progress.
2843          are not equal.          Implemented the "revkey" feature.
2844          * wptKeyGenDlg.cpp (keygen_wizard_dlg_proc): New. An easy to use wizard to          * wptKeyUidDlg.cpp (key_uid_dlg_proc): Likewise.
2845          generate a key pair.          (do_add_new_userid): New. Add an entry to the list box
2846            after the GPG process finished.
2847  2003-07-13  Timo Schulz  <[email protected]>          * wptClipDecryptDlg.cpp (clip_decrypt_dlg): Initialize sig
2848            to zero to avoid segfaults.
2849          * wptKeygenDlg.cpp (check_passphrase): Check if the passphrase contains  
2850          characters >= 127. Due to the fact that we use CP-1250 and GPG uses CP-850  2003-04-12  Timo Schulz  <[email protected]>
2851          it would be a bad idea to use such passphrases. And thus we disallow it.  
2852          * wptKeyEditDlgs.cpp (keyedit_change_passwd): Likewise.          * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Use the new
2853          * wptSymEnc.cpp (gpgme_encrypt_symmetric): Likewise.          GPGME code.
2854          * wptHotkey.cpp (hotkeys_strerror): Use capital letters.          * wptVerifyList.cpp (verlist_add_sig_log): Likewise.
2855            * wptClipDecryptDlg.cpp (clip_decrypt_dlg_proc): Likewise.
2856  2003-07-22  Timo Schulz  <[email protected]>          * wptFileManager.cpp (fm_decrypt): Likewise.
2857            * WinPT.cpp (check_default_key): Check if the keys in gpg.conf
2858          * wptClipEditDlg.cpp (clip_edit_dlg_proc): Figure out the size of          are valid and in the keyring.
2859          the text instead of allocating the maximum.          * wptKeySignDlg.cpp (do_check_protection): Disable the passphrase
2860            item if the key is not protected.
2861  2003-08-17  Timo Schulz  <[email protected]>  
2862    
2863          * wptKeyManagerDlg.cpp (keymanager_dlg_proc):  2003-04-09  Timo Schulz  <[email protected]>
2864          #ID_KEYMISC_EXPORT_PRIVKEY: Retrieve the current list view index. The  
2865          value was malformed.          * wptFirstRunDlg.cpp (first_run_dlg_proc): Mark selection as
2866          * wptClipEditDlg.cpp (clip_edit_dlg_proc): Free global memory.          invalid for cancel.
2867          * wptKeyserver.cpp (kserver_load_conf): If the file does not exist,  
2868          don't bother the user with an error message. Closes #782751.  2003-03-20  Timo Schulz  <[email protected]>
2869          * wptKeyEditDlgs.cpp (do_editkey_primary): New. Implement the  
2870          "primary" edit key command.          * wptFindWnd.cpp: Removed.
2871          * wptKeyserverDlg.cpp (hkp_recv_key): New flag parameter. Now it is          * wptW32API.c (dialog_box_param): Use FindWindowEx() instead of
2872          possible to supress the status message. This is useful when the whole          find_window.
2873          keyring will be refreshed.          * Whenever it's possible, use case insentensive searches to avoid
2874          * wptFileManager.cpp (fm_parse_command_line): Unquote file if needed.          problems.
2875          (quote_file): Avoid double quotes.  
2876          * GPGME support for quoted file names.  2003-03-19  Timo Schulz  <[email protected]>
2877          (fm_sym_encrypt): Double check password and to additional 8-bit checks.  
2878          * WinPT.cpp (my_acces): Moved to this file..          * wptMainProc.cpp (winpt_main_proc): Put the init_dtp code here.
2879          * wptGPG.cpp: ..here.          * wptPassphraseCB.cpp (hide_typing): Removed. Use short code directly
2880          (gpg_check_permissions): Renamed from check_permissions and make it global.          in the code.
2881          * wptKeyManagerDlg.cpp (key_manager_dlg_proc): Check to make sure we          * wptPasswdDlg.cpp: Likewise.
2882          have write access to the keyring for some commands.          (passphrase_cb_init): Declare as static.
2883            (passphrase_cb_gpgme): Modified to use the static function and rename
2884  2003-08-24  Timo Schulz <[email protected]>          it to...
2885            (passphrase_gpgme_set_cb): ..this. New.
2886          * wptPreferencesDlg.cpp (prefs_dlg_proc): Use better code to disable          * wptSecListDlg.cpp: Complete new appraoch. Now we use CB_SETITEMDATA
2887          dialog controls.          and friends to assign data to each item.
2888            Move dialog code to...
2889  2003-08-30  Timo Schulz  <[email protected]>          * wptClipSignEncDlg.cpp: ..here.
2890            * MyGPGME/keycache.c: We first look for directly key signatures and
2891          * wptGPG.h: Support for the GPG status messages REVKEYSIG and          then we skip all other signatures if we've already seen the key. This
2892          EXPKEYSIG. With this new feature, GPG 1.2.3 is required.          is needed to gather the designated revoker keys.
2893          * Make sure that the signature status does not cause an  
2894          segfault.  2003-03-18  Timo Schulz  <[email protected]>
2895          * WinPT.cpp: Use new check to detect the GPG version and make sure  
2896          it is the minimum.          * wptKeyImportStatDlg.cpp (import_status_dlg_proc): Fix index
2897          * wptGPG.cpp (parse_version_nr): New.          of revocation from 9 to 8.
2898          (check_gnupg_engine): Improved. Now it returns the actual version.          Set the text that no key was updated only if no new sig, subkey,
2899            userid and no public were added.
2900  2003-09-03  Timo Schulz  <[email protected]>          Add more information: new {subkeys, signatures, userid}.
2901            * wptKeyManager.cpp (km_delete_keys): Fixme lame, '=' instead of '==' bug.
2902          * The secret key listing does not contain any 'validity' or          * wptDlgs.cpp: Removed.
2903          'status' flags any longer. Thus we only can use the cache to          * wptDlgs.h: (dlg_fatal_error): New. Macro.
2904          make sure we have a secret key. All attributes need to be retrieved  
2905          from the public key listing.  2002-03-16  Timo Schulz  <[email protected]>
2906    
2907          * wptGPG.cpp (default_key_from_cache): New.          * wptKeyRevokeDlg.cpp (key_revoke_dlg_proc): Encode the
2908          (get_gnupg_default_key): Use new function to make sure we try          optional text in UTF-8 to avoid charset problems.
2909          to get the key from cache if there is a problem with the config          * wptKeyManager.cpp (km_quote_uid): Use dynamic memory instead
2910          file.          of a static buffer. Changed all callers.
2911            * wptKeylist.cpp (keylist_cmp_cb): Implemented sort functions
2912  2003-09-04  Timo Schulz  <[email protected]>          for the rest of the columns.
2913            (keylist_handle_column_click): New.
2914          * wptFileManager.cpp (fm_get_file_type): Due to an unknown reason,          * wptKeyEditOwnertrustdlg.cpp (keyedit_ownertrust_dlg_proc):
2915          the packet parsing return value check was wrong again. Now it does          Removed the 'Advanced' button because it only confuses users
2916          not recognize Word documents as SECKEY or ENCRYPTED any longer.          and it is not often used.
2917            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Support to ex-
2918  2003-09-08  Timo Schulz  <[email protected]>          and import the trustdb values (ownertrust).
2919            * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): Ability to
2920          * wptRegistry.cpp: Remove some hotkeys to correct index calculation.          sort columns.
2921          (get_reg_winpt_flag): Check buffer first.  
2922          (get_reg_winpt_prefs): Support for the new backup system.  2002-03-09  Timo Schulz  <[email protected]>
2923          (set_reg_winpt_prefs): Likewise.  
2924          * wptHotkey.h: Removed import and export hotkey. Re-ordered elements.          * 64-bit support for wipe operations.
2925          * wptRegistry.h: Cleaned up the hotkey interface.  
2926          * wptPreferenceDlg.cpp (enable_backup_items): New.  2002-03-08  Timo Schulz  <[email protected]>
2927          (prefs_dlg_proc): Simplified hotkey handling. Use new code.  
2928          * wptMainProc.cpp (clip_gpg_dlg): Remove hotkey handling for          * wptFileManager.cpp (fm_parse_command_line): Ignore lines with '--'
2929          im- and export. Use the code directly.          because they are options rather than files.
2930          (currwnd_gpg_dlg): Likewise.          * WinPT.cpp (WinMain): Allow to start the key manager directly
2931          * wptGPG.cpp (gnupg_backup_keyrings): New.          via --keymanager.
2932          (backup_one_file): New.          * wptFileManagerDlg.cpp (file_secdel_confirm_dlg_proc): New.
2933            (wipe_cb): New. Wipe callback function.
2934  2003-09-22  Timo Schulz  <[email protected]>          (fill_drive_combobox): New. Fill in all logical drives into
2935            the given combo box.
2936          * wptSigList.cpp (extract_filename): Make sure there is a '\',          (wipe_thread): New. Worker thread.
2937          otherwise just dup the string and return.          (update_disc_stats): New. Set the disc statistics for the
2938          * wptVerifyList.cpp (verlist_add_sig): Use a variable for the key          given drive entry.
2939          to make the code more readable.          (space_wipefrees_dlg_proc): New.
2940          * Implemented the GPGME part of the new smartcard interface.  
2941          The WinPT interface will be open until the scard stuff is back  2002-03-01  Timo Schulz  <[email protected]>
2942          ported to GPG 1.3.x.  
2943          * wptKeyEditDlgs.cpp (do_editkey_revuid): Need a secret key to do it.          * wptFileManager.cpp (fm_check_file_type): Fix bug in the detection
2944          Several code cleanups.          logic. Now we can decrypt symmetrically encrypted files again.
2945            Be stricter on memory alloaction checks.
2946  2003-09-24  Timo Schulz  <[email protected]>          (fm_get_file_type): Be more strict with the return code of
2947            parse_packet. This avoids bogus file types for MS-Word files and
2948          * wptKeygenDlg.cpp (keygen_dlg_proc): Implement 'Hide Typing' feature.          other non-PGP data.
2949          * wptFileManager.cpp (fm_encrypt): Ask for output file if needed.          (fm_wipe): Use the wipe mode from the registry and not a fixed value.
2950          * wptFileManagerDlg.cpp (fm_dlg_proc): Removed im- and export from          * WptRegistry.cpp (set_reg_winpt_prefs): Support wipe mode.
2951          the menu. We use import internally, but export was not useful and          (get_reg_winpt_prefs): Likewise.
2952          thus the code were removed.          * wptFilePrefsDlg.cpp: Removed. We don't use it any longer.
2953          * wptPreferenceDlg.cpp (prefs_dlg_proc): Disable some controle at          * wptDlgs.h: Corrected all dialog protypes to BOOL.
2954          startup when they are not allowed.          LRESULT was not correct.
2955          * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Removed PGP2 option.  
2956          Make the parsing code much shorter (read).  2002-02-08  Timo Schulz  <[email protected]>
2957    
2958            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Only export
2959  2003-09-25  Timo Schulz  <[email protected]>          the secret key when a file was chosen.
2960    
2961          * wptClipSignEncDlg.cpp (seclist_dlg_proc): The dialog was broken.  2002-02-01  Timo Schulz  <[email protected]>
2962          (check_key): New.  
2963          Removed the old Secret Key List dialog. Now the key can be directly          * wptKeyserver.cpp (kserver_search): Fix <KEYID bug.
2964          chose in the dialog.  
2965          (seclist_init): New.  2002-01-25  Timo Schulz  <[email protected]>
2966          (seclist_destroy): New.  
2967          (seclist_select_key): New.          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Support to copy the key id
2968          * wptFileManager.cpp (fm_sign): Ask for output file if needed.          and the fingerprint to the clipboard. Closes #674455.
2969            Automatically reload the keycache when a command is chosen and the cache
2970          * Client side implementation of the --enable-progress-filter feature.          state is set to 'reload requested'. Closes #671218.
2971            * wptKeySignDlg.cpp (do_fill_seckeylist): Make sure the public key parts
2972          * wptProgressDlg.cpp: Server side implementation.          are not invalid.
2973          (progress_dlg_proc): New. The actual dialog procedure.          * WinPT.cpp (check_permissions): Make sure we have the permission to
2974          (progress_callback): The GPGME wrapper callback.          write the keyring. Stop if not because it's expected at many other places.
2975            * wptSigList.cpp (siglist_add_key): Indent signatures under the root entry.
2976  2003-09-25  Timo Schulz  <[email protected]>          (siglist_build): Use a placeholder sig to avoid the position chaos.
2977            * wptKeyUidDlg.cpp: Unified text for 'user-ID'.
2978          * wptProgressDlg.cpp (progress_cb_thread): New.          * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): If a key is not found,
2979          (progress_callback): Use asynchron code.          display more information and use a GPG like output.
2980          * wptFileManager.cpp (fm_parse_files): Implement progress callback.          * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Force trust if there is
2981            an invalid key in the list of recipients. Closes #674965.
2982    
2983  2003-09-28  Timo Schulz  <[email protected]>  
2984    2002-01-21  Timo Schulz  <[email protected]>
2985          * wptCardDlg.cpp (card_edit_dlg_proc): New.  
2986          (gpg_load_scard): New. Try to use GPG load the card info.          * wptSymEnc.cpp (gpgme_encrypt_symmetric): Ask the passphrase twice to
2987          (print_fpr): New. Print beautified fingerprint.          avoid typing mistakes.
2988          (card_status): New. Set all dialog fields with the values from  
2989          the card.  2003-01-19  Timo Schulz  <[email protected]>
2990          (prepare_dialog): New. Load combo boxes with pre-defined strings.  
2991            * winpt.cpp (WinMain): Fixed spelling mistake. Closes #669321.
2992            * wptKeyManagerDlg.cpp (do_resize_window): New.
2993  2003-10-06  Timo Schulz  <[email protected]>          (do_create_minpopup): New. Closes #669730.
2994            * wptVerifyList.cpp (get_sig_date): Renamed to...
2995          * wptFileManager.cpp (fm_encrypt): Wipe files in both modes.          (longdate_to_strdate): New. Changed all callers.
2996          * wptGPG.cpp (gnupg_display_error): Display general error          * wptClipDecryptDlg.cpp (clip_decrypt_dlg): If the ciphertext contains
2997          when the file does not exit.          a signature, also display the time of it. Closes #669780.
2998          * wptW32API.cpp (get_folder_dlg): New.          * wptKeyImportStatusDlg.cpp (import_status_dlg_proc): Localize 2 strings.
2999          * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Ability to select          * wptEditKeyOwnertrust.cpp (keyedit_ownertrust_dlg_proc): Fixed a typo.
3000          the folder for the home directory.          * wptKeySignDlg.cpp (do_add_local_user): New. Now the dialog has the ability
3001          * wptKeyManager.cpp (km_update_default_key_str): Return length          to choose the signer.
3002          of the string.          (keysign_dlg_proc): Implemented a feature request. See above.
3003          (km_complete_status_bar): Use the offset of the default  
3004          key string so it is not appened twice.  2003-01-08  Timo Schulz   <[email protected]>
3005          * wptRegistry.cpp (regist_inst_winpt): Create 'Card' subkey.  
3006          * wptCard.h: New.          * wptKeyEditAddUidDlg.cpp (keyedit_adduid_dlg_proc): Output a warning
3007          * wptCardDlg.cpp (new_card_driver): New.          if the user tries to add the email address in the name field.
3008          (load_card_driver): New.          * wptKeyserver.cpp: Add support for protocols.
3009          (free_card_driver): New.          (finger_readline): New.
3010          (card_config_dlg_proc): If the reader is configured, load the          (finger_recvkey): New.
3011          values. This is needful to change the driver later.          * wptKeyUidDlg.cpp (keyuid_dlg_proc): Add a warning icon to the revoke
3012          (gpg_load_scard): Use driver as a parameter.          message box to show it's a serious decision.
3013          * wptMainProc.cpp (winpt_main_proc): Load card driver and          * wptPasswdDlg.cpp (passwd_dlg_proc): Center dialog window.
3014          unload it after use.          * wptRegistry.cpp (regist_single_filetype): Now internal and we use
3015            an easier way to get the location of the binary.
3016  2003-10-07  Timo Schulz  <[email protected]>          (regist_inst_winpt): Implemented the 'with_ext' part and add a registry
3017            entry to avoid double file registering.
3018          * wptPINDlg.cpp (pin_cb_dlg_proc): New.  
3019          * wptCardDlg.cpp (do_proc_card_cmds): New.  2003-01-07  Timo Schulz  <[email protected]>
3020          (card_edit_dlg_proc): Use it here.  
3021            * wptKeyManagerDlg.cpp (do_center_window): New. Try to set the window
3022  2003-10-08  Timo Schulz  <[email protected]>          pos from the coordinates from the registry.
3023            (keymanager_dlg_proc): Store the window pos in the registry.
3024          * wptCardDlg.cpp (do_proc_card_cmds): Check that only US-ASCII          * wptKeyRevokeDlg.cpp (key_revoke_dlg): Check box for PGP compatible certs.
3025          is used. Otherwise reject the value.          * wptKeyImportStatusDlg.cpp (import_status_dlg_proc): Print out a hint when
3026          (ask_pin): New. Enable PIN caching for the 'dialog session' so          a revcert was found.
3027          the user does not need to re-enter it again and again.          * wptKeyserverDlg.cpp (hkp_recv_key): Print an error if the LDAP import does
3028            not succeed.
3029  2003-10-09  Timo Schulz  <[email protected]>          (keyserver_dlg_proc): Corrected some listview index values.
3030            * wptKeylist.cpp (keylist_add_key): Use primary user-id when possible.
3031          * wptCardDlg.cpp (get_card_status): New.  
3032          (show_card_status): New. Retrieve the card status and show an  2002-12-23  Timo Schulz  <[email protected]>
3033          error if approprioate.  
3034          * Make sure that WinPT does not try to use non-OpenPGP cards.          * wptRegistry.cpp (regist_inst_winpt): Try to create \Keyserver
3035          * Add GPGME support for the forthcoming AUTH flag for keys.          directory if does not exist.
3036          * Implemented the detection of keys where the secret key components          * wptKeyserver.cpp: Simpliefied config file.
3037          are stored on a smart card.          (kserver_change_proxy): Write config to the registry. Remove
3038            code for the config file.
3039            * wptProxySettingsDlg.cpp (read_proxy): More robust code.
3040  2003-10-12  Timo Schulz  <[email protected]>          * wptKeyserverDlg.cpp (keyserver_dlg_proc): Removed the feature
3041            to send keys. The Key Manager is better for this.
3042          * wptCardDlg.cpp (guess_libname): New.  
3043          (card_status): Simplified the code with an attribute  
3044          table. Now it is a loop and not hard coded.  2002-12-21  Timo Schulz  <[email protected]>
3045          * The card interface has changed. Now the surname and  
3046          the given name are two fields and not one field.          * Fixed some language mistakes.
3047          * wptMainProc.cpp (winpt_main_proc): Check if the card          * wptMainproc.cpp: Use the desktop window as the parent window
3048          reader is configured where appropriate.          for the main dialogs so they are visible in the taskbar.
3049            * wptKeyManagerDlg.cpp: Enable minimize.
3050  2003-10-13  Timo Schulz  <[email protected]>          * wptFileManager.cpp (fm_parse_command_line): Support for detached
3051            signatures.
3052          * Extended the GPGME API that it is possible to retrieve          (fm_encrypt_directory): New.
3053          the key data. This is for the planned card login but it          * wptKeylist.cpp (keylist_add_key): Check the current key if it
3054          might be also useful for other purposes.          is not expired, not the primary (idx=0).
3055    
3056          * wptCardPCSC.c: New. General code for PC/SC card readers.  2002-12-18  Timo Schulz  <[email protected]>
3057    
3058            * wptGPG.cpp (get_gnupg_optfile): Support for gpg.conf instead
3059  2003-10-14  Timo Schulz  <[email protected]>          of the old name "options".
3060            * WinPT.cpp (WinMain): Try to repair broken home directories
3061          * wptKeyList.cpp (do_addkey): Add the case the secret key          in the registry. Thanks to Gustavo who reminded me of it.
3062          is stored on a smart card.          * wptKeyserver.cpp (check_hkp_response): Only copy the text
3063          (km_check_for_seckey): Take care of the new code.          between <p> and </p> when possible.
3064          * wptKeyManager.cpp (km_delete_keys): Extra warning when          * wptAgent.cpp: Re-activated the old code. Now the passphrase
3065          the secret key is stored on a card.          timer can be used.
3066          * wptKeyEditDlgs.cpp (subkey_list_init): Add the key cabilities  
3067          to the list view. Now the user can see if the key is useable  2002-12-14  Timo Schulz  <[email protected]>
3068          for: signing, certifying or encrypting.  
3069            * wptKeyManager.cpp (km_check_for_seckey): Ultimate doesn't mean
3070  2003-10-16  Timo Schulz  <[email protected]>          any longer there is also a secret key.
3071            (km_check_photo): New.
3072          * Changed GPGME interface for edit card. Now one context is          (km_complete_status_bar): New.
3073          used for all edit card operations.          * wptFileManager.cpp (fm_verify): Support for bad signatures.
3074          * wptCardDlg.cpp (card_edit_dlg_proc): Support for working          Set the sigmode if not set.
3075          and admin PIN. Changed gpgme interface.          * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Output a warning when
3076          (ask_pin): Renamed to..          the ownertrust of a non-valid (not signed) key is changed.
3077          (do_askpin): this. Provide more information about the card          * wptRegistry.cpp (expand_path): New. Use this code because it's
3078          and its holder.          much shorter.
3079          (do_proc_card_cmds): If no error, reset modify flags for  
3080          all controls. Show a short message that the operation ended.  2002-10-14  Timo Schulz  <[email protected]>
3081          * wptCardPCSC.c (pcsc_free_readers): New.  
3082          (pcsc_scan_readers): New.          * wptKeyserver.c: Replaced all strdup's with m_strdup and free
3083          (pcsc_get_reader): New.          with free_if_alloc.
3084          (pcsc_get_card_status): New.          (ldap_recvkey): Fill with life. We use the GPG plugin to avoid
3085            all the LDAP overhead.
3086    
3087  2003-10-17  Timo Schulz  <[email protected]>  2002-10-13  Timo Schulz  <[email protected]>
3088    
3089          * wptGPGME.cpp (keycache_init): Do not use secring the first time.          * wptKeyManager.cpp (km_file_import): Alloc buffer, it's not static
3090          * wptKeySignDlg.cpp (keysign_dlg_proc): Make sure only the short          any longer.
3091          keyid will be displayed.          
3092    2002-10-31  Timo Schulz  <[email protected]>
3093  2003-10-18  Timo Schulz  <[email protected]>  
3094            * wptKeyManager.cpp (km_update_default_key_str): Fixed '0x' handling.
3095          * wptCardDlg.cpp (card_keygen_dlg_proc): New.          Thanks to Gustavo.
3096          (do_askpin): Handle the case there is no card.          * wptKeylist.cpp (add_key): Now we only use find_secret_key to detect
3097          (card_edit_dlg_proc): Add 'New Keys' feature.          whether it's a key pair or not.
3098          (card_changepin_dlg_proc): Implemented.          * Callback struct into KEY so we can modify the values in the background.
3099          * WinPT.cpp (WinMain): Ability to start the card manager directly.          * wptKeyPropsDlg.cpp (change_ownertrust): New.
3100          * wptMainProc.cpp (smartcard_init): Global stuff to init the reader  
3101          driver and the inserted card.  2002-10-30  Timo Schulz  <[email protected]>
3102    
3103  2003-10-19  Timo Schulz  <[email protected]>          * wptLDAP.cpp, wptLDAP.h: Removed. The plan is to use the gpgkey_xxx.exe
3104            LDAP plugin for this purpose.
3105          * wptPINDlg.cpp (pin_cb_dlg_proc): Support to store the admin and          * wptMainproc.cpp (winpt_main_proc): Removed all LDAP stubs.
3106          the working PIN.          * wldap32.lib is now not longer needed.
3107          wptCardDlg.cpp (free_pincb): New.          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Copy userid to clipboard.
3108          (card_keygen_dlg_proc): Pin callback implemented.          * Updated the resource file.
3109          Simple check for the e-mail address.          * wptFileManager.cpp (fm_parse_command_line): Implemented the stuff
3110          (card_edit_dlg_proc): End the dialog if no changes were made.          for 'Decrypt', 'Verify', 'Import'.
3111    
3112          * Expanded GPGME passphrase interface to work both with PINs  2002-10-15  Timo Schulz  <[email protected]>
3113          and passphrases.  
3114            * Changed all s(n)printf -> msg_box constructs to log_box.
3115  2003-10-21  Timo Schulz  <[email protected]>  
3116    2002-10-13  Timo Schulz  <[email protected]>
3117          * wptClipDecryptDlg.cpp (clip_decrypt_dlg): If the passphrase  
3118          was wrong, delete the cache item (if available).          * wptKeylist.cpp (get_key_expire_date): New.
3119          * wptClipSignDlg.cpp (clip_sign_dlg): Likewise.          * wptKeyPropsDlg.cpp (key_props_dlg_proc): Use it here.
3120          * wptClipSignEncDlg.cpp (clip_signenc_dlg): Likewise.  
3121          * wptPassphraseCB.cpp (set_gpg_passphrase_cb): Set 'is_card'          * Removed global keycache from GPGME. It's a bad style to mix
3122          flag to zero.          general and specific interfaces.
3123            
3124            * wptGPGME.cpp (get_pubkey): New. Used to hide keycache implementation
3125  2003-10-21  Timo Schulz  <[email protected]>          details. Useful to replace it later.
3126            (get_seckey): Ditto.
3127          * wptClipDecryptDlg.cpp (list_recipients): New.          (keycache_reload): Moved from the GPGME library.
3128          (algo_from_list): New.          (keycache_release): New.
3129          (clip_decrypt_dlg): New concept to list all recipients.          (keycache_init): New.
3130          * wptFileManager.cpp (fm_list_keys): New.          (keycache_set_reload): New.
3131          (fm_decrypt): Same changes as for the clipboard decryption.          (keycache_get_reload): New.
3132            (keycache_get_ctx): New.
3133  2003-10-23  Timo Schulz  <[email protected]>  
3134            * wptSigList.cpp (siglist_add_key): Use the new code.
3135          * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): Show GPG output          (siglist_build): Ditto.
3136          if the error is unknown.  
3137          (clip_sign_dlg_proc): Likewise.  
3138          (clip_signenc_dlg_proc): Likewise.  2002-10-10  Timo Schulz  <[email protected]>
3139          (clip_import_dlg_proc): Likewise.  
3140            * wptW32API.cpp (get_filename_dlg): Added default filename parameter.
3141  2003-10-24  Timo Schulz  <[email protected]>          Changed all callers.
3142            * wptKeyManagerDlg.cpp (keymisc_dlg_proc): Adjusted the code for the
3143          * Implemented a better logging system. If the return code          new get_filename_dlg.
3144          of GPG is != 0 and the error is not known, display the errors          * wptFileManager.cpp (fm_export): Likewise.
3145          from stderr.          * wptClipDecryptDlg (clip_decrypt_dlg): Modified the verify message box.
3146            * wptKeySignDlg.cpp (keysign_dlg_proc): Changed the code for edit-key.
3147          * wptGPGME.cpp (logging_cb): New.          Use signature class dialog.
3148            * wptKeyRevokeDlg.cpp (key_revoke_dlg_proc): Use the new code and the
3149  2003-10-26  Timo Schulz  <[email protected]>          keyid instead of the userid to avoid charset problems.
3150            (err_message): New.
3151          * wptClipDecryptDlg.cpp (clip_decrypt_dlg): Implement new logging.  
3152            * Moved all wipe specific code (random, rmd160) to the DLL so we can
3153          * Changed the code at several other places to support the new logging          save some memory for the tray section.
3154          scheme.  
3155            * wptKeyRevokersDlg.cpp (revokelist_build): New.
3156            (revokelist_init): New.
3157  2003-10-29  Timo Schulz  <[email protected]>          (key_revokers_dlg_proc): New.
3158    
3159          * wptKeyEditDlgs.cpp: New logging scheme. Changed all callers.          * wptKeyPropsDlg.cpp (key_props_dlg_proc): Use the designated revoker
3160            code here when available.
3161          * Create a new interface for an interactive card callback. GPG  
3162          provides card control status messages if the wrong card is inserted.  2002-09-25  Timo Schulz  <[email protected]>
3163    
3164          * wptCardManager.cpp (card_cb_dlg_proc): New.          * wptClipboard.cpp (clip_parse_pgp_id): Add a flag when the text
3165          (card_callback): New.          is dash escaped. This is useful for keys to avoid errors.
3166            * wptKeyManager.cpp (extract_dash_escaped_key): New. Extract an
3167          * wptCardPCSC.cpp (pcsc_loadlib): Use some 'A' to declare we use          OpenPGP key from the clipboard which is dash escaped.
3168          the ASCII functions and not the Unicode function names. Thanks to          (km_clip_import): Use the new code here.
3169          Werner for pointing this out.  
3170    2002-09-23  Timo Schulz  <[email protected]>
3171          * wptPassphraseCB.cpp (passphrase_cb): Better card interface. Now the  
3172          serial card number is shown to help the user to find the right card.          * wptParser.cpp (add_multi_option): Support for values with more ' 's
3173            and skip the ' ' after the name.
3174          * wptClipSignDlg.cpp (clip_sign_dlg_proc): New logging scheme.          (modify_entry): New.
3175            * wptGPG.cpp (gnupg_save_options): Removed.
3176  2003-10-02  Timo Schulz  <[email protected]>          (gnupg_load_options): Removed.
3177            (gnupg_release_options): Removed.
3178          * Prepare test release.          * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Use the new code.
3179          * wptGPGCmds.h: New from GPG 1.3.4-cvs.  
3180    2002-09-17  Timo Schulz  <[email protected]>
3181  2003-11-13  Timo Schulz  <[email protected]>  
3182            * winpt.cpp (WinMain): Use make_filename and no static buffer.
3183          * Clarify pin names. Now all PIN's are labeled 'Admin' or 'User'.          Modified for the new gnupg interface.
3184          * wptPINDlg.cpp (pin_cb_dlg_proc): Length check for the PINs.          * wptFile.cpp (make_filename): New.
3185          Thanks to Achim.          * wptGpgCmds.h: New from GPG 1.1.92
3186          * Change PIN interface. Now it is easier when an operation requires          * wptGPG.cpp (gnupg_import_keyrings): Use dynamic buffers
3187          both PINs.          and make_filename.
3188          * wptCardDlg.cpp (do_proc_card_cmds): Now GPG requires both PINs          * wptKeygenDlg.cpp (ask_for_backup): Use new gpg code and
3189          to change card attributes. Do not ask me why, but now the user          make_filename instead of static buffers.
3190          needs to enter 2 PINs.          * wptKeyCacheDlg.cpp (keycache_dlg_proc): Likewise.
3191            * wptParser.cpp: Changed to new allocation instead of malloc.
3192          Name parts were swapped, now they have the right order again.          * wptGPGOptSkel.h: Updated from GPG 1.1.92
3193            * wptRegistry.cpp (get_reg_entry): Expand %s like registry strings.
3194  2003-11-14  Timo Schulz  <[email protected]>  
3195    2002-09-13  Timo Schulz  <[email protected]>
3196          * wptCardDlg.cpp (card_edit_dlg_proc): Release the second PIN.  
3197            * wptKeyManager.cpp (km_show_photo): Use a const buffer for the
3198  2003-11-28  Timo Schulz  <[email protected]>          image and do NOT free it.
3199            * wptKeyUidDlg.cpp (keyuid_dlg_proc): Implement "revoke" function.
3200          * Remove all support for ElGamal sign+encrypt keys.          (find_user_id): Use keyid to find the key. Changed all callers.
3201    
3202          There is a flaw in GPG which makes all such keys useable and          * Removed global gpg_version variable. Now we also support GPG 1.1.9x
3203          they are comprised even if one signature they made is accessable.          so we don't need to check this after the start again.
3204          And due to the fact the key is self signed, such a sig is always  
3205          available for the public.  2002-09-12  Timo Schulz  <[email protected]>
3206    
3207          We warn the user at startup if such keys were found!          * wptPasswdDlg.cpp (passwd_dlg_proc): Implement the "Hide Typing" fature.
3208            * wptKeyManagerDlg.cpp (keymisc_dlg_proc): Off by one bug for secret
3209          * wptMainProc.cpp (elgamal_warn_dlg_proc): New.          key export.
3210          * wptGPGME.cpp (count_insecure_elgkeys): New.          * wptKeyManager.cpp (fm_encrypt): Use the new GPG status messages to
3211          * WinPT (WinMain): Use it here.          check if the encryption failed.
3212            (km_show_photo): Fixed offset calculation.
3213  2003-11-29  Timo Schulz  <[email protected]>          Use keyid as filename and delete the tempfile after use.
3214            * wptFile.cpp (init_file_lock): Use dynamic buffer.
3215          * wptMAPI.cpp (mapi_init): New.          (release_file_lock): Free this buffer.
3216          (mapi_deinit): New.          * wptFileManager.cpp (quote_filename): Removed.
3217          (mapi_send_pubkey): New.          (quote_file): New. Use dynamic buffers.
3218          * wptKeyManager.cpp (km_send_to_mail_recipient): New.          (fm_import, fm_decrypt, fm_encrypt, fm_sym_encrypt, fm_export):
3219          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Support          Use it here.
3220          to send the public key via MAPI to a recipient.          * wptFileStatDlg.cpp (do_list_packets): Do not cache FD.
3221          * wptKeySignDlg.cpp (do_fill_seckeylist): Make sure we rewind          Initalize packet at the begin and during the loop.
3222          the secret key cache so it's not at the end.          * wptFileManager.cpp: Replaced all static memory handling with
3223          (keysign_dlg_proc): Issue a warning when no secret key was          dynamic routines.
3224          found which could be used for signing the key.          * wptKeyCacheDlg.cpp (key_cache_dlg): Remove obsolete ownertrust
3225          * wptKeylist.cpp (do_addkey): Never add an Elgamal sign+encrypt key.          functions.
3226          * wptKeySignDlg.cpp (do_fill_seckeylist): Likewise.          * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Ditto.        
3227    
3228  2003-12-10  Timo Schulz  <[email protected]>  2002-09-10  Timo Schulz  <[email protected]>
3229    
3230          * GPGME support to change key preferences.          * wptFileManager.cpp (fm_get_file_type): Disable FD cache.
3231          * wptKeyeditSetPrefDlg.cpp (keyedit_setpref_dlg_proc): New.          (fm_decrypt): Only cut off the extension if it belong to GPG.
3232          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Use the new feature here.          Added user ID to the box if the file was signed.
3233            Ask for the filename if the name has no valid GPG extension.
3234    
3235  2003-12-14  Timo Schulz  <[email protected]>  2002-09-09  Timo Schulz  <[email protected]>
3236    
3237          * wptKeyeditSetPrefDlg.cpp (get_userid_preflist): New.          * wptKeyManagerDlg.cpp (keymisc_dlg_proc): Improved code for
3238          * wptKeyEditDlgs.cpp (keyedit_main_dlg_proc): Support for updpref.          the privat key (export).
3239          (do_editkey_setpref): Implement updpref command.  
3240    2002-09-08  Timo Schulz  <[email protected]>
3241    
3242  2003-12-23  Timo Schulz  <[email protected]>          * wptKeygenDlg.cpp (ask_for_backup): Check if the copy process
3243            really succeeded.
3244          * wptKeyEditAddKEyDlg.cpp (keyedit_addsubkey_dlg_proc): Remove          (mbox): Alias for msg_box with fixed title to avoid long lines.
3245          ElGamal s+e support. Oops, this should be already done.          * wptKeyEditAddSubkeyDlg.cpp (keyedit_addsubkey_dlg_proc): Allow
3246          * wptGPGME.cpp (keycache_init): Sync both key caches. In other          to generate keys with a length til 4096 bits.
3247          words transfer some flags from the sec-cache to the pub-cache.          * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): Check for
3248          * wptKeySignDlg.cpp (key_sign_dlg_proc): A workaround for the          invalid recipients and print out the reasons.
3249          key sign procedure. If it is already signed, the process          * wptKeylist.cpp (keylist_add_to_recipients): Improved error message
3250          sometimes hangs.          and corrected the validity checking.
3251    
3252  2003-12-30  Timo Schulz  <[email protected]>  2002-09-07  Timo Schulz  <[email protected]>
3253    
3254          * fixed the GPG edit-key commands sign and addrevoker.          * wptClipVerifyDlg.cpp (clip_verify_dlg_proc):
3255            Print notation data when available.
3256  2003-12-31  Timo Schulz  <[email protected]>          Show if the signature is expired or not.
3257    
3258          * wptKeyEditDlgs.cpp (keyedit_addsubkey_dlg_proc): Do not sort          * wptKeyManagerDlg.cpp (keymisc_dlg_proc): Added the show photo
3259          the list otherwise the index is wrong.          command to the context menu.
3260          * wptKeySignDlg.cpp (keysign_dlg_proc): Add the ability to set  
3261          a signature expire date.          * wptKeygenDlg.cpp (keygen_dlg_proc): New default keysize is 1792.
3262            This is 256 bits more than the old size. Hopefully it's enough
3263  2004-01-03  Timo Schulz  <[email protected]>          security to protect against the most enemies ;-).
3264    
3265          * wptClipImportDlg.cpp (clip_import_dlg_proc): automatically allow  2002-09-04  Timo Schulz  <[email protected]>
3266          to import secret keys.  
3267            * wptKeyManager.cpp (km_check_key_status): Parse new fields.
3268  2004-01-04  Timo Schulz  <[email protected]>  
3269    2002-09-03  Timo Schulz  <[email protected]>
3270          * wptImageList.{cpp,h}: New. Contributed by Andreas Jobs.  
3271          * wptKeylist.cpp (keylist_cmp_cb): More patches from Andreas          Removed all OpenCDK code from PTD. The code is not tested very
3272          and minor changes.          well and it might contain some errors. Now we used a stripped down
3273          * wptListView.cpp (listview_sort_items): Likewise.          version of GnuPG code. This has two advantages. First the code is
3274          * wptKeyManager.cpp (key_manager_dlg_proc): Likewise.          stable and second we can easier port other parts to native GPG code.
3275          (regist_sep_wnd): Factored out some code.  
3276            * wptFileManager.cpp (fm_get_file_type): Use native GPG code.
3277  2004-01-22  Timo Schulz  <[email protected]>          * wptKeyCacheDlg.cpp (keycache_dlg_proc): Add photos from the
3278            keyring when present to the keycache.
3279          * Remove all internal card reader config. It's up to the          * wptKeyManager.cpp (km_show_photo): Fixes to work again with the
3280          user to do this. It would be too error proune to offer it.          modified code.
3281          * wptCard.h: Removed all card driver stuff.          (km_check_for_seckey): Check substrings of the value because we
3282          * wptPinDLG.cpp (pin_cb_dlg): Use better names to differ          don't use '**' values any longer.
3283          between the admin and the user (normal) PIN.          * wptFileStat.cpp (do_list_packets): New. Adapted from the old code.
3284            (file_stat_dlg_proc): Uses the new code.
3285  2004-01-23  Timo Schulz  <[email protected]>  
3286    2002-09-02  Timo Schulz  <[email protected]>
3287          * wptCardDlg.cpp (check_pin_len): New. Check if the  
3288          PIN is long enough and give an appropriate error.          * wptKeyManager.cpp (km_privkey_export): Check return codes and
3289          (card_changepin_dlg_proc): Use the new check function.          some types has been changed.
3290            (km_file_export): Likewise.
3291  2004-01-25  Timo Schulz  <[email protected]>  
3292    2002-09-01  Timo Schulz  <[email protected]>
3293          * WinPT.cpp (WinMain): Silently die when an instance is already  
3294          running. Do not confuse the user with a message. Suggested by          * wptFirstRunDlg.cpp (get_setup_choice): New. Returns the choice
3295          Sebastian.          of the dialog.
3296          * wptKeyManager.cpp (delete_keys_from_cache): New.          * WinPT.cpp (WinMain): Use it here. Reworded the error message.
3297          (km_delete_keys): Use it here. Thanks to Achim.          * wptGPG.cpp (gpg_import_keyrings): New.
3298            Let the user chose the keyrings and then they are copied to the
3299  2004-01-28  Timo Schulz  <[email protected]>          homedir. After the procedure, the key cache will be reloaded.
3300            * wptKeyManager.cpp (km_delete_keys): New delete confirmation messages.
3301          * wptCardDlg.cpp (card_keygen_dlg_proc): A info is issued          * wptSigClassDlg.cpp (sig_class_dlg_proc): New.
3302          if keys on the card exist but the user does not said overwrite.          (get_sig_class_choice): New.
3303            * wptKeySignDlg.cpp (get_printable_fpr): New. More human readable
3304          Make sure the expire date is not in the past.          fingerprint.
3305            (keysign_dlg_proc): Added new value for the GPG callback to handle
3306          * wptMainProc.cpp (winpt_main_proc): Avoid to release the file          the signature class.
3307          lock twice. Not sure if this fixes some other problems but it          * wptKeyUIDDlg.cpp (find_user_id): New. Find the index of the
3308          was definitely a bug.          userID by calling edit-key with colons.
3309            (keyuid_dlg_proc): Use it here.
3310          * wptMapi.cpp (mapi_init): Make sure all function ptrs are  
3311          initialized otherwise bail out.  2002-08-31  Timo Schulz  <[email protected]>
3312          (mapi_send_message): New. Interface to allow to send an  
3313          encrypted mail with zero ore more encrypted attachments.          * wptGPG.cpp (gpg_check_homedir): Some fixes for the return codes.
3314          (secure_attachment): New.          (check_homedir): Ask the user whether to create the directory.
3315          (parse_recipients): New.          * wptKeysigDlg.cpp (keysig_dlg_proc): Fixed keyid. Now it works
3316            to retrieve missing keys from a HKP server.
3317  2004-02-02  Timo Schulz  <[email protected]>          (recv_missing_keys): Likewise.
3318            * wptPassphraseCB.cpp (passphrase_callback_proc):
3319          * wptCardDlg.cpp (card_keygen_dlg_proc): Make sure the name          Implemented     the "Hide Typing" feature.
3320          is long enough. The same check for the mail address.          (hide_typing): New.
3321            * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Improved error messages.
3322          Thanks to Achim.          * wptClipDecryptDlg.cpp (clip_decrypt_dlg): Improved MDC handling.
3323            Due to some attacks a MDC error is treated as a fatal error and a
3324  2004-02-03  Timo Schulz  <[email protected]>          possible security risk.
3325            * wptClipImportDlg.cpp (print_import_status): Use a dialog instead
3326          * WinPT.cpp (check_crypto_engine): New. Factor out common code.          of a silly message box. Furthermore the user gets more information
3327          (WinMain): Check the crypto engine after the first start.          about the import procedure.
3328            * wptKeyImportStatusDlg.cpp (import_status_dlg_proc): New.
3329          * wptRegistry.cpp (set_reg_winpt_prefs): Make sure an error is          * wptFileManager.cpp (fm_import): Report invalid user ID's.
3330          issued if the values could not stored. Revamped the core.          (fm_verify): Try to guess the data name for detached signatures
3331            before we bother the user. When it's found, use it.
3332          * Removed the last appearance of the GPG agent support.          * wptKeyManager.cpp (km_file_import): Ditto.
3333    
3334          * wptGPG.cpp (init_gnupg_table): Do not use static buffers.  2002-08-28  Timo Schulz  <[email protected]>
3335          (free_gnupg_table): Free memory.  
3336            * wptClipboard.cpp (clip_parse_pgp_id): Support for PGP 2.6.x types.
3337          * wptClipImportDlg.cpp (clip_import_dlg_proc): Make sure the          * wptFileMananger.cpp (fm_check_armor_type): Ditto.
3338          ctx pointer get malloced and set the contents to zero.  
3339    
3340    2002-08-26  Timo Schulz  <[email protected]>
3341  2004-02-04  Timo Schulz  <[email protected]>  
3342            * wptTypes.h (free_if_alloc, CHECK_BOUND): New.
3343          * wptRegistry.cpp (get_reg_winpt_prefs): Revamped the core.          * wptClipEditDlg.cpp (gpgopt_dlg_proc): Use free_if_alloc to make sure
3344            the memory is really released. Some strict checks for return values.
3345  2004-02-05  Timo Schulz  <[email protected]>          Ident file.
3346    
3347          * wptRegistry.cpp (set_reg_winpt_prefs): Forget to handle          * wptAboutDlg.cpp: Ditto. (ident)
3348          CMD_DISHOTKEYS. Thanks to the user who reminded me.          * wptGPGAboutDlg.cpp: Ditto.
3349          * wptMainProc.cpp (spawn_cryptdisk): New interface to          * wptClipDecryptDlg.cpp: Ditto.
3350          the Cryptdisk application.          (clip_decrypt_dlg): Stricter return value checkings.
3351            Avoid one indent level.
3352  2004-02-08  Timo Schulz  <[email protected]>  
3353            * wptImportList.cpp (implist_add_key): More strict return value
3354          * wptCryptdisk.{cpp,h}: New. Support for the extended          checking.
3355          filedisk application.          * wptKeylist.cpp (keylist_cmp_cb): Fixed a typo.
3356          * wptMainProc.cpp (winpt_main_proc): Likewise.          (add_key): New key status system.
3357          * WinPT.cpp (WinMain): Make sure the new PTD lib is installed.          (keylist_get_keyflags): New.
3358            (keylist_enum_recipients): Simplified and use the new key flags.
3359  2004-02-09  Timo Schulz  <[email protected]>  
3360            * wptSiglist.cpp (siglist_add_key): Fix possible overflows.
3361          * wptCryptdisk.cpp (cryptdisk_umount_dlg_proc): New.          (verlist_add_sig_log): More stricter checks.
3362          (do_reaping): New. Release the list if all items are 'expired'.  
3363          (cryptdisk_mount_dlg_proc): New.          * wptRegistry.cpp (get_reg_winpt_prefs): Fixed possible bug.
3364          (init_drives): New.  
3365          * wptMainProc.cpp (cryptdisk_proc): Renamed from...  2002-06-16      Timo Schulz <[email protected]>
3366          (handle_cryptdisk): this. And filled with life.  
3367            Don't put the questions in the message box title bar.
3368  2004-02-12  Timo Schulz  <[email protected]>  
3369            * wptGPGPrefsDlg.cpp (gpg_prefs_dlg_proc): Only close FP if it
3370          * wptErrors.cpp: New error codes for the cryptdisk feature.          is really opened. Thanks to Nelson.
3371          * wptCryptdisk.cpp (do_dispatch): Better error handling.  
3372          (cryptdisk_mount_dlg_proc): Use it here.          * wptKeyProps.cpp (keyprops_dlg_proc): Use a more informative title
3373          (cryptdisk_umount_dlg_proc): Likewise.          for chaning the passphrase. Suggested by Ed.
3374          (init_drives): Use system list.  
3375    2002-06-07      Timo Schulz <[email protected]>
3376          Localized all strings.  
3377            * wptMainProc.cpp (winpt_main_proc): Support for sign & encrypt hotkeys.
3378  2004-02-17  Timo Schulz  <[email protected]>          * wptKeyManagerDlg.cpp: Refresh keys was added in the menu.
3379            * wptListView.cpp (listview_select_all): New.
3380          * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Also encrypt          * wptClipSignDlg.cpp (clip_sign_dlg_proc): Fixed the return code.
3381          to the signers key. Suggested by Alexander.  
3382          Use new keycache system, we use the public key part of the  2002-05-31      Timo Schulz <[email protected]>
3383          cache because it has all flags set.  
3384          * wptGPG.cpp (default_key_from_cache): Use new cache system.          * wptTrayPop.cpp: Revamped some parts of the code.
3385          * wptKeySignDlg.cpp (do_fill_seckeylist): Likewise.  
3386            Changed all status_box functions to show_msg. The advantage
3387            is that we only wait a fixed time and the user doesn't need
3388  2004-02-18  Timo Schulz  <[email protected]>          to hit the OK key. We should add  the time delay in the preferences.
3389    
3390          * Modify the cryptdisk code for crosscrypt 0.4.1.          * wptKeyManager.cpp (km_show_photo): New.
3391          * wptCryptDisk.cpp (do_mount): Add key algorithm param.  
3392    2002-05-30  Timo Schulz <[email protected]>
3393  2004-02-21  Timo Schulz  <[email protected]>  
3394            * wptFileManager.cpp (fm_verify): Corrected the handling
3395          * wptCryptdisk.cpp (cryptdisk_cleanup): New.          for detached RSA signatures.
3396          (is_nt4): Because my Platform-SDK is too old I need to load          (fm_add_sig_stat): Added support for short fingerprints.
3397          some prototypes dynamically.  
3398          (init_drives): Return the first useable drive letter if  2002-05-08      Timo Schulz <[email protected]>
3399          called with appropriate parameters.  
3400          * wptMainProc.cpp (winpt_main_proc): Use it here.          * wptKeyserver.cpp (kserver_change_proxy): Check the values.
3401            Thanks to njek for reporting it.
3402  2004-02-22  Timo Schulz  <[email protected]>  
3403    2002-05-07      Timo Schulz <[email protected]>
3404          * PTD: Cryptdisk seems to have problems with locking. Use  
3405          a forced flag to tell the code if it should bail out or          * wptGPG.cpp (check_gpg_engine): New.
3406          ignore locking errors.  
3407            * wptKeyCacheDlg.cpp (keycache_dlg_proc): Add GPG 1.0.6 compatible
3408          * wptCryptdisk.cpp (cryptdisk_umount_dlg_proc): Use new          routines.
3409          locking code.  
3410          (cryptdisk_new_dlg_proc): Adjust size of the volume.          * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Ditto.
3411    
3412  2004-02-24  Timo Schulz  <[email protected]>          * wptKeyEditOwnertrustDlg.cpp (keyedit_owerntrust_dlg_proc): Ditto.
3413    
3414          * WinPT.cpp (WinMain): Call a selftest check procedure to  2002-05-06      Timo Schulz <[email protected]>
3415          make sure all cryptographic code works as expected.  
3416            * wptClipEditDlg.cpp (clip_edit_dlg_proc): Change the wording of
3417  2004-02-25  Timo Schulz  <[email protected]>          the buttons.
3418    
3419          * wptKeyManagerDlg.cpp: Use consequently 'List Signatures' and  2002-05-05      Timo Schulz <[email protected]>
3420          do not mix the names in the different menus.  
3421            * Fixed problem with rev certs for imports stats.
3422          * wptSigList.cpp: Support to show the signature class.  
3423            * Cosmetical changes for the GPGME libraray.
3424          * wptKeyEditDlgs.cpp (keyedit_main_dlg_proc): Disable the combo  
3425          box when there is no secret key available.  2002-05-01      Timo Schulz <[email protected]>
3426    
3427          (do_init_keylist): Do not allow to use the owners key as a desig          * wptKeygenDlg.cpp (fill_keytype_box): New.
3428          revoker.          (keygen_dlg_proc): Use a combo box for various key types. With GPG 1.0.7
3429            there is full RSA support.
3430          * wptKeylist.cpp (get_key_trust): New.  
3431          (do_addkey): Use it here.          Now we use the new status code by GPG (INV_RECP, NO_RECP) to figure out
3432            what the problem was when no encryption was done.
3433  2004-02-26  Timo Schulz  <[email protected]>  
3434            * wptKeysignDlg.cpp (keysign_dlg_proc): Before we sign a key, we make
3435          * wptFileManagerDlg.cpp (file_encrypt_dlg_proc): Issue an error          sure it was not already signed (ALREADY_SIGNED).
3436          if no recipient was selected.  
3437            * wptKeyManagerDlg.cpp (keymisc_dlg_proc): Due to the new trust system,
3438          * wptFileManager.cpp (fm_parse_files): Make sure the progress dialog          now we also support to sign ultimate trusted keys.
3439          is destroyed. This fixes the bug that the dialog sometimes exist even  
3440          after the procedure ended.          * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Try to check if the button
3441            is checked and do not check it.
3442          * wptProgressDlg.cpp (progress_callback): Change the if-then-else  
3443          struct to prevent zombie dialogs.          * wptClipDecryptDlg.cpp (clip_decrypt_dlg_proc): New format for the verify
3444            box and now we also support the date of the signature.
3445          * wptKeyserver.cpp: Removed unused prototypes.  
3446            Applied Rich's spelling and grammer mistakes.
3447  2004-02-29  Timo Schulz  <[email protected]>          Fixed a lot of minor spelling mistakes and capital letters for dialogs.
3448    
3449          * wptFileManagerDlg.cpp (file_encrypt_dlg_proc): Support throw-keyid.  2002-04-30      Timo Schulz <[email protected]>
3450    
3451          * wptKeySignDlg.cpp (do_fill_seckeylist): Make sure we skip key itself          Merge ownertrust handling into the keycache. Now GPG outputs the
3452          so we are not allowing to sign ourself.          ownertrust in the key listing which means we can get the ownertrust
3453            value from the keycache.
3454          * wptSigList.cpp (siglist_add_key): Support for the signature  
3455          flags (local, non-revocably, ...).          (keymisc_dlg_proc): Add a button to rebuild the sig database cache.
3456            Please not that this is not the same as the key cache! The key cache
3457          * Key signing with GPG 1.2.x should work again. Hopefully.          will be updated when a new key was imported or a subkey was added/changed.
3458            The signature cache only affects the validity of the keys.
3459  2004-03-02  Timo Schulz  <[email protected]>  
3460            Removed the MyGPGME trustlist code. Now we can use the field in the key
3461          * wptGPG.cpp (check_keyring): Handle the case that the keyring          listing to determine the ownertrust (which makes things a lot of easier).
3462          is set in the gpg.conf file and the pubring.gpg file is zero bytes.  
3463    2002-04-29      Timo Schulz <[email protected]>
3464          (gnupg_backup_keyrings): Support backup of keyrings which were set  
3465          in gpg.conf. Thanks to the user who reminded me of this problem.          Adjustments for GPG 1.0.7
3466    
3467          (gnupg_check_file_ext): Make check not case sentensive.          * wptKeyEditDlg.cpp (keyedit_ownertrust_dlg_proc): Support ultimate trust
3468            and ask the user if he knows what he's doing.
3469          * (sfree_if_alloc): Overwrite the memory with zeros before freeing          * wptKeyManager.cpp
3470          it. This only works with c-strings! Use it everywhere we handle          (keylist_subclass_proc): Use double click to open the props.
3471          sentensive information (passphrases).          * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Allow the user even to modify a
3472            ultimate ownertrust value.
3473          * Try to improve the usability with better menu names and new          * wptKeyEditAddSubkeyDlg.cpp (keyedit_addsubkey_dlg_proc): Support for
3474          ordering.          new RSA keys.
3475    
3476          * wptKeyMangerDlg.cpp: Make the 'Trust' column sortable.  2002-04-28      Timo Schulz <[email protected]>
3477    
3478          * wptMainProc.cpp (winpt_main_proc): Removed GPG about dialog. Now          * wptRegistry.cpp (get_reg_winpt_prefs): New option for keylist mode.
3479          it is part of the WinPt about dialog. This way we can minimize the          (set_reg_winpt_prefs): Ditto.
3480          elements in the popup menu.          * wptPreferencesDlg.cpp (prefs_dlg_proc): Support for keylist mode option.
3481            (set_keylist_mode): New.
3482  2004-03-04  Timo Schulz  <[email protected]>  
3483            Implement minimal keylist mode. Suggested by Fabian.
3484          * wptKeyserver.cpp (finger_recvkey): Error if key was not found  
3485          or garbled.          * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): Implement it here.
3486            * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Ditto.
3487          * wptGPG.cpp (gpg_check_permissions): Take care of the entries          * wptKeylist.cpp (keylist_add_key): Ditto.
3488          in gpg.conf.          (keylist_load): Ditto.
3489            (keylist_build): Ditto.
3490          * wptFileManagerDlg.cpp (file_encrypt_dlg_proc): Support to select  
3491          the signer. Suggested by Sebastian.  2002-04-27      Timo Schulz <[email protected]>
3492    
3493          * wptKeylist.cpp (seclist_init): Moved from the clip dialog file to          * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Support for the  new dialog.
3494          this file.          * wptFileSaveDlg.cpp (file_save_dlg_proc): New.
3495          (seclist_free): Likewise.          * wptClipboard.cpp (clip_parse_pgp_id): use logical OR to concat the values.
3496          (seclist_select_key): Likewise.          * wptMainProc.cpp (clip_gpg_dlg): Use the new PGP id's.
3497            (currwnd_gpg_dlg): Ditto.
3498          * wptFileManager.cpp (fm_encrypt): Handle the case the signer was          
3499          already set.          Now it's possible to parse cleartext signatures which contains an
3500            encrypted message inside the body.
3501  2004-03-07  Timo Schulz  <[email protected]>  
3502            * wptTextInputDlg.cpp (load_file_contents): New.
3503          * wptGPG.cpp (get_gnupg_keyring): Special case because GPG creats          (text_input_dlg_proc): Support for choosing the data file.
3504          dummy keyrings with a size of zero in the homedir.  
3505            * wptFileManager.cpp (fm_verify): Support for detached signatures.
3506          (gpg_check_permissions): Check for read-only keyrings and add code          (fm_parse_files): Ditto.
3507          for this case.  
3508    
3509          This problem fixes a lof of other problems related to the OpenPGP  2002-04-26      Timo Schulz <[email protected]>
3510          parsing stuff for the key cache.  
3511            * wptKeyUidDlg.cpp: Fixed a typo. Kudos to Dugan Chen.
3512          * WinPT.cpp (check_crypto_engine): Store the GPG version for later use.          * wptKeyUidDlg.cpp: Ditto.
3513    
3514  2004-03-08  Timo Schulz  <[email protected]>  2002-04-25      Timo Schulz <[email protected]>
3515    
3516          * wptGPG.cpp (gnupg_import_keyrings): cleanups.          * wptImplist.cpp (implist_add_key): Catch possible segfault.
3517            * wptVerifyList.cpp (verlist_add_sig): Ditto.
3518          * wptUTF8.c (utf8_to_wincp): New. Directly convert UTF-8 to Windows          * wptKeyManager.cpp (km_check_for_seckey): Modified for GPG 1.0.7.
3519          CP.          * wptKeylist.cpp (find_secret_key): New.
3520          (wincp_to_utf8): Likewise.          (add_key): Use it here.
3521          (conv_charset): Now internal and static.          (keylist_add_key): And here.
3522    
3523          * wptUTF8.h: New prototypes and remove the old prototypes.          * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Fixed a bug that prevent
3524            to fetch the key.
3525          * WinPT.cpp (WinMain): Destroy the windows handle in case of an error.  
3526    2002-04-24      Timo Schulz <[email protected]>
3527    
3528  2004-03-11  Timo Schulz  <[email protected]>          * wptKeyManagerDlg.cpp (key_misc_dlg_proc): Support to maximize windows.
3529            
3530          * The DLL is now complety C-source.          Changed the way to modify the "Version:" string.
3531    
3532  2004-03-15  Timo Schulz  <[email protected]>          * wptKeyserver.cpp (add_node): New.
3533            (kserver_change_proxy): New.
3534          * Decrypt list box has now a vertical scroll bar.          (kserver_read_config): New.
3535            (kserver_write_config): New.    
3536  2004-05-14  Timo Schulz  <[email protected]>          (kserver_cfgfile_release): New.
3537            (proxy_release): New.
3538          * WinPT.cpp (check_crypto_engine): Due to some  
3539          internal  GPG changes the min. version for smart card          * wptProxySettingsDlg.cpp (read_proxy): New.
3540          support is now 1.3.6.          * wptFileStatDlg.cpp (file_stat_dlg_proc): New.
3541            * wptFileManager.cpp (fm_list): New.
3542          * wptProxySettingsDlg.cpp (read_proxy): Correct prefix          (fm_parse_files): Support the new list command.
3543          handling. Thanks to the folks who reported this via SF.net.  
3544    2002-04-23      Timo Schulz <[email protected]>
3545          * wptRegistry.cpp (get_reg_winpt_prefs): Corrected enum ids.  
3546          Thanks to the folks on winpt-users who reported it.          * wptRFC2440.cpp: Removed. We now use the OpenCDK package.
3547            * wptFileManager.cpp (fm_get_file_type): Removed the old RFC2440 code.
3548          * wptPreferencesDlg.cpp (prefs_dlg_proc): Fix code in case of          (fm_encrypt): Modified code to allow sign & encrypt.
3549          the hotkeys are disabled.          (fm_parse_file): Ditto.
3550            (fm_decrypt): Support for checking signatures.
3551          * wptKeylist.cpp (do_addkey): Broken ElGamal dection, fixed.          * wptFileManagerDlg.cpp (file_manager_dlg_proc): Ditto.
3552    
3553          * wptFileManager.cpp (fm_get_file_type): Do not parse the entire  2002-04-19      Timo Schulz <[email protected]>
3554          file if the size is >= 256MB.  
3555            * wptImplist.cpp (implist_load): Support for the advanced PGP parser code.
3556  2004-05-31  Timo Schulz  <[email protected]>  
3557    2002-04-05      Timo Schulz <[email protected]>
3558          * wptFileVerifyDlg.cpp (file_verify_dlg_proc): Implement the  
3559          'X' close button. Noted by a friendly user.          * wptSigList.cpp (siglist_add_key): Added UTF8 support. Thanks to Scire.
3560                    * wptKeyUidDlg.cpp (keyuid_dlg_proc): Ditto.
3561          Disable 'Save' button.          * wptKeySignDlg.cpp (keysign_dlg_proc): Ditto.
3562            * wptKeyAddUidDlg.cpp (keyedit_adduid_dlg_proc): Ditto.
3563          * wptMainProc.cpp (cleanup_tmp_files): Delete all related temp files.  
3564    2002-03-31      Timo Schulz <[email protected]>
3565          * wptFileManager.cpp (fm_set_status): Do not use the data file name  
3566          for signatures but keep the original file name.          * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Ask if the user wants to
3567            select the key used for signing.
3568          (fm_verify_pasted_detsig): Try to verify detached signatures from          * wptSeclistDlg.cpp (seclist_dlg_proc): New. Dialog for secret selecting.
3569          the clipboard.          * wptFilePrefsDlg.cpp (file_prefs_dlg): Fixes for the combo box ;-).
3570            * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Reload the keycache after
3571  2004-06-02  Timo Schulz  <[email protected]>          fetching keys via HKP and try to update the Gpgmekey inside.
3572            * wptVerifyList.cpp (verlist_add_sig): Check if the key context was
3573          * wptClipEditDlg.cpp (clip_edit_dlg_proc): Do not issue an error          set inside the signature. Fixes some segfaults related to the HKP key
3574          if there is no clipboard data.          fetching during verification. Thanks to Julian. And force to use UTF8
3575            for user ID's.
3576          Release memory in case of an error.          * wptClipSignDlg.cpp (one_key_proc): If only one secret exists,
3577            prevent that the dialog is loaded and ask for the passphrase directly.
3578          * wptKeyManager.cpp (keylist_cmp_cb): Allow to sort by algorithm.  
3579    
3580          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Likewise.  2002-03-29      Timo Schulz <[email protected]>
3581    
3582            * wptGPG.cpp (create_groupdb): Only close the file handling if it
3583  2004-06-08  Timo Schulz  <[email protected]>          really exists. Thanks to Mark.
3584            (gpg_check_homedir): Applied the patch. Now we're a little stricter
3585          * wptInet.cpp: New.          about the homedir checks.
3586          * wptKeyManagerDlg.cpp (key_manager_dlg_proc): Support for http          (check_homedir): Fixed a possible memory leak.
3587          transfers.          * WinPT.cpp (WinMain): Check the homedir functions to exit the program
3588          * wptKeyManager.cpp (km_http_import): New.          if      we've found some problems.
3589            * wptErrors.cpp (winpt_strerror): New value if a directory could not
3590            created.
3591  2004-06-12  Timo Schulz  <[email protected]>          * wptMainProc (winpt_main_proc): Use new code for the current window mode.
3592            * wptCurrWnd.cpp (get_curr_wnd): Ditto.
3593          * wptInet.cpp: Updated.          (get_window_contents): Always set focus to the current window.
3594          * wptKeyManager.cpp (km_http_import): Use http_send_request2() to  
3595          parse the URL.  2002-03-22      Timo Schulz <[email protected]>
3596          * wptCommonDlg.cpp (http_file_dlg_proc): New.  
3597          (get_http_file_dlg): New.          * wptMainProc.cpp (currwnd_gpg_dlg): If the viewer is used, doesn't
3598            set window contents for some commands.
3599  2004-06-19  Timo Schulz  <[email protected]>          (winpt_main_proc): Use the code here.
3600            * wptKeygenDlg.cpp (keygen_dlg_proc): Allow to generate keys > 2048 bits.
3601          * wptInet.cpp: Renamed to ...          * wptProxySettingsDlg.cpp: (keyserver_proxy_dlg_proc): New.
3602          * wptHttp.c: ... this.          * wptKeyserverDlg.cpp (keyserver_dlg_proc): Use the proxy dialog here.
3603          * wptKeyManager.cpp (km_http_import): Release 'p' not too early.          * wptKeyserver.cpp (kserver_load_conf): Fixed malformed strings.
3604          * WinPT.cpp (WinMain): If there is a problem with the homedir,  
3605          jump to the first start settings.  2002-03-02      Timo Schulz <[email protected]>
3606    
3607  2004-07-11  Timo Schulz  <[email protected]>          * Use capital letters in the main menus and applied Patricks spelling
3608            corrections.
3609          * Bug fix for the validity revoked status. Now it is 'revoked'  
3610          and not 'unknown' any longer.          * wptClipDecryptDlg.cpp (clip_decrypt_dlg): keyID is a string
3611            not an integer. Thanks to scrumpy.      
3612          * Feature to disable encryption. This might be useful for filetypes          * wptWipeFile.cpp (rename_unlink): Use '\' instead of '/'.
3613          GPG does not recognize as compress (movies, ...).          (overwrite): Some bugfixes to set the pointer to the begin of the file.
3614            * wptVerlist.cpp (verlist_build): New keyID column.
3615          * wptFileManager.cpp (fm_get_file_type): Skip packet detction if          (verlist_add_sig): Use it here.
3616          the file is large and it has no openpgp extension.  
3617    2002-03-01      Timo Schulz <[email protected]>
3618  2004-07-12  Timo Schulz <[email protected]>  
3619            * wptWipeFile: Replaced all low level I/O functions with W32 API
3620          * wptRegistry.cpp: Support for disable compression of multi-media files.          functions. And support for more wiping modes. I don't know to
3621          (set_reg_winpt_single): New.          support all, but those makes sense for me:
3622          (get_reg_winpt_single): New.          1. Simple (2 random passes)
3623            2. DoD (as described in the standard)
3624          * wptFileManager.cpp (is_multi_media): New.          3. Peter Gutmanns method (from the paper)
3625          (fm_encrypt): Disable compression of multi-media files.  
3626          (fm_state_new): Set comment to indicate armored files were generated  
3627          by WinPT. This is a replacement due to the fact the WinPT string is not  2002-02-28      Timo Schulz <[email protected]>
3628          added in the 'Version' for larger files.  
3629            * wptImplist.cpp (implist_add_key): UTF8 support.
3630          * WinPT.cpp (WinMain): Extract the loadimage.exe from the DLL if not found.          Handle invalid userID's.
3631            * wptPassphraseCB.cpp (parse_gpg_description): UTF8 support.
3632  2004-07-13  Timo Schulz  <[email protected]>          (passphrase_callback_proc): Ditto.
3633    
3634          * wptFileManager.cpp (fm_assume_onepass_sig): New.  
3635          Thanks to Vedaal who found out that armored one-pass sigs are not  2002-02-23      Timo Schulz     <[email protected]>
3636          correctly recognized.  
3637            * wptListview.cpp (listview_del_items): New.
3638          (ask_filename): New.          * wptKeyManager.cpp (km_delete_keys): Use it here.
3639          Again thanks to Vedaal who suggested to ask for a new output name          * wptKeygenDlg.cpp (keygen_dlg_proc): UTF8 support.
3640          for the case the user does not want to overwrite the file.          * wptKeylist.cpp (add_key): UTF8 support.
3641    
3642          (fm_encrypt): Use it here.  2002-02-08      Timo Schulz <[email protected]>
3643          (fm_decrypt): Likewise.  
3644          (fm_sign): Likewise.          * wptNLS.c: Now it's C-source because GPGME needs gettext too.
3645            (stpcpy): Makes it static.
3646          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): New context menu entry          * errors.c: localize all error strings.
3647          to set secret keys to ultimate trust.            * WinPT.cpp (get_gettext_lang): Move the code in this file because
3648            we can't use it in plain C.
3649          * wptKeyManager.cpp (km_check_for_seckey): Optionally return if the  
3650          key has ultimate trust.  2002-02-05      Timo Schulz <[email protected]>
3651          (km_set_implicit_trust): New.  
3652            * wptGPG.cpp (gpg_save_options): Catch the case when the options file
3653  2004-07-27  Timo Schulz  <[email protected]>          exist but it has a length of zero.
3654            (gpg_display_error): Print out the data from the GPG stderr
3655          * wptKeyManagerDlgProc.cpp (keymanager_dlg_proc): Set the new          (when available).
3656          value for the ownertrust.          * w32-util.c (_gpgme_get_gpg_optfile): Check if the file exists and if
3657            not, return NULL.
3658          * wptKeyManager.cpp (get_key_trust): Make it public.          * wptKeyManagerDlg.cpp (keymisc_dlg_proc): Add support to export secret
3659          (get_key_trust_str): New.          keys.
3660          (km_refresh_from_keyserver): Allow to select random keys.  
3661          (km_refresh_one_key): New.          * Fixed a lot of memory allocation all over the place.
3662    
3663          * wptKeyserver.cpp: Use default keyserver if possible.  2002-02-05      Timo Schulz <[email protected]>
3664            
3665  2004-08-02  Timo Schulz  <[email protected]>          wptGPG.cpp (gpg_save_options): Fixed the code for the case the
3666            values don't exist in the options file. Thanks to Lutz who found this out.
3667          * wptKeysigDlg.cpp (do_create_popup): New.          (get_gpg_default): First search for "default-key" then for "encrypt-to".
3668          (do_load_keyprops): New.  
3669    2002-02-04      Timo Schulz <[email protected]>
3670          (keysig_dlg_proc): Factor out some common code and use  
3671          do_load_keyprops.          * WinPT.rc: Set LVS_SHOWSELALWAYS for all listview elements
3672            which need it. Thanks to Timo who find this out.
3673          * wptKeyServer.cpp (kserver_check_inet_connection): New.          * WinPT.cpp (WinMain): We don't quit in the case the user changed
3674            the preferences.
3675          * wptKeyManger.cpp (km_refresh_from_keyserver): First check          (update_keycache): New. Handy function to update the keycache.
3676          for an active internet connection. It's annoying for the  
3677          user to confirm an connection error for each key (n>40).          * Use quotation for the options file in any case.
3678    
3679  2004-08-04  Timo Schulz  <[email protected]>          * clipboard.c (gpgme_clipboard_verify): When the NO_PUBKEY status
3680            is set, we don' try to get the sig key.
3681          * wptClipEditdlg.cpp (clip_edit_dlg_proc): Removed the  
3682          edit-field to display the text. Now a RichEdit field is          * wptGPG.cpp (get_gpg_default_key): Revamped.
3683          used. This solves the XP problem that the viewer is empty  
3684          even if there is text in it.  2002-01-26      Timo Schulz <[email protected]>
3685    
3686          * wptKeyManger.cpp (km_file_export): Add WinPT specific comment.          * wptKeylist.cpp (keylist_add_key): Use flags for the file manager
3687            to avoid to show all userid's. Thanks to Frank.
3688          * wptKeySigDlg.cpp (sigprops_dlg_proc): New.          * wptDateDlg.cpp (date_dlg_proc): New context to use different
3689          (keysig_dlg_proc): Add new 'Properties' button and implement          window texts and some other features.
3690          the code for it.          * wptKeygenDlg.cpp (keygen_dlg_proc): Use it here.
3691            * wptKeySubkeyDlg.cpp (subkey_dlg_proc): Ditto.
3692          * wptSigList.cpp: Add support to show the expiration date.          * wptGPG.cpp (gpg_create_groupdb): Create the groupdb.gpg file if
3693            it doesn't exist.
3694          * wptGPGME.cpp (keycache_init): Support to show the progress bar.          * WinPT.cpp (WinMain): Use the new code here.
3695          (keycache_release): Store the amount of keys in the registry for  
3696          the progress dialog.  2002-01-23      Timo Schulz <[email protected]>
3697    
3698          * wptPreferenceDlg.cpp (prefs_dlg_proc): Add support to generate          * wptClipEditDlg.cpp (clip_edit_dlg_proc): Release the buffer for
3699          default keyserver.conf.          loading a file.
3700            Add new code to save file with clipboard contents.
3701          * wptKeyserver.cpp (kserver_load_conf): Store the mod-time of the file.  
3702          Fix possible buffer overflow.  2002-01-20      Timo Schulz <[email protected]>
3703          (wsock_end): Release stored keyserver list.  
3704            * wptMainProc.cpp (winpt_main_proc): Fix the error, that the user
3705          * wptEncryptDlg.cpp (clip_encrypt_dlg_proc): Allow to search for          have to click twice before the menu appears. Richard told me this.
3706          a specific recipient and select it.  
3707    
3708  2004-08-05  Timo Schulz  <[email protected]>  2002-01-18      Timo Schulz <[email protected]>
3709    
3710          * wptKeySigDlg.cpp (sigprops_dlg_proc): Set the 'expired' flag          * wptMainProc.cpp (winpt_main_proc): NLS support for new menu style.
3711          when possible.          * wptPassphraseCB.cpp (parse_gpg_description): Support when no
3712          New dialog layout to enhance the readability of the text. Use          description was given. One example is when symmetric was used.
3713          flat check boxes for the same reason.  
3714    2002-01-13      Timo Schulz <[email protected]>
3715          * wptKeyEditDlgs.cpp (do_editkey_expire): Set new value to  
3716          the right column (3 not 4).          * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Fixed some boolesche
3717            settings.
3718          * wptFileManagerDlg.cpp: Make sure the wipe freespace tempfile          * wptGPG.cpp (gpg_backup_options): New.
3719          uses a unique name.          (gpg_load_options): Ignore comment lines.
3720            (gpg_save_options): Rewritten.
3721    
3722  2004-08-06  Timo Schulz  <[email protected]>  2002-01-06  Timo Schulz <[email protected]>
3723    
3724          * wptContext.h: Move subclass_s context to this file.      * wptPreferencesDlg.cpp (prefs_dlg_proc): Support for the sign+encrypt
3725        hotkey.
3726          * wptKeysigDlg.cpp (subclass_dlg_proc): New.          * wptRegistry.cpp: Ditto.
3727            * wptRegistry.h: Ditto.
3728            * wptHotkey.h: Ditto.
3729  2004-08-19  Timo Schulz  <[email protected]>          * wptGPG.cpp (gpg_load_options): New.
3730            (gpg_save_options): New.
3731          * wptKeyEditDlg.cpp (keyedit_addsubkey_dlg_proc): Corrected  
3732          key numbers.  2002-01-01      Timo Schulz <[email protected]>
3733    
3734          * wptKeysigDlg.cpp (do_delsig): New. Implement 'delsig' command.          * wptFileManager.cpp (fm_verify): Support for the case there is
3735          (is_sig): Change code to allow to check pre-defined fields.          no public key to verify the signature.
3736    
3737          * WinPT.cpp (WinMain): Allow read-only support for keyrings.  2001-12-30      Timo Schulz <[email protected]>
3738    
3739  2004-08-20  Timo Schulz  <[email protected]>          * wptFileManager.cpp (fm_sign): Always use callbacks for the
3740            passphrase.
3741          * wptKeyManagerDlg.cpp (do_create_minpopup): In read-only          (fm_decrypt): Ditto.
3742          mode the menu is not available.          (fm_parse_files): Cache the passphrase for the session and check
3743          (popup_gpg_readonly): New.          if the file still exists.
3744          (menu_gpg_readonly): New.          * wptRFC2240.cpp (parse_ske_sesskey): Removed. We no longer use
3745          (keymanager_dlg_proc): Use it here. Do not check the permissions          low level stuff here.
3746          any longer since this is now handle via the read-only code.          * wptFile.cpp (get_keyid_from_file): Ditto.
3747          * wptMainProc.cpp (winpt_main_proc): Check if the keyrings  
3748          are in read-only mode.  2001-12-21      Timo Schulz <[email protected]>
3749          * wptKeyGenDlg.cpp (keygen_wizard_dlg_proc): RSA support.  
3750          * wptKeySignDlg.cpp (keysign_dlg_proc): Allow non-revocably          * wptTextInputDlg.cpp (text_input_dlg_proc): New.
3751          signatures in expert mode.          * wptMainProc (clip_gpg_dlg): Support for deached signatures.
3752          * wptKEyEditDlgs.cpp (do_find_userid): Release context.          * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Ditto.
3753          * wptGPG.cpp (gpg_check_permissions): Only print out a warning  
3754          in the interactive mode.  2001-12-19      Timo Schulz <[email protected]>
3755          * wptTrayPopDlg.cpp (WndProc): Destroy the window when the left  
3756          mouse button is clicked.          * Completed work on the temporary file support for GPG.
3757            * wptRegistry.cpp (set_reg_winpt_prefs): Add mode for the
3758  2004-08-24  Timo Schulz  <[email protected]>          plaintext viewer option. Suggested by Markus Winkler.
3759            (get_reg_winpt_prefs): Ditto.
3760          * wptKeyEditDlgs.cpp (userid_list_init): Add creation date for          * wptPreferencesDlg.cpp (prefs_dlg_proc): Ditto.
3761          the user-ids.          * wptMainProc.cpp (winpt_main_proc): Ditto.
3762          * wptKeygenDlg.cpp (key_wizard_dlg_proc): Allow to switch into  
3763          expert mode when the non-interactive mode is used.  2001-12-15  Timo Schulz <[email protected]>
3764          * WinPT.cpp (WinMain): Start the keygen wizard instead of the  
3765          expert dialog and allow to switch to it.      * wptKeyManagerDlg.cpp (keymisc_dlg_proc): New menu items for
3766        copy and paste.
3767  2004-08-25  Timo Schulz  <[email protected]>  
3768    2001-12-02      Timo Schulz <[email protected]>
3769          * wptFileManager.cpp (fm_get_file_type): Skip files over 32 MB  
3770          and skip to read large files on floppy discs.          * wptGroups.c: Revamped from the base. Arggg.
3771          (fm_wipe): Display a 'wait' cursor until the wipe is complete.  
3772          (is_floppy_disc): New.  2001-11-29      Timo Schulz <[email protected]>
3773          * wptFileManagerDlg.cpp (filelist_subclass_proc): New.  
3774          (file_manager_dlg_proc): Use subclassing to allow some hotkeys.          * wptKeyManager.cpp (km_groupdb_expand_recipients): New.
3775            * wptMainProc.cpp (clip_gpg_dlg): New.
3776  2004-08-26  Timo Schulz  <[email protected]>          Modify the whole event loop so we don't need all the same code
3777            for each command. And we use the new foreground code.
3778          * WinPT.cpp (load_keyserver_conf): New. Factored out some code          * wptW32API.cpp (check_date): Fixed.
3779          from WinMain ().  
3780          (WinMain): Load keyserver config at the begin. Thanks to Bodo A�ner  2001-11-27      Timo Schulz <[email protected]>
3781          * wptKeyserverDlg.cpp (keyserver_dlg_proc): If there is no keyserver  
3782          in the list control, add at least the internal default HKP server.          * wptKeyserver.cpp (base64_encode): New. Marco provided HTTP
3783          * wptKeygenDlg.cpp (keygen_wizard_dlg_proc): NLS support.          proxy authentifcation support for each command.
3784          * wptKeySignDlg.cpp (sig_class_dlg_proc): Likewise.          (kserver_update_proxyuser): New. Ditto.
3785          (keysign_dlg_proc): Likewise.          (kserver_send_request): Ditto.
3786          * wptKeySigDlg.cpp (keysig_dlg_proc): Likewise.          (kserver_recv_request): Ditto.
3787          * wptKeyserver.cpp (skip_type_prefix): New. Thanks to Marcus Junk.          (kserver_search_init): Ditto.
3788          (kserver_connect): use it here.  
3789          (kserver_send_request): Likewise.  2001-11-24      Timo Schulz <[email protected]>
3790          (kserver_recvkey): Likewise.  
3791            * wptKeyManager.cpp (km_groups_new): New.
3792  2004-08-27  Timo Schulz  <[email protected]>          (km_groups_release): New.
3793            (km_groups_load): Rewritten.
3794          * wptKeyserver.cpp (skip_whitespace): New.          (km_groups_add): New.
3795          * Fix a problem with the key cache. The new hash item was          (km_groups_del): New.
3796          not initialized to zero and thus the free caused an illegal access.          (km_groupdb_open): New.
3797          Thanks to Ralf for pointing this out.          * wptKeyManagerDlg.cpp (keymisc_dlg_proc): Added group support.
3798          * wptTextInputDlg.cpp (text_input_dlg_proc): Finished with localisation.          * wptGroups.c (groupdb_enum_read): Store the record before increment it.
3799          * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Likewise.  
3800          * wptFirstRunDlg.cpp (first_run_dlg_proc): Remove global variable and  2001-11-23      Timo Schulz <[email protected]>
3801          use a context to store the value. Loalize all text strings.  
3802          * wptKeyList.cpp (key_check_validity): Cannot use gettext here.          * wptW32API.cpp (set_active_window): New.
3803          (keylist_get_recipients): Increase buffer for gettext messages.          (reset_active_window): New.
3804            (window_reminder): New. This is a delayed thread procedure to
3805  2004-08-28  Timo Schulz  <[email protected]>          force the focus (foreground) to the dialogs for the current
3806            window mode.
3807          * WinPT.cpp (WinMain): Free gpg table in case of an error.          * wptMainProc.cpp (winpt_main_proc): Use it here.
3808          * wptFileManagerDlg.cpp (filelist_subclass_proc): New.          * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): Ditto.
3809          (filemanager_dlg_proc): Subclass the list control.          * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Ditto.
3810          * Fix Alt+C for the winpt_prefs_dlg_proc.          * wptClipSignDlg.cpp (clip_sign_dlg_proc): Ditto.
3811          * wptKeyserver.cpp (kserver_load_conf): Ignore lines with          * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Ditto.
3812          just whitespaces. Thanks to the folks on winpt-users.  
3813    2001-11-22      Timo Schulz <[email protected]>
3814  2004-09-01  Timo Schulz  <[email protected]>  
3815            * wptW32API.cpp (set_foreground_wnd): New.
3816          * wptGPG.cpp (GPG_CONF): Define it. Use gpg.conf by default.  
3817          (default_key_from_cache): Use new key attribute 'usable'.          Fixed the return value of all EndDialogs.
3818          * WinPT.cpp (show_unprotected_keys): Removed.  
3819          * wptKeylist.cpp (check_key): Removed.          * wptMainProc.cpp: Remove all code parts which did the same for the
3820          (seclist_init): Use new 'usable' key attribute.          current window support. Now the code uses a dialog switch which is
3821          (keylist_add_key): Likewise.          much smaller.
3822          * wptKeyManagerDlg.cpp (keylist_subclass_proc): support to  
3823          add keys via 'INSERT'.  2001-11-18  Timo Schulz <[email protected]>
3824          * wptListView.cpp (listview_select_one): New.  
3825          (listview_find): New.      * wptKeyManager.cpp: New. Contains all handy functions from the
3826          * wptFileManager.cpp (fm_get_current_pos): If there is only      wptKeyManagerDlg.cpp. This should help to cleanup the dialog code.
3827          one item, return 0 but also select it. Thanks to Christian.      (km_quote_uid): New.
3828        (km_check_for_seckey): New.
3829  2004-09-07  Timo Schulz  <[email protected]>      (km_check_key_status): New.
3830        (km_clip_export): New.
3831          * wptAboutDlg.cpp (about_dlg_proc): Add 'Help' button. Suggested by Ralf.      (km_clip_import): New.
3832          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Likewise.      (km_file_export): New.
3833        (km_file_import): New.
3834  2004-09-08  Timo Schulz  <[email protected]>      (km_delete_keys): New.
3835        (km_send_to_keyserver): New.
3836          * wptKeyserverDlg.cpp (kserver_get_pos): If only one element is      (km_refersh_from_keyserver): New.
3837          in the list, return zero.      (km_update_default_key_str): New.
3838            * wptKeygenDlg.cpp (ask_for_backup): New.
3839  2004-09-20  Timo Schulz  <[email protected]>          (keygen_dlg_proc): Use new function to give the chance to the
3840            user for a complete backup.
3841          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Disable 'Sign' in  
3842          context menus when the key is flagged as revoked.  2001-11-13      Timo Schulz <[email protected]>
3843          (update_ui_items): Likewise and set the 'ShowPhoto' flag only if  
3844          the key has such an item.          * wptGPG.cpp (get_gpg_optfile): Check for the case the OptFile entry
3845            is set but to "". Then use default gpg directory.
3846  2004-10-01  Timo Schulz  <[email protected]>          * wptKeyManagerDlg.cpp (send_to): New. Context entry for sending keys.
3847            (refresh_from_keyserver): New. Context entry for update keys.
3848          * wptClipSignDlg.cpp: Really use the selected subkey with the          (keymisc_dlg_proc): Modify the way the popup is shown.
3849          right '!' syntax. Thanks to Vedaal for pointing this out.  
3850          * wptGPG.cpp (gnupg_backup_keyrings): Check if the backup device  2001-11-07      Timo Schulz <[email protected]>
3851          is accessable and writeable, otherwise inform the user. Kudos to  
3852          the one who reported this problem.          * wptGPG.cpp (set_gpg_default_key): Rewrote the part of changing
3853            the key id.
3854  2004-10-07  Timo Schulz  <[email protected]>          * wptKeyManagerDlg.cpp (file_import): Use force trust to allow secret
3855            key imports.
3856          * wptErrors.cpp (winpt_errmsg): Use a generic header when no          * wptGPGOptDlg.cpp (gpgopt_dlg_proc): If the options file exists and
3857          filename is supplied.          the user doesn't set the field, try to do this automatically.
3858          * wptMainProc.cpp (cleanup_tmp_files): Do not use BUG but  
3859          an error message which is more clean. Thanks to Ralf.  2001-11-03      Timo Schulz <[email protected]>
3860          * wptCardDlg.cpp (card_keygen_dlg_proc): Support new card  
3861          admin mode.          (fm_remove_crit_file_attrs): First check if the file exists.
3862          * wptKeySignDlg.cpp (do_check_protection): Also check for smart          Thanks to Peter.
3863          card protection.  
3864          (get_keyinfo): Return if this is a smart card key.  2001-11-02      Timo Schulz <[email protected]>
3865          * wptKeyEditDlgs.cpp (do_find_userid): Use UTF8 encoding before  
3866          comparing the names.          * WinPT.cpp (WinMain): Add the chance to start the preferences dialog
3867          * winpt.cpp: Now depends on PTD 0.7.1.          in the case a GPG error was detected.
3868            * wptKeyManagerDlg.cpp (delete_keys): Interface to delete all selected
3869  2004-10-15  Timo Schulz  <[email protected]>          keys.
3870    
3871          * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Make sure that opt  2001-10-30      Timo Schulz <[email protected]>
3872          is really initialized.  
3873            * wptHotkey.h: Fixed typo. Thanks to Timo.
3874  2004-10-25  Timo Schulz  <[email protected]>          * wptGPG.cpp: (gpg_check_homedir): Fixed memory leak. By Timo.
3875            (get_gpg_default_key): Skip comment lines immediately.
3876          * wptClipDecryptDlg.cpp (clip_decrypt_dlg): Issue an info box          * wptRegisty.cpp (get_reg_winpt_prefs): Ditto.
3877          if the PGP message is complete but broken during the transport.          * wptKeyManagerDlg.cpp (keylist_subclass_proc): New. Procedure
3878          Thanks to Werner and Achim.          for subclassing.
3879          * wptFileManager.cpp (fm_sym_encrypt): Do not force CAST5. Thanks  
3880          to the gnupg-users.          Remove all unsafe WM_NOTIFY stuff because this was propably the
3881          * Automatically add '\r\n' to the text before signing. This solves          reason for the crashes. And add as a sanity check if the control
3882          the problem the last line is not included if no \r\n is present.          sent the message.
3883          * wptClipEditDlg.cpp (clip_edit_dlg_proc): Add a 'mail quote' mode  
3884          which prepends the text with '> '. This makes it easier to quote  2001-10-28      Timo Schulz <[email protected]>
3885          decrypted text.  
3886          * wptKeyserverDlg.cpp (keyserver_list_build): Code which was factored          * wptKeyMiscDlg.cpp (key_misc_dlg_proc): New virtual key support
3887          out from..          for ENTER/SPACE and DELETE. Suggested by Graham.
3888          (keyserver_dlg_proc): ..here.          * wptKeyList.cpp (add_key): New code to figure out how trustworthy
3889            a expired/revoked secret key is.
3890  2004-11-04  Timo Schulz  <[email protected]>          (keylist_enum_recipients): Show the key ID of the key when it's
3891            revoked.
3892          * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Support preferred          * wptFileManager.cpp (fm_decrypt): Parse all PKE packets and not
3893          keyserver sub packets.          only the first to figure out if a secret is available. Thanks to
3894            Graham.
3895          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Set a flag to          * wptFile.cpp (get_keyid_from_file): Ditto.
3896          indicate we need to reload the cache. If a user deletes a key  
3897          and exits the manager and loads it again the deleted key is  2001-10-27      Timo Schulz <[email protected]>
3898          still in cache and provoked an error.  
3899                    * wptKeylist.cpp (keylist_enum_recipients): Add a type to make
3900          * wptKeySigDlg.cpp (do_load_keyprops): Stricter key checks.          the code more flexible.
3901            * wptKeyMiscDlg.cpp (file_import): New.
3902          * wptW32API.cpp (center_window): Replaced with real code which calculates          (file_export): New.
3903          the position relative to the desktop window.          * wptKeySigDlg.cpp (recv_missing_keys): Fixed a typo.
3904    
3905  2004-12-02  Timo Schulz  <[email protected]>          Removed all OE code snippets.
3906    
3907          * wptKeySigDlg.cpp (do_load_keyprops): Only issue errors for non-main nodes.  2001-10-26      Timo Schulz <[email protected]>
3908    
3909  2004-12-11  Timo Schulz  <[email protected]>          * wptExtensions.cpp: Removed.
3910            * wptLDAPExt.cpp: Removed.
3911          * wptFileManager.cpp (fm_add_opened_files): Fix broken code to detect          * wptLDAP.cpp: New. This code now contains a direct interface to
3912          the file type.          the WLDAP library so we don't need extra DLL's to handle LDAP keyservers.
3913          (fm_parse_command_line): Likewise.          (wldap_init): New.
3914            (wldap_end): New.
3915  2004-12-15  Timo Schulz  <[email protected]>          (ldap_set_verbose): New.
3916            (ldap_get_key_info): New.
3917          * wptFileManagerDlg.cpp (space_wipefrees_dlg_proc): Use the right          (ldap_recvkey): New.
3918          temp name.          (init_ldap): New. Internal use only.
3919          * wptKeyEditDlgs.cpp (keyedit_main_dlg_proc): Disable 'OK' button          (get_key): New. Ditto.
3920          when no secret key is available.          (send_key): New. Ditto.
3921            * wptMainProc.cpp (wpt_main_proc): Init and de-init the LDAP dll.
3922  2004-12-20  Timo Schulz  <[email protected]>  
3923    2001-10-25      Timo Schulz <[email protected]>
3924          * wptGPG.cpp (check_gnupg_engine): Fixed version checking.  
3925          * wptFileManager.cpp (fm_encrypt): Delete the passphrase from the          * wptGPG.cpp (get_gpg_default_key): Support for the users options file.
3926          cache if it is not valid.          (check_gpg_path): Ditto.
3927                    (get_gpg_options): Ditto.
3928          Fix problem with a NULL pointer.          (set_gpg_default_key): Ditto.
3929            (set_gpg_options): Ditto.
3930  2004-12-30  Timo Schulz  <[email protected]>          (gpg_check_keyring): Ditto.
3931            (set_gpg_default_keyid): Fix a typo.
3932          * wptKeyserverDlg.cpp (keyserver_list_build): Initialize pointer.          * wptGPGME.cpp (get_default_keyid): Rewrote most of the code.
3933          This fixes the problem that the dialog crashes when the user selects  
3934          anything. Thanks to my users.  2001-10-23      Timo Schulz <[email protected]>
3935          (keyserver_dlg_proc): s/keyserver/kserver. Thanks to Ulf.  
3936                    * wptClipSignDlg.cpp (clip_sign_dlg_proc): Replace for with while
3937  2005-01-07  Timo Schulz  <[email protected]>          because it's shorter.
3938            * wptFileSignDlg.cpp (file_sign_dlg_proc): Use keylist instead of
3939          * wptKeyserver.cpp (skip_type_prefix): Support all URL schemes.          the default keyid.
3940          (finger_recvkey): Use skip_type_prefix and prevent buffer overflows.          * wptFileManager.cpp (fm_sign): Remove the default key ID code. Now
3941          (ldap_recvkey): Likewise.          we use the signer from the keylist.
3942          (check_hkp_response): Be more liberal with error strings.          * wptGPGME.cpp (get_default_keyid): Revamp most of the code and fix
3943          (kserver_connect): Prevent buffer overflow and use the right return          some silly bugs.
3944          code for inet_addr().          * WinPT.cpp (WinMain): if there is no valid keyring after the new
3945          (kserver_search_chkresp): New.          preferences, start the key generation dialog.
3946          (kserver_search): Fixed. Now it works with modern keyservers.  
3947          * wptKeylist.cpp (seclist_init): Add new flags param.  2001-10-22      Timo Schulz <[email protected]>
3948          * wptFileManagerDlg.cpp (file_encrypt_dlg_proc): Use short secret key  
3949          listing.          Remove all MyGPGME code from the main project. Now we use the
3950          * wptClipboardSignEncDlg.cpp (clip_signenc_dlg_proc): Likewise.          libmygpgme.dll to provide all cryptographic functions and interfaces.
3951          * wptMainProc.cpp (winpt_main_proc): GPGME cleanup.  
3952          * WinPT.cpp (WinMain): call GPGME init.          * wptKeylist.cpp (key_array_new): New.
3953          Reword the 'you have no keyring' problem and revamp the first run dialog.          (key_array_release): New.
3954          * wptGPG.cpp (gnupg_access_keyring): New.          (key_array_search): New.
3955          (gnupg_check_keyring): Removed unused code.          * wptKeylist.cpp (keylist_add_to_recipients): Check if an untrusted key was
3956          * wptFirstRunDlg.cpp (first_run_dlg_proc): Adjust dialog for the          already checked and don't bother the user if all userid's were selected.
3957          new texts and remove unused elements.          * wptPassphraseCB.cpp (passphrase_cb_init): Now void.
3958          * wptKeyserverDlg.cpp (keyserver_dlg_proc): s/keyserver/kserver. The          (passphrase_cb_gpgme): Ditto.
3959          last annoying typo.          (passphrase_callback_proc): Support for a list of recipients.
3960          * wptKeyserverSearchDlg.cpp (hkpsearch_dlg_proc): End dialog in case of          * wptImportList.cpp (implist_add_key): Support for secret keys.
3961          an error.  
3962    2001-10-19  Timo Schulz <[email protected]>
3963  2005-01-08  Timo Schulz  <[email protected]>  
3964        * wptGPGPrefsDlg.cpp (gpg_prefs_dlg_proc): Support for various
3965          * Applied the patches to make the source G++ compatible.      option files.
3966          * wptKeyserver.cpp (kserver_load_conf): Use the stripped string.      * wptMainProc.cpp (wpt_main_proc): Remove the preferences menu and
3967          * wptKeygenDlg.cpp (keygen_dlg_proc): Default key size is now 2048.      use a popup menu.
3968          * wptFileManagerDlg.cpp (fill_drive_combobox): Do not add CD-Roms.      * wptExtensions.cpp (gpgoe_load_plugin): New. Try to load the GPGOE
3969        plug-in.
3970  2005-01-10  Timo Schulz  <[email protected]>      (gpgoe_unload_plugin): New.
3971    
3972          * WinPT.cpp (load_gettext): New.  2001-10-17  Timo Schulz <[email protected]>
3973          (WinMain): Use it here to load it before --keymanager. Thanks to Ralf.  
3974        * wptCurrWnd.cpp (get_window_contents): Only minimize the window
3975  2005-01-20  Timo Schulz  <[email protected]>      when the clipboard contains text.
3976        * wptKeylist.cpp (keylist_add_key): Check only for invalid keys
3977          * wptKeycacheDlg.cpp (keycache_dlg_proc): Be less strict with the      in the mainloop. The other flags are checked in the various cases.
3978          keyring check. If the file exists, it is enough.      (add_key): Use the ** foo ** notation for invalid flags instead of
3979          * wptKeyring.cpp (kserver_load_conf): Use C++ new for proxy_host.      skipping the key.
3980          Several cleanups and allow to specify the port of the keyserver.      * wptKeyMiscDlg.cpp (clip_export): Check for revoked keys and print
3981          * wptMainProc.cpp (winpt_main_proc): Handle WM_CLOSE to make sure      out a warning.
3982          the application terminates clearly when Windows shutdown.      Change all error messages to one header.
3983        (check_key_status): Check if the key is valid in the sense of
3984  2005-01-21  Timo Schulz  <[email protected]>      revocation and expire dates. If not, print out a warning.
3985        (keymisc_dlg_proc): Use the new code.
3986          * wptFileVerifyDlg.cpp (file_verify_dlg_proc): Allow to retrieve keys  
3987          which are not in the keyring. Suggested by djek.  2001-10-16  Timo Schulz <[email protected]>
3988          * wptFileManagerDlg.cpp (filemanager_dlg_proc): Implement basic  
3989          'Always on Top'.      * wptW32API.cpp (check_date): New.
3990          Allow to send encrypted files via MAPI.              (get_open_filename): New.
3991          * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Only reload the keycache      * wptDlgs.cpp (init_dtp): New. Initialize a special common control.
3992          if the HKP retrieval succeeded.      * wptKeygenDlg.cpp (keygen_dlg_proc): Add support for exipre dates.
3993          * wptFileStatDlg.cpp (do_list_packets): Make sure that the pkt pointer  
3994          is not NULL.  2001-10-15  Timo Schulz <[email protected]>
3995          * wptKeyManager.cpp (km_clip_export): Prefix the clipboard text with  
3996          a header similar to 'gpg -k name'.      * wptFileManager.cpp (fm_wipe): New.
3997          * wptErrors.cpp (log_box): Use msg_box to make sure the box is visible      (fm_set_status): Add temporary wipe status and handle default values.
3998          with 'Always on Top' windows.      (fm_parse_files): Use fm_wipe instead of sunlink. Delete all wiped
3999          * wptFileManager.cpp (fm_parse_files): Set progress callback for      files with a successful opeation.
4000          wiping files.      * wptKeygenCbDlg.cpp (keygen_cb_dlg_proc): New. Static dialog procedure.
4001          (fm_add_opened_files): Do not add the file in case of an error.      (keygen_cb_thread): New. Static dialog thread.
4002          * wptKeyserverDlg.cpp (kserver_get_port): New.      (keygen_cb_dlg_create): New. Interface.
4003          (save_default_ks): Save port.      (keygen_cb_dlg_destroy): New. Destroy the dialog.
4004          * wptKeyserver.cpp (set_default_kserver): Get port or use default.      (keygen_cb): GPGME interface.
4005          (kserver_connect): Logging.  
4006          (kserver_send_request): Likewise. Thanks to Markus.  2001-10-13  Timo Schulz <[email protected]>
4007          * wptError.cpp (w32_fmt_msg): New.  
4008          (winpt_strerror): Show the W32 API error if the hotkey could not      Set all ListviewControls to 'NULL' in all dialogs to be more crash
4009          be registered.      resistent.
4010    
4011  2005-01-25  Timo Schulz  <[email protected]>      * wptFileEncryptDlg.cpp (file_encrypt_dlg_proc): Rebuild interface.
4012        * wptFileExportDlg.cpp (file_export_dlg_proc): Ditto.
4013          * wptCardDlg.cpp (card_keygen_dlg_proc): Make 'backup keys' default      * wptFileImportDlg.cpp (file_import_dlg_proc): Ditto.
4014          and that all values are 7-bit ASCII.      * wptFileSignDlg.cpp (file_sign_dlg_proc): Ditto.
4015          Use '*' for the passphrase field.      * wptFileVerifyDlg.cpp (file_verify_dlg_proc): Ditto.
4016          * wptGPG.cpp (multi_gnupg_path): New.      * wptStringUtil.cpp: Removed.
4017          (get_gnupg_path): Use it here.      * wptFileManager.cpp: Rewrote the complete interface code for
4018          (check_homedir): Likewise.      the file manager.
4019          * wptKeyserverDlg.cpp (save_default_ks): Fix problem that the port      * wptFileManagerDlg.cpp: Rewrote the whole file manager dialog.
4020          is actually set.  
4021          * wptFileManager.cpp (fm_clearsign_8bit): New.  2001-10-10      Timo Schulz <[email protected]>
4022          (fm_parse_files): Check if the file to clearsign is really 7-bit.  
4023          Thanks to djek.          * wptGPG.cpp (set_gpg_default_key): Use spaces if the entry in the
4024          (fm_set_ftype): Factored out some code from...          file is longer then the keyid.
4025          (fm_add_dropped_files): ...here. Simplied the code.          (get_gpg_default_key): Replaced get_gpg_default_keyid. Check if the
4026          (fm_add_dir_files): New.          entry is an userid.
4027          * Removed MD5 from MyGPGME and the new default sym cipher is AES.          * wptFileManager.cpp (fm_check_for_entry): New. Avoid to add a file
4028          * wptProgressDlg.cpp (progress_dlg_proc): Use additional HAND var          more then one time.
4029          to track the window handle.          (fm_add_dropped_files): Use it here.
4030          (progress_cleanup): Try to close tracking handle first.      * wptFileManagerDlg.cpp (file_manager_dlg_proc): Support for common
4031        keys.
4032  2005-01-26  Timo Schulz  <[email protected]>  
4033    2001-10-09  Timo Schulz <[email protected]>
4034          * wptGPG.cpp (multi_gnupg_path): Zero buffer before use.  
4035          * wptKeyManagerDlg.cpp: Add 'Select All' feature.      * wptFileManagerDlg.cpp (file_manager_dlg_proc): Check the return
4036          Move 'Edit->Key' to 'Key->Edit'.      code of sunlink.
4037          * wptFileManagerDlg.cpp: Likewise.      * wptGPG.cpp (get_keyring_from_optfile): New.
4038          * wptKeyPropsDlg.cpp (keyprops_show_photo): Show the JPG photo directly.      Renamed gpg_errstr to gpg_strerror.
4039          * wptKeyManager.cpp (spawn_loadimage): Removed.      (set_default_key): New.
4040          (km_show_photo): Removed.      * wptKeyMiscDlg.cpp (keymisc_dlg_proc): Support for default key setting.
4041          * wptRevokersDlg.cpp (revokelist_init): Fixed index.      
4042          * wptErrors.cpp (winpt_strerror): Show system error for registry  2001-10-08  Timo Schulz <[email protected]>
4043          related problems.  
4044        * wptKeyserver (kserver_connect): If the proxy settings are valid,
4045  2005-02-02  Timo Schulz  <[email protected]>      use the proxy port instead of the HKP port.
4046        (kserver_recvkey): Proxy support.
4047          * wptPassphraseDlg.cpp (passwd_dlg_proc): use center_window2, otherwise      (kserver_search_init): Ditto.
4048          it is invisible.  
4049          * wptPassphraseCB.cpp (passphrase_callback_proc): Do not cache symmetric  2001-10-06  Timo Schulz <[email protected]>
4050          passphrases.  
4051          * Enable the progress dialog for symmetric encryption.      * wptPassphraseCB.cpp (parse_gpg_description): Fixed a memory leak.
4052          * wptFileManager.cpp (fm_check_file_type): Also check for 'SYMKEYENC' in  
4053          FM_ENCRYPT mode.  2001-10-05  Timo Schulz <[email protected]>
4054          * WinPT.cpp (WinMain): SETUP_EXISTING implemented.  
4055          * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Reset 'Locale directory' when      * wptKeylist.cpp: (addkey): Check if the used userID is not revoked.
4056          no value is entered.      In the case it is, use the first userID.
4057        * wptKeySubkeyDlg.cpp (key_subkey_dlg_proc): Change the listbox.
4058  2005-02-04  Timo Schulz  <[email protected]>      Remove the Pos column and add a status column instead.
4059        Add expire stuff for subkeys.
4060          * wptProgressDlg.cpp (progress_cb_thread): Set root window if available.      (init_dtp): Initialize the common control.
4061          If the progress window survives by accident, it will be closed when the      * wptClipEditDlg.cpp (clip_edit_dlg_proc): New code to load a file
4062          File Manager (root window) is closed.      into the clipboard.
4063        * wptKeyPropsDlg.cpp (ot_id_to_string): New. Returns a long description
4064  2005-02-07  Timo Schulz  <[email protected]>      of the ownertrust value.
4065        (keyprops_dlg_proc): Fixed ownertrust handling.
4066          * wptFileManager.cpp (fm_parse_files): Do not use the progress dialog  
4067          for signing and verifying. But this does not fix the problem tha the  2001-10-04  Timo Schulz <[email protected]>
4068          dialog sometimes stay and is not destroyed.  
4069        * wptPassphraseCB.cpp (parse_gpg_describtion): Free buffer.
4070  2005-02-23  Timo Schulz  <[email protected]>      * wptKeyserver.cpp (kserver_search_init): Set buffer to NULL.
4071        Both were pointed out my Timo (not me ;-)).
4072          * wptKeyserver.cpp (check_hkp_response): Support for HTTP/1.1.      * wptKeylist.cpp (add_key): Fix a typo and now the code is more
4073          (kserver_search): Be more strict.      strict with returned attributes.
4074          * WinPT.cpp (WinMain): Enable FM progress by default.      * wptKeysignDlg.cpp (keysign_dlg_proc): Modify GPGME interface
4075          * wptFileManagerDlg.cpp (file_preferences_dlg_proc): New.      for local signatures.
4076          (fm_parse_files): Use progress dialog only if it is  
4077          enabled.  2001-09-28  Timo Schulz <[email protected]>
4078    
4079  2005-03-03  Timo Schulz  <[email protected]>      * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): WM_NOTIFY to handle
4080        the double click messages.
4081          * wptCardDlg.cpp (card_changepin_dlg_proc): Add item to re-type the      * wptClipSignDlg.cpp (clip_sign_dlg_proc): Ditto.
4082          new PIN. Suggested by Achim.      * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Ditto.
4083          Support to show the unmasked PIN.      * wptFileManager.cpp (overwrite_file): Check if the file exists and
4084          Modified TAB-order.      then let the user decide.
4085          * wptPINDlg.cpp (pin_cb_dlg_proc): Show unmasked PIN.      (fm_encrypt): Use the code here.
4086        (fm_sign): And here.
4087          * Fixed wrong GPG --command-fd strings. Thanks to Achim.      (fm_sym_encrypt): And here. Now we use the passphrase dialog.
4088        (fm_decrypt): And here.
4089  2005-03-04  Timo Schulz  <[email protected]>      * wptFile.cpp (unlink_file): Removed. We can use sunlink if we need
4090        a secure wipe.
4091          * GPG asks twice for the new PIN. Thanks to Achim.  
4092          * wptCardDlg.cpp (card_changepin_dlg_proc): Reset the 'safety' pin also.      Make the memory checking more strict.
4093          Only check the passphrase if the backup flag is enabled. Again thanks to  
4094          Achim.  2001-09-27  Timo Schulz <[email protected]>
4095    
4096  2005-03-06  Timo Schulz  <[email protected]>      * wptMainProc.cpp (wpt_main_proc): Fixed typo. Thanks to Andy who
4097        discovered this.
4098          * wptKeySignDlg.cpp (do_fill_seckeylist): Skip secret keys without      * wptPasswdDlg.cpp (passwd_dlg_proc): New. Handy dialog to get the
4099          a public key. Noted by Kurt Fitzner.      passphrase.
4100        * wptEditKeyDlg.cpp: Removed. The edit-key code is now moved to
4101  2005-03-22  Timo Schulz  <[email protected]>      the various other dialogs to make the use more easier.
4102        * wptKeyUIDDlg.cpp: (keyuid_dlg_proc): ADDUID code, use it here.
4103          * WinPT.cpp (WinMain): --debug as an alias for --enable-debug.      * wptSubkeyDlg.cpp: (subkey_dlg_proc): ADDKEY code. Ditto.
4104          (enable_mobile_mode): New.  
4105          * wptKeyEditDlg.cpp (keyedit_addsubkey_dlg_proc): Use new  
4106          ID's for adding subkeys.  2001-09-26  Timo Schulz <[email protected]>
4107    
4108  2005-04-04  Timo Schulz  <[email protected]>      * wptW32API.cpp (listbox_add_string): New. Shortcut to avoid long casts.
4109        (listbox_get_cursel): Ditto.
4110          * WinPT.cpp (check_crypto_engine): Correct version  
4111          check. Noted by Werner.  
4112    2001-09-23  Timo Schulz <[email protected]>
4113  2005-04-11  Timo Schulz  <[email protected]>  
4114        * wptSubkeyDlg.cpp (key_subkey_dlg_proc): New. Lists the subkeys.
4115          * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Reset      The same as the userid dialog.
4116          'enable' flag always at the begin.      * wptWndSwitchDlg.cpp: Removed.
4117          * wptClipDecryptDlg.cpp (clip_decrypt_dlg): Show correct      * wptWipeExt.cpp: Removed. Code is now included.
4118          key trust. Noted by a friendly user.      * wptGPGME.cpp (get_default_keyid): If the keyid from the options
4119          * wptListView.cpp (listview_add_item_pos): New.      file is in the keycache.
4120          * wptKeyEditDlgs.cpp (get_subkey_fingerprint): Due to      * wptKeylist.cpp (keylist_reload): New. Reload a keylist.
4121          the fact that GPG does not return the fingerprint of  
4122          the generated subkey any longer, we need to get it manually.  2001-09-17  Timo Schulz <[email protected]>
4123          Thanks to Maxime Brandt.  
4124          (keyedit_addsubkey_dlg_proc): If key size too large, ask      * wptClipboard.cpp (clip_isalready_secured): Fixed two silly bugs
4125          if this was a mistake.      who prevent the correct return value in the case of an clipboard error.
4126          (keyedit_add_subkey): Use it here.      (clip_parse_pgp_id): New. Returns the PGP message type.
4127          (do_add_new_subkey): Fix list contrl insertion.      * wptHotkey.cpp (hotkeys_strerror): Fixed bug in the indexes.
4128          * wptTypes.h (DEFAULT_KEYSIZE): Define new default keysize constant.      (hotkey_single_register): Return correct error value.
4129        (hotkey_single_unregister): Ditto.
4130        * wptW32API.cpp (get_thread_id): Removed.
4131        (attach_thread_input): Ditto.
4132        (detach_thread_input): Ditto.
4133        * wptCurrWnd.cpp (get_window_contents): Store main and focused window
4134        for later use.
4135        (set_window_contents): Use the new code.
4136    
4137    2001-09-16  Timo Schulz <[email protected]>
4138    
4139        * wptExtensions.h: New. This file is now used for the extenion
4140        declarations.
4141        * wptExtensions.new: (register_extensions): New. Enumerate and
4142        load all possible extensions.
4143        (unregister_extentions): New. Release all loaded extensions.
4144        * wptKeyserver.cpp (kserver_load_conf): Added support for different
4145        keyservers. Currently only HTTP/LDAP.
4146        * wptKeyserverDlg.cpp (keyserver_dlg_proc): Added LDAP support.
4147        (hkp_recv_key): Ditto.
4148        * wptMailPlugin.cpp (oe_set_focus): Fixed silly bug that prevents
4149        to set the focus.
4150        * (oe_check_recipient): New. Checks if the key is able to encrypt
4151        and valid in the sense of revocation.
4152    
4153    2001-09-14  Timo Schulz <[email protected]>
4154    
4155        * wptWAB.cpp: (wab_read): New. Interface to read all address book
4156        entries.
4157        (wab_open): New. Internal function to load the WAB.
4158        (wab_release): New. Release the WAB contexts.
4159        (wab_load): New. Load the contents of the WAB into a linked list.
4160        (addr_list_new): New. Linked address list.
4161        (addr_list_add): New.
4162        (addr_list_release): New.
4163    
4164    2001-09-13  Timo Schulz <[email protected]>
4165    
4166        * Revamped the whole plugin code for OE5.
4167        * wptMailPlugin.cpp (oe_plugin_new): New. Allocates new structure.
4168        (oe_plugin_releae): New.
4169        (oe_plugin_init): New. Searches for the OE main window and select
4170        all the recipients from the fields.
4171        (oe_get_msg): This code now uses the menu command id's to
4172        execute the commands.
4173        (oe_set_msg): Ditto.
4174        (oe_encrypt): Changed for the new code.
4175        * wptMainProc.cpp (wpt_main_proc): Re-activate the code.
4176        * wptHotkeys.cpp: Ditto.
4177        * Removed the hook project.
4178    
4179    2001-09-12  Timo Schulz <[email protected]>
4180    
4181        * wptClipDecryptDlg.cpp (clip_decrypt_dlg): Fixed a format error.
4182        Thanks to Rich who pointed this out.
4183    
4184    2001-09-07  Timo Schulz <[email protected]>
4185    
4186        * wptFileManagerDlg.cpp (file_manager_dlg_proc): Fix memory leaks.
4187    
4188    2001-09-05  Timo Schulz <[email protected]>
4189    
4190        * wptKeyMiscDlg.cpp (clip_export): New. Handy function to export keys.
4191        (clip_import): New. Handy function to import keys.
4192        * wptKeygenDlg.cpp (keygen_dlg_proc): Added a warning when the passphrase
4193        is too short.
4194    
4195    2001-09-04  Timo Schulz <[email protected]>
4196    
4197        * Rewrote most parts of the keymanager.
4198        * Ditto for the filemanager.
4199    
4200    2001-09-01  Timo Schulz <[email protected]>
4201    
4202        * wptMainProc.cpp (wpt_main_proc): Remove the im- and export operations.
4203        These code is now part of the key manager.
4204        * wptKeyPropsDlg.cpp (key_props_dlg): Removed the get_key_xxx functions.
4205        * wptKeylist.cpp (get_key_algo): New.
4206        (get_key_created): New.
4207        (get_key_type): New.
4208        (get_key_size): New.
4209        (get_key_fpr): New.
4210        * wptClipExportDlg.cpp (clip_export_dlg_proc): Removed. This is now
4211        a part of the keymanager.
4212    
4213    2001-08-31  Timo Schulz <[email protected]>
4214    
4215        * wptFileManager.cpp (fm_add_opened_files): New. Use a standard
4216        file open dialog instead of drag & drop.
4217        * wptHotkeys.cpp (hotkey_strerror): More detailed information which
4218        hotkey couldn't set up.
4219        (hotkey_register_single): Ditto.
4220    
4221    2001-08-30  Timo Schulz <[email protected]>
4222    
4223        * wptFilemanager.cpp (fm_encrypt): Add minor changes.
4224         (fm_decrypt): Ditto.
4225         (fm_sign): Ditto.
4226         (fm_verify): Make the code more modular.
4227         (fm_add_sig_stat): New. For new fm_verify code.
4228    
4229    2001-08-28  Timo Schulz <[email protected]>
4230    
4231        * wptKeylist.cpp (strlist_add_recipients): Fixed the listview handling.
4232        * wptKeyserver.cpp (kserver_load_conf): Proxy support
4233        (kserver_connect): Ditto.
4234    
4235    2001-08-26  Timo Schulz <[email protected]>
4236    
4237        * wptFileManager.cpp (fm_entry_new): New.
4238        (fm_entry_release): New.
4239        (fm_state_new): New.
4240        (fm_state_release). New.
4241        (fm_get_current_file): New.
4242        * wptKeylist.cpp (strlist_add_recipients): New.
4243    
4244    2001-08-25  Timo Schulz <[email protected]>
4245    
4246        * wptStringUtil.cpp (strlist_new): New. Linked list to hold strings.
4247        (strlist_release): New. Release the linked list.
4248        (strlist_add): New.
4249    
4250    2001-08-21  Timo Schulz <[email protected]>
4251    
4252        * wptGPG.cpp (get_gpg_default_keyid): Modify the code and now it
4253        also supports "encrypt-to" entries as default keys.
4254        * wptWipeExt.cpp (wipe_init_ext): New. Load the DLL to provide
4255        secure wiping.
4256        (wipe_deinit_ext): New. Unload the DLL and free all pointer.
4257        (wipe_loaded_ext): New. Checks wether the DLL was loaded.
4258        * wptW32API.cpp (set_menu_state): New.
4259    
4260    2001-08-20  Timo Schulz <[email protected]>
4261    
4262        * wptGPG.cpp (create_gpg_options): Fixed nul byte bug. Thanks to Thomas.
4263        * wptPreferencesDlg.cpp (prefs_dlg_proc): Fixed the code to disable
4264        the hotkeys. Automatically enable or disable the hotkey field depend
4265        on the switch.
4266    
4267    2001-08-17  Timo Schulz <[email protected]>
4268    
4269        * wptClipSignDlg.cpp (clip_sign_dlg_proc): Choose key if there is only
4270        one by default.
4271        * wptKeyList.cpp (keylist_add_to_recipients): Ditto.
4272        * wptGPG.cpp (gpg_check_homedir): Creates the GPGME specific gpgProgram
4273        entry in the registry in the case it's missing (whenever it's possible!).
4274        (check_gpg_path): Rewrite parts of the code.
4275    
4276    2001-08-11  Timo Schulz <[email protected]>
4277    
4278        * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Beautify the dialog and
4279        separate the fingerprint from the othr information.
4280        * wptGPG.cpp (check_opt_keyring): New. Do a sanity check if the
4281        file, specified in the options line, does exist.
4282    
4283    2001-08-08  Timo Schulz <[email protected]>
4284    
4285        * wptGPG.cpp (check_gpg_path): Sanity check for size of the options file.
4286        Support for more configurations.
4287        * wptFileSignDlg.cpp (file_sign_dlg_proc): Fixed error in signature mode.
4288        Add all strings to the translation suite.
4289        * Updated all NLS dialog strings.
4290        * wptRFC2440.cpp (get_pkttype): Fixed error to check the CTB.
4291        * wptFileManager.cpp (fm_decrypt): Support to decrypt armored file,
4292        with a dynamic callback for the passphrase.
4293    
4294    2001-08-06  Timo Schulz <[email protected]>
4295    
4296        * wptFilemanager.cpp (fm_sign): Set the keyid length to 16.
4297    
4298    2001-08-05  Timo Schulz <[email protected]>
4299    
4300        * wptKeylist.cpp (keylist_add_key): Change the schematics to support
4301        all keyids.
4302        * wptSigList.cpp (siglist_build): New. Interface code to load the
4303        signature list.
4304        * wptKeysigDlg.cpp (keysig_dlg_proc): Uses siglist_build.
4305    
4306    2001-08-03  Timo Schulz <[email protected]>
4307    
4308        * wptMainProc.cpp (wpt_main_proc): The GPG menu was removed, now
4309        we support this code in the key manager.
4310        * wptKeyMisc.cpp (key_misc_dlg_proc): Supports new GPG commands.
4311        * wptKeyserver.cpp (kserver_index_request), (kserver_recv_request):
4312        Removed. The code moved into the main functions.
4313        (kserver_send), (kserver_recv): Ditto.
4314        (sock_write): Improved code.
4315        (sock_read): Ditto and some additional timeout.
4316        (sock_select): New. Figure out the socket state.
4317        (kserver_search_init): New. Make connection to the server.
4318        * wptHKPSearchDlg.cpp (hkp_search_dlg_proc): Now it uses the new
4319        keyserver code.
4320        * wptFile.cpp (get_keyid_from_file): Add support for the PGP marker
4321        packet. Thanks to Alan.
4322        (check_for_symenc_data): Ditto.
4323        * wptFileManager.cpp (fm_get_file_type): Ditto.
4324        (fm_decrypt): Move the keycache in the if loop and fix the keycache
4325        type.
4326    
4327    2001-08-02  Timo Schulz <[email protected]>
4328    
4329        * wptGPG.cpp (check_gpg_path): Check the size of both keyrings too.
4330        Useful in the case the file was generated but it's empty.
4331        * wptKeyEditDlg.cpp (key_edit_dlg_proc): Fixed some typos.
4332    
4333    
4334    2001-08-01  Timo Schulz <[email protected]>
4335    
4336        * wptKeyserver.cpp (kserver_urlencode): Create a HTTP compatible
4337        request for uploading a key.
4338        (kserver_send_request): Use the urlencode to send the key.
4339        (sock_read): New. Improved read function to replace recv.
4340        (sock_write): New. Improved write function to replace send.
4341        * wptFileManager.cpp (fm_get_file_type): If the data is armored,
4342        call fm_check_armor_type().
4343        (fm_check_armor_type): New. Figure out the armor type of the data.
4344        * wptKeyMisc.cpp (key_misc_dlg_proc): Use a menu instead of the
4345        buttons. Optimized the code.
4346    
4347    2001-07-30  Timo Schulz <[email protected]>
4348    
4349        * wptClipSignDlg.cpp (clip_sign_dlg_proc): Added the interface code
4350        for the agent.
4351        * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Ditto.
4352    
4353    2001-07-29  Timo Schulz <[email protected]>
4354    
4355        * wptKeyRevokeDlg.cpp (key_revoke_dlg_proc): New. Dialog for creating
4356        a key revocation certificate. Add a hint to show how sentensive this
4357        data is.
4358        * wptKeyMiscDlg.cpp (keymisc_dlg_proc): Added the code to handle the
4359        revocation.
4360        * wptAgent.cpp: Source for the server interface removed.
4361        (agent_is_avail): New. Checks if the agent is available.
4362        * wptClipDecryptDlg.cpp (clip_decrypt_dlg): Added the interface code
4363        for the agent.
4364    
4365    2001-07-26  Timo Schulz <[email protected]>
4366    
4367        * wptGPG.cpp (check_gpg_keyring): New. Check if a gpg keyring
4368        exists. Useful if the keyring was moved during some commands.
4369        * wptMainProc.cpp (wpt_main_proc): Use the new code. Thanks to
4370        Rich to discover this.
4371    
4372    2001-07-25  Timo Schulz <[email protected]>
4373    
4374        * WinPT.cpp (WinMain): Add a sanity check for the keycache to detect
4375        serious GPG errors.
4376        * wptFileManager.cpp (fm_sym_encrypt): New. Symmetric encryption.
4377        Suggested by Graham.
4378        (fm_decrypt): Change code to support symmetric decryption.
4379        (fm_get_file_type): Fixed some typos.
4380    
4381    2001-07-24  Timo Schulz <[email protected]>
4382    
4383        * wptKeyMiscDlg.cpp (keymisc_dlg_proc): Get new cache context after
4384        reloading the keycache. Fixed the memory leaks. Thanks to Andreas.
4385        * wptKeyEditDlg.cpp (keyedit_dlg_proc): Better GPGME callback to inform
4386        the user about errors.
4387        * wptKeyTrustPathDlg.cpp (copy_trust_item): New. Copy the GPGME structure
4388        in our own context.
4389        (treeview_insert_item): New. Handy function to insert an entry.
4390        (treeview_create_child_item): New. Insert a trustlist node.
4391        (treeview_add_trustpath): New. Add recursively the whole trust path
4392        int the tree view.
4393        * wptKeysigDlg.cpp (check_for_missing_keys): New. Checks if the
4394        signature list contains entries with a NOKEY status.
4395        (recv_missing_keys): New. Receive all keys with a NOKEY as the signature
4396        status.
4397        * wptImportList.cpp (implist_load): New. Initialize the listview item
4398        with an import overview.
4399        * wptClipImportDlg.cpp (clip_import_dlg_proc): Use implist_load instead
4400        of the code.
4401        (print_import_status): Summarize the results. We need this because file
4402        import needs the same function.
4403        * wptFileImportDlg.cpp (file_import_dlg_proc): New. Interface for the
4404        file manager.
4405        * wptFileManagerDlg.cpp (file_manager_dlg_proc): New code for the key
4406        import from file.
4407        * wptFileManager.cpp (fm_import): New. Ditto.
4408        * wptKeyserver.cpp (kserver_connect): Take care for some return values
4409        and set the socket to non blocking mode.
4410        Moved the Winsock2 init code to wptMainProc.cpp
4411        * wptMainProc.cpp (wpt_main_proc): Wsock2 code.
4412        * wptHKPSearchDlg.cpp (hkpsearch_dlg_prog): Remove Wsock2 init code.
4413    
4414    2001-07-22  Timo Schulz <[email protected]>
4415    
4416         * wptKeyPrefsDlg.cpp (keyprefs_dlg_proc): New.
4417         (get_key_created): New. Transform ulong timestamp to ascii.
4418         (get_key_algo): New. Returns a formatted algorithm (depend on subkeys).
4419         (get_key_size): New. Returns a formatted size depend (depend on subkeys).
4420         * wptSigList.cpp (siglist_add_key): Fix the timestamp.
4421         * wptKeyMiscDlg.cpp (keymisc_dlg_proc): Removed "list sigs" and replace
4422         this with list trust path.
4423         * wptKeySigDlg.cpp (keysig_dlg_proc): Remove the set_check_mode function
4424         because we always check the signatures.
4425         * wptKeyTrustPathDlg.cpp (keytrust_dlg_proc): New.
4426        
4427    2001-07-21  Timo Schulz <[email protected]>
4428    
4429        * wptFileEncryptDlg.cpp (file_encrypt_dlg_proc): Set cancel mode in
4430        the case of IDCANCEL.
4431        * wptFileSignDlg.cpp (file_sign_dlg_proc): Ditto.
4432        * wptKeyEditDlg.cpp (keyedit_dlg_proc): Check if the key is a key pair
4433        pair and only if activate the passphrase dlg items.
4434        Do sanity checks for all buttons that require key pairs.
4435        * wptKeyMiscDlg.cpp (keymisc_dlg_proc): Support the new code.
4436        
4437    2001-07-20  Timo Schulz <[email protected]>
4438    
4439        * wptKeyserver.cpp: (kserver_send_request): Correct the octect length
4440        of the request.
4441        (check_hkp_response): If an error ocurred, copy the error message into
4442        the static buffer.
4443        (kserver_strerror): Interface for the static error buffer.
4444        * wptKeyserverDlg.cpp (hkp_err_box): Generates a HKP specific message
4445        box.
4446        (hkp_send_key): Add more verbose messages at the end.
4447        (hkp_recv_key): Ditto.
4448        (check_pattern): Rewrote the entire code to be more bug proof.
4449        * wptKeylist.cpp (keylist_add_to_recipients): Add a flag to indicate
4450        that the recipient list contains untrusted entries.
4451        * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): Use the new flag to
4452        force GPG to add the need options.
4453        * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Ditto.
4454    
4455    2001-07-19  Timo Schulz <[email protected]>
4456    
4457        * wptClipDecryptDlg.cpp (clip_decrypt_dlg_proc): Support for more
4458        detailed error messages in the case for a missing key or an included
4459        signature.
4460    
4461    2001-07-17  Timo Schulz <[email protected]>
4462    
4463        * wptKeylist.cpp (keylist_build_small): Support for a minimal keybox
4464        and increment the 'cols' variable inside the structure for further use.
4465        (add_key): Watch for the 'cols' variable to figure out how much columns
4466        are used.
4467        * wptListView.cpp (listview_set_ext_style): Set an extended style for
4468        the given listview.
4469        * wptKeyserverDlg.cpp (keyserver_dlg_proc): Use WM_NOTIFY to save the
4470        selected server.
4471        * wptClipSignDlg.cpp (clip_sign_dlg_proc): Ditto.
4472        * wptKeyserver.cpp (kserver_connect): IP address support. This is faster
4473        and no DNS lookup is needed.
4474    
4475    2001-07-14  Timo Schulz <[email protected]>
4476    
4477        * wptKeylist.cpp (keylist_add_key): Check for secret keys before adding
4478        it to the signing keylist.
4479        * wptClipSignDlg.cpp (clip_sign_dlg_proc): Add newline if the passphrase
4480        is empty.
4481        * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Ditto.
4482    
4483    
4484    2001-07-13  Timo Schulz <[email protected]>
4485    
4486        * wptKeyserver.cpp (kserver_send_request): Add the "keytext" string to
4487        the request. Arggg!
4488        (check_hkp_response): Add flag to differ between 'send' and 'recv' mode.
4489    
4490    
4491    2001-07-12  Timo Schulz <[email protected]>
4492    
4493        * wptClipDecryptDlg.cpp (clip_decrypt_dlg): If the dialog was canceled,
4494        just quit without any messages. Suggested by Rich.
4495    
4496    
4497    2001-07-11  Timo Schulz <[email protected]>
4498    
4499        * wptKeyserver.cpp (wsock_strerror): If it's an unknown error, add
4500        the integer.
4501        (keyserver_create_conf): Create a config file instead of the error.
4502        * wptGPG.cpp (create_gpg_options): If the file doesn't exist create
4503        a default file. This prevents confusing error messages.
4504        (get_gpg_options): Use new code.
4505        * wptErrors.cpp (winpt_debug_msg): Improved debug message that tells
4506        the user how to find the files.
4507    
4508    2001-07-05  Timo Schulz <[email protected]>
4509    
4510        * wptHotkey.cpp (mod_hotkeys): Fix a small typo.
4511    
4512    2001-07-04  Timo Schulz <[email protected]>
4513    
4514        * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Auto retrieve key
4515        if the user agree.
4516        * wptKeylist.cpp (keyload_load): Use the mode from the param, not
4517        the hardcoded.
4518        * wptGPGOptDlg.cpp (gpgopt_dlg_proc): Load options file on startup.
4519        Rename 'load' to 'reload' to make sense with the new code.
4520        * wptHotkeys.cpp (mod_hotkeys): Rewrite the entire code for the
4521        registry stuff.
4522        * wptRegistry.cpp (set_reg_winpt_prefs): Ditto.
4523        (get_reg_winpt_prefs): Ditto.
4524        (regist_inst_winpt): Remove the old code.
4525        (register_single_filetype): Replacement for the old code.
4526    
4527    2001-07-01  Timo Schulz <[email protected]>
4528    
4529        * wptFileManager.cpp (fm_verify): New.
4530        (fm_decrypt): New.
4531        * wptFileEncryptDlg.cpp (file_encrypt_dlg_proc): New.
4532    
4533    
4534    2001-06-30  Timo Schulz <[email protected]>
4535    
4536        * wptFilemanagerDlg.cpp (file_manager_dlg_proc): Uses the new passphrase
4537        code.
4538        * wptClipSignDlg.cpp (clip_sign_dlg_proc): Ditto.
4539        * wptClipSignEncDlg.cpp (clip_sign_dlg_proc): Ditto.
4540        * wptFileManager.cpp: New. (fm_build): New. Initialize the filemanager.
4541        (fm_delete): New.
4542        (fm_encrypt): New.
4543        (fm_get_current_pos): New.
4544        (fm_get_file_type): New.
4545        (fm_add_dropped_files): New.
4546    
4547    2001-06-29  Timo Schulz <[email protected]>
4548    
4549        * wptClipEditDlg.cpp (clip_edit_dlg_proc): Fix a small bug that prevent
4550        to send data to the clipboard.
4551        * wptMainProc.cpp (wpt_main_proc): Change the SetForegroundWindow to
4552        destroy the window immediately.
4553        * wptKeyserver.cpp (kserver_getip): Removed.
4554        (kserver_get_langname): Removed.
4555        (kserver_load_conf): New. Load the keyserver.conf file and set the
4556        included keyserver addresses into the global context.
4557        * WinPT.cpp (WinMain): Add the kserver_load_conf to intialize the
4558        keyserver context.
4559        * wptImplist.cpp (get_key_date): New. Transform integer timestamp
4560        to ISO date.
4561        (implist_add_key): Now it uses the context instead of all single
4562        variables.
4563    
4564    2001-06-28  Timo Schulz <[email protected]>
4565    
4566        * wptRFC2440.cpp (get_pkttype): Renamed from get_pkt_type and all new
4567        flag variables to support RFC1991.
4568        (get_rfc2440_pktlen): Renamed from get_pkt_len to support RFC1991.
4569        (get_rfc1991_pktlen): Ditto.
4570    
4571    2001-06-27  Timo Schulz <[email protected]>
4572    
4573        * wptRFC2440.cpp (get_pkt_type): New. Extract the OpenPGP packet type.
4574        (get_pkt_len): New. Extract the OpenPGP packet length.
4575        (parse_pke_sesskey): Read a public key encrypted session key
4576        but without data.
4577        * wptFilemanagerDlg.cpp (quote_filename): Do some quotings if the
4578        filename contains spaces. Just to make GPG happy.
4579        (file_manager_dlg_proc): Check if the file exist after encryption.
4580        * wptFile.cpp (get_keyid_from_file): Checks the file for an valid
4581        packet and then extract the keyid.
4582    
4583    2001-06-25  Timo Schulz <[email protected]>
4584    
4585        * wptKeylist.cpp (keylist_load): New. Initialize a keylist item with
4586        the contents from the given cache context.
4587        (keylist_add_to_recipients): New. Add the selected keys to the
4588        recipient set.
4589        * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): Use the new keylist
4590        function to load the listview.
4591        * wptClipExportDlg.cpp (clip_export_dlg_proc): Ditto.
4592        * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Ditto.
4593        * wptClipDecryptDlg.cpp (parse_gpg_describtion): Beautify the userid
4594        and the keyid hint.
4595    
4596    2001-06-24  Timo Schulz <[email protected]>
4597    
4598        * wptGPG.cpp (get_gpg_path): Add null termination to the string.
4599        Thanks to Jonathan who pointed this out.
4600        (get_gpg_prog): Ditto.
4601        (gpg_check_file_ext): Check the file extension for the given GPG
4602        type.
4603        (get_gpg_default_keyid): Return null if there isn't an entry in the
4604        options file.
4605        * wptKeylist.cpp (add_key): Fixed the wrong return codes of listview_xxx
4606        style functions.
4607        * wptImpList.cpp (implist_add_key): Ditto.
4608        * wptSigList.cpp (siglist_add_key): Ditto.
4609        * wptVerifyList.cpp (verlist_add_key): Ditto.
4610    
4611    2001-06-23  Timo Schulz <[email protected]>
4612    
4613        * wptGPG.cpp (get_gpg_default_keyid): Determine the keyid with the
4614        options file.
4615    
4616    2001-06-22  Timo Schulz <[email protected]>
4617    
4618        * wptHKPSearchDlg.cpp (hkpsearch_dlg_proc): New. Dialog to perform
4619        keyserver seraching. As an additional feature it's also posible to
4620        import the keys directly.
4621    
4622    2001-06-18  Timo Schulz <[email protected]>
4623    
4624        * wptKeyserver.cpp (check_hkp_response): More detailed error check
4625        of the http response.
4626        (kserver_send_request): Debug mode now uses logfile.
4627        (kserver_recv_request): Ditto.
4628        (kserver_index_request): New. Create a request for a key index.
4629        (kserver_send): Now uses check_hkp_response.
4630        (kserver_recv): Ditto.
4631        (kserver_search): New. Start the key index loop.
4632        * wptKeyserverDlg.cpp (recv_key): Check if the key was really
4633        imported and received.
4634    
4635    2001-06-17  Timo Schulz <[email protected]>
4636    
4637        * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Force to use the
4638        default key for signing.
4639    
4640    2001-06-16  Timo Schulz <[email protected]>
4641    
4642        * wptKeyEditDlg.cpp (keyedit_dlg_proc): Added missing return.
4643        Corrected return values.
4644        * wptErrors.cpp (winpt_strerror): Removed all unused error strings.
4645        * wptGPG.cpp (get_gpg_path): Change to default path and prevent
4646        buffer overflows.
4647        (get_gpg_prog): Ditto.
4648    
4649    
4650    2001-06-15  Timo Schulz <[email protected]>
4651    
4652        * wptKeylist.cpp (keylist_add_key): Change encrypt param to mode.
4653        Differ between the new keylist styles.
4654        * wptGPGME.cpp (keycache_xxx): Move the caching interface to this
4655        file. For an easier handling between dialogs and code.
4656        (keycache_rewind): New. Rewind a global keycache context.
4657        (keycache_next_key): New. Retrieve the next key from the keycache.
4658        (get_default_key): New. Return the default key, this is the secret
4659        key with the index 0.
4660        * wptClipSignDlg.cpp (clip_sign_dlg_proc): Modify the default key
4661        handling. Now the signer is set in any case. Prevent hanging GPG
4662        processes.
4663        * wptSecmem.cpp (vm_safe_init): New. Initialize the safe memory.
4664        (vm_safe_init_noswap): New. Initialize safe memory with tail data.
4665        See source for more information.
4666        (vm_safe_free): New. Free all used pointer and burn all buffers.
4667        (vm_safe_get): New. Get the begin of the alloced buffer.
4668        (vm_safe_set_swapfile): New. Set global swapfile name.
4669        (vm_safe_create_swapfile): New. Creats a swapfile and set its
4670        contents to zero.
4671    
4672    2001-06-12  Timo Schulz <[email protected]>
4673    
4674        * wptPreferencesDlg.cpp (check_hotkey): Check if the hotkey key is
4675        a big letter, otherwise convert.
4676        (preferences_dlg_proc): Check hotkeys.
4677        * wptKeylist.cpp (add_keys): Static functions to add a single key.
4678        (keylist_add_key): Now it adds all subkeys to the dialog.
4679        (keylist_alloc): Remove because it's not needed any longer.
4680        * wptImportList.cpp (implist_alloc): Ditto.    
4681        * wptSigList.cpp (siglist_alloc): Ditto.
4682        * wptVerifyList.cpp (verlist_alloc): Ditto.
4683    
4684    2001-06-10  Timo Schulz <[email protected]>
4685    
4686        * wptHotkey.cpp (enable_hotkey): New. Set enable flag for a single
4687        hotkey.
4688        (mod_hotkeys): Take care of the enable flags.
4689        (register_hotkeys): Ditto.
4690        (unregister_hotkeys): Ditto.
4691        * WinPT.cpp (WinMain): If the registry entry of WinPT doesn't exist,
4692        don't try to modify hotkeys.
4693        * WptMainProc.cpp (wpt_main_proc): All message boxes are forced to
4694        the foreground.
4695    
4696    2001-06-08  Timo Schulz <[email protected]>
4697    
4698        * wptHotkey.cpp (mod_hotkeys): Change code to support the new
4699        registry style.
4700        * wptRegistry.cpp (get_reg_winpt_prefs): Support to disable
4701        single hotkeys. Suggested by Jonathan.
4702        * wptPreferencesDlg.cpp (preferences_dlg_proc): Support to disable
4703        single hotkeys.
4704        * wptKeyserver.cpp (kserver_connect): Reset winsock error var.
4705        (keyserver_recv): Ditto.
4706        (keyserver_send): Ditto.
4707        (wsock_strerror): Returns a description of the winsock problem.
4708        * wptClipboard.cpp (clip_get_pgp_type): Check if the returned buffer
4709        is valid.
4710    
4711    2001-06-07  Timo Schulz <[email protected]>
4712    
4713        * wptOwnertrustDlg.cpp (ownertrust_dlg_proc): Set to foreground,
4714        add windows title.
4715    
4716    2001-06-05  Timo Schulz <[email protected]>
4717    
4718        * wptAboutGPGDlg.cpp (about_gpg_dlg_proc): Check if the returned
4719        buffer is valid. Remove the fixme, because it's possible that there
4720        were new cipher modules loaded.
4721        * wptClipDecryptDlg.cpp (passphrase_callback_proc): Check if the
4722        context is valid.
4723        * wptClipEditDlg.cpp (clip_edit_dlg_proc): Check if the context is valid.
4724        * wptW32API.cpp (status_box): New. Message box that is always forced
4725        to the foreground.
4726    
4727    2001-06-04  Timo Schulz <[email protected]>
4728    
4729        * wptClipImportDlg.cpp (clip_import_dlg_proc): Added the code for
4730        the improved import status.
4731    
4732    
4733    2001-06-01  Timo Schulz <[email protected]>
4734    
4735        * wptKeyEditDlg.cpp (keyedit_dlg_proc): IDC_KEYEDIT_OWNERTRUST:
4736        Release context in the case of an error.
4737        * wptMainProc.cpp (wpt_main_proc): Fix typo.
4738        * wptGPG.cpp: (init_gpg_table): Remove the case code. Now we use
4739        a static gpg object array that contains all filenames.
4740    
4741    
4742    2001-05-27  Timo Schulz <[email protected]>
4743    
4744        * wptRegistry.cpp (set_reg_winpt_prefs): Add word wrapping.
4745        (get_reg_winpt_prefs): Ditto.
4746        * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Set focus after the
4747        gpg process finished.
4748        * wptSigList.cpp (siglist_add_key): Parse the numeric timestamp to
4749        a humand readable date.
4750    
4751    
4752    2001-05-25  Timo Schulz <[email protected]>
4753    
4754        * wptKeyUidDlg.cpp (keyuid_dlg_proc): Add button to delete a choosen
4755        user id. End the dialog if there was an error during the Gpgme operations.
4756        * wptClipboard.cpp (clip_istext_avail): First check if the pointer is
4757        valid and then look at the length. Avoid crashes for some texts.
4758    
4759    2001-05-21  Timo Schulz <[email protected]>
4760    
4761        * wptKeyMiscDlg.cpp (keymisc_dlg_proc): Add new button for userid
4762        management.
4763        * wptKeyUidDlg.cpp (keyuid_dlg_proc): Finished code to show all userids
4764        from a special key.
4765    
4766    2001-05-20  Timo Schulz <[email protected]>
4767    
4768        * wptGPG.cpp (check_gpg_optfile): Count each of the keyring entries
4769        to figure out if both parts are available.
4770    
4771    2001-05-19  Timo Schulz <[email protected]>
4772    
4773        * wptPreferencesDlg.cpp (preferences_dlg_proc): If the disable hotkey
4774        flag is set, also disable all input items.
4775        (disable_dlg_item): New. Disable dialog items (windows).
4776        * wptMainProc.cpp (wpt_main_proc): Only set hotkeys if the no_hotkeys
4777        flag isn't set.
4778        * wptKeyserverDlg.cpp (send_key): Forget to set the armor flag, as
4779        a result the code only sended parts of the key.
4780        * wptConfig.cpp: Removed. Not used any longer.
4781    
4782    2001-05-18  Timo Schulz <[email protected]>
4783    
4784        * wptKeyEditDlg.cpp (keyedit_dlg_proc): Check the state of the various
4785        edit key commands. In the case the dialog was canceled, return without
4786        modifying anything.
4787        * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Check the state of the
4788        signature. If it doesn't contain a valid key, do nothing.
4789        * wptMainProc: (wpt_main_proc): If the hotkey setup doesn't work, don't
4790        quit the program. In some cases the hotkeys are possible locked.
4791        * WinPT.cpp (WinMain): If there is an error with the gpg program/path,
4792        give the user the chance to start the GPG preference dialog.
4793        * wptPreferencesDlg.cpp (preferences_dlg_proc): Added the CWS hotkey
4794        support. Flag to disable all hotkeys. Reload new hotkeys (in the case
4795        they changed). Load the registry entry on startup.
4796        * wptHotkey.cpp (mod_hotkeys): Overwrite the default hotkeys with the
4797        stored registry entries.
4798    
4799    2001-05-13  Timo Schulz <[email protected]>
4800    
4801        * wptRegistry.cpp (set_reg_key): Open a subkey, if it doesn't exist
4802        the function create it.
4803        (set_reg_winpt_prefs): Use the new function to set the subkey values.
4804        All functions now return WPTERR_REGISTRY instead of 1.
4805        Add some error handling to prevent errors in the registry.
4806        * wptPreferencesDlg.cpp (preferences_dlg): Add the code for the Clipboard
4807        hotkeys and the caching time.
4808    
4809    
4810    2001-05-12  Timo Schulz <[email protected]>
4811    
4812        * wptMainProc.cpp (wpt_main_proc): Start the agent before the decryption
4813        call.
4814    
4815    2001-05-11  Timo Schulz <[email protected]>
4816    
4817        * wptMainProc (wpt_main_proc): Change all related menu entries from
4818        Encrypt & sign to Sign & Encrypt. Added the command to the current
4819        window menu and the handling of the window messages.
4820        * wptSignEncDlg.cpp (clip_signenc_dlg_proc): Changed the window text.
4821        * wptRegistry.cpp (set_reg_winpt_prefs): New. Stores all WinPT
4822        preferences in the registry.
4823        (get_reg_winpt_prefs): Read all preferences from the registry into
4824        the options context.
4825        * WinPT.cpp (WinMain): Read in the registry preferences at the begin
4826        and store it.
4827        * wptAgent.cpp (agent_init): Check if the environment variable
4828        GPG_AGENT_INFO is set, otherwise set it.
4829        (agent_is_running): Check wether the agent is running.
4830        (agent_start): Automated function that read all needed information
4831        from global variables.
4832    
4833    2001-05-10  Timo Schulz <[email protected]>
4834    
4835        * wptFindWnd.cpp (find_window_hwnd): New. Function to retrieve
4836        the handle of the specified window.
4837        * wptAgent.cpp (agent_timer_proc): Changed the agent interface
4838        to window messages instead of socket connections.
4839        * wptMainProc.cpp (wpt_main_proc): Added the new preference dialog
4840        and menu entry.
4841        * wptPreferencesDlg.cpp: New.
4842    
4843    2001-05-09  Timo Schulz <[email protected]>
4844    
4845        * wptAgent.cpp (gpga_writen): Write 'n' bytes into a socket.
4846        (gpga_readn): Read 'n' bytes from a socket.
4847        (gpga_open): Open the interface to the GPG-Agent.
4848        (gpga_close): Close the GPG-Agent socket.
4849        (gpga_clear_passphrase): Clear a passphrase from the GPG-Agent.
4850        (agent_add_fpr): Add a fingerprint to the cache. If WinPT quits,
4851        this keys will be remove from the GPG-Agent cache.
4852        (agent_delete_fpr): Remove a fingerprint from the cache.
4853        (agent_init): Clear the cache.
4854        (agent_timer_proc): Remove all stored passphrases which were
4855        requested through the chache.
4856    
4857    2001-05-08  Timo Schulz <[email protected]>
4858    
4859        * wptKeyserver.cpp (wsock_init): Replace the kserver init
4860        code which initialized the Wsock2 interface.
4861        (wsock_end): Ditto.
4862        * wptAgent.cpp: Remove the passphrase caching code and add
4863        the GPG agent code.
4864    
4865    2001-05-05  Timo Schulz <[email protected]>
4866    
4867        * wptCurrWnd.cpp (get_curr_wnd): Alternative code to retrieve
4868        the current window handle. This code doesn't use the hook DLL.
4869        Thanks to Oliver Nittka for his patch.
4870        * wptErrors.cpp (winpt_strerror): Fixed a small typo.
4871        * wptGPG.cpp (check_last_gpg_access): Remove debug code.
4872        * wptKeyMiscDlg.cpp (keymisc_dlg_proc): Change the keycache reloading
4873        scheme to prevent reloading the cache twice.
4874    
4875    2001-05-04  Timo Schulz <[email protected]>
4876    
4877        * wptKeyTrustDlg.cpp: Renamed to wptKeyEditOwnertrustDlg.cpp.
4878        * wptKeyEditOwnertrustDlg.cpp (keyedit_ownertrust_dlg):
4879        Move all the GPGME specific code to the main dialog. Now only
4880        the context values are set.
4881        * wptKeyEditDlg.cpp (keyedit_dlg_proc): Include the changed ownertrust
4882        code.
4883    
4884    2001-05-02  Timo Schulz <[email protected]>
4885    
4886        * wptKeyEditAddSubkeyDlg.cpp: New. Dialog to create additional
4887        subkeys for the mainkeys.
4888        * wptKeyEditAddUidDlg.cpp: (keyedit_adduid_dlg_proc): Set foreground
4889        window flag.
4890        * wptKeyEditDlg.cpp: (keyedit_dlg_proc): Added the code for the
4891        addkey feature.
4892    
4893    2001-05-01  Timo Schulz <[email protected]>
4894    
4895        * wptCurrWnd.cpp (wnd_msg_markall): New. Send the CTRL+a key sequence
4896        to a window.
4897        (wnd_msg_copy): New. Send the CTRL+c key sequence to a window.
4898        (wnd_msg_paste): New. Send the CTRL+v key sequence to a window.
4899        (wnd_msg_em_set_pos): Manipulate an edit multiline control text pos.
4900        * wptMainProc.cpp (wpt_main_proc): Fix some message string for
4901        the hotkey handling. Quit the program if a registration procedure
4902        failed.
4903        * wptErrors.cpp (log_box): Improved log handling to dump states
4904        of variables during regression tests.
4905    
4906    2001-04-30  Timo Schulz <[email protected]>
4907    
4908        * wptClipEditDlg.cpp: Now the dialog uses the Courier font to
4909        enhance the format of keys and other GPG data.
4910        * wptKeyserverDlg.cpp (keyserver_dlg_proc): Set the cache realod
4911        flag after receiving a key.
4912        * wptKeyTrustDlg.cpp (keytrust_dlg_proc): Add error message when
4913        no listbox entry was choosen.
4914        * wptKeySignDlg.cpp (keysign_dlg_proc): Add Check button text to
4915        the NLS suite.
4916        * wptKeygenDlg.cpp (keygen_dlg_proc): Set the cache reload flag
4917        instead of refresh the keycache.
4918    
4919    2001-04-29  Timo Schulz <[email protected]>
4920    
4921        * wptKeyEditDlg.cpp (clear_dlg_fields): Clear all passphrase items.
4922        (keyedit_dlg_proc): Free gpgme context. Add the passphrase for the
4923        adduid command.
4924        * wptKeyEditAddUidDlg.cpp (keyedit_adduid_dlg_proc): Initialize
4925        the dialog with a KEY structure that holds the keyid and the userid.
4926        * wptWndHook.cpp: Remove the global context and use instead of it
4927        static variables. Put all static variables into the SHARED data
4928        segment in the DLL.
4929    
4930    2001-04-28  Timo Schulz <[email protected]>
4931    
4932        * wptGPGME.cpp: New. Move some additional GPGME code into WinPT.
4933        So it's easier to update GPGME and we can use NLS to translate
4934        error strings.
4935        * wptVerifyList.cpp (get_sig_date): New. Removed from the GPGME code
4936        because we only use it here.
4937        * wptKeyEditDlg.cpp (keyedit_dlg_proc): Add the 'change passphrase'
4938        feature to the edit-key interface.
4939    
4940    2001-04-27  Timo Schulz <[email protected]>
4941    
4942        * wptCurrWnd.cpp (get_window_contents): Change the code for the last
4943        window concept. Thanks to Oliver.
4944        (set_window_contents): Add some stuff to set the position if the
4945        current window is an edit control.
4946        * wptKeyEditDlg.cpp (keyedit_dlg_proc): Add code for the 'adduid'
4947        stuff.
4948        * wptKeyEditAddUidDlg.cpp: New. (keyedit_adduid_dlg_proc): Code to
4949        create a new user id for a GPG key.
4950    
4951    2001-04-26  Timo Schulz <[email protected]>
4952    
4953        * wptKeyEditDlg.cpp (keyedit_dlg_proc): New. Dialog for the various
4954        edit-key commands.
4955        * wptKeyMiscDlg.cpp (keymisc_dlg_proc): Add the button for the edit
4956        key code.
4957    
4958    2001-04-25  Timo Schulz <[email protected]>
4959    
4960        * wptKeySignDlg.cpp (keysign_dlg_proc): Now we use a new GPGME
4961        callback system to pass the keyedit information to GPG.
4962        * wptKeyTrustDlg.cpp (keytrust_dlg_proc): Ditto.
4963    
4964    2001-04-24  Timo Schulz <[email protected]>
4965    
4966        * wptEncryptDlg.cpp (encrypt_dlg_proc): Release the static listview
4967        item and set it to zero.
4968        * wptSignDlg.cpp (sign_dlg_proc): Ditto.
4969        * wptSignEncDlg.cpp (sign_encrypt_dlg_proc): Ditto.
4970        * wptVerifyDlg.cpp (verify_dlg_proc): Ditto.
4971        * wptKeyMiscDlg.cpp (keymisc_dlg_proc): Ditto.
4972        (keymisc_dlg_proc): Provide the functionality to delete key pairs
4973        secret+public.
4974        * wptWndHook.cpp (is_winpt_wnd): Remove this function and put
4975        all code into (check_wnd).
4976        (check_wnd): Check if the window doesn't is a application related
4977        window.
4978    
4979    2001-04-23  Timo Schulz <[email protected]>
4980    
4981        * wptFindWnd.cpp (find_child_wnd_proc): Removed. This functionality
4982        is not needed because all dialog windows are top level windows.
4983    
4984    2001-04-22  Timo Schulz <[email protected]>
4985    
4986        * wptGPG.cpp (check_last_gpg_access): Reset switch before testing
4987        the condition.
4988        * wptFindWnd.cpp (find_child_wnd_proc): New. Callback to enumerate
4989        all children windows.
4990        (find_parent_wnd_proc): New. Callback to enumerate all parent windows.
4991        (find_window): New. Return if the specified windows as found.
4992        * wptW32API.cpp: (dialog_box_param): New. Alias with the additional
4993        feature to check if the dialog already exist (and then preventing
4994        the creation).
4995        * wptMainProc.cpp (wpt_main_proc): Replace all DialogBoxParam with
4996        then new dialog_box_param function. Thanks to Martin who told me
4997        about this dialog problem.
4998        * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Ditto.
4999        * wptKeyMiscDlg.cpp (keymisc_dlg_proc): Ditto. Add translation for the
5000        new signature buttons.
5001    
5002    2001-04-21  Timo Schulz <[email protected]>
5003    
5004        * wptWndHook.cpp (install_cbt_hook): Remove the thread because the
5005        system already is into a DLL.
5006        * wptKeyMiscDlg.cpp (keymisc_dlg_proc): Remove checkbutton and use
5007        instead of it a button to check the key signatures.
5008        * wptGPG.cpp (get_last_gpg_access): New. Retrieve the file timestamp
5009        from the given gpg object.
5010        (check_last_gpg_access): New. Compare the last file timestamp with the
5011        new timestamp.
5012        (init_gpg_table): New. Initialize the table with gpg objects who shall
5013        be watched.
5014        (keyring_check_last_access): Use the new code.
5015        * wptCurrWnd.cpp (set_window_contents): Restore the window if it is
5016        now iconic.
5017        * wptMainProc.cpp (wpt_main_proc): Add decrypt/verify for the
5018        current window stuff.
5019    
5020    2001-04-17  Timo Schulz <[email protected]>
5021    
5022        * wptWndHook.cpp (is_taskbar_wnd): New. Alias to check if the window
5023        belongs to the taskbar area.
5024        (is_winpt_wnd): New. Alias to check if the window belongs to WinPT.
5025        (cbt_proc): Change code to include both functions.
5026        * wptCurrWnd.cpp (get_window_contents): Add switch if we use the
5027        foreground or the CBT window.
5028        * wptMainProc.cpp (wpt_main_proc): All hotkey operations for the
5029        current window mode set the no_cbt variable.
5030        * wptGPG.cpp (keyring_check_last_access): New. Check if the keyring
5031        was modified by an external program.
5032        * wptKeyMiscDlg.cpp: (keymisc_dlg_proc): Now check for external
5033        keyring changes.
5034    
5035    2001-04-16  Timo Schulz <[email protected]>
5036    
5037        * wptWndHook,cpp (cbt_proc): Compare process ids to differ between
5038        WinPT and normal windows.
5039        (install_cbt_hook): Add pid to the context.
5040    
5041    2001-04-14  Timo Schulz <[email protected]>
5042    
5043        * wptCurrWnd.cpp: (get_window_contents): Add an event to switch
5044        the windows. This is needed by the current code.
5045        (set_window_contents): Ditto.
5046        * wptWndSwitchDlg.cpp: (wndswitch_dlg_proc): Create a hidden dialog
5047        and force it to the foreground. This is the event needed by the code
5048        above.
5049        (create_wndswitch_event): Execute the dialog.
5050        * wptMainProc.cpp: (wpt_main_proc): Add new links in the hotkey
5051        section. Add message entries for the code.
5052        * wptW32API.cpp: (copy_window_to_clip): Moved to the into the OE
5053        mailer code.
5054        (insert_window_from_clip): Ditto.
5055        * wptMailPlugin.cpp: (oe_set_message): Insert the new code and add
5056        the event to switch the windows.
5057        (oe_get_message): Ditto.
5058    
5059    2001-04-13  Timo Schulz <[email protected]>
5060    
5061        * wptMailPlugin.cpp: (oe_set_message): Change the id's for
5062        the attach_thread_input.
5063        (oe_get_message): Ditto.
5064        * wptCurrWnd.cpp: (get_window_contents): Ditto.
5065        (set_window_contents): Ditto.
5066    
5067    2001-04-12  Timo Schulz <[email protected]>
5068    
5069        * wptHotkeys.cpp: (register_single_hotkey): Add code for the current
5070        window stuff.
5071        * wptMainProc.cpp: (wpt_main_proc): WM_HOTKEY. Add the current window
5072        hotkeys.
5073        * wptW32API.cpp: (attach_thread_input): Split up the functions into
5074        two parts. The attach flags is always set.
5075        (detach_thread_input): See above. The attach flags is never set.
5076        * wptCurrWnd.cpp: New. Code for the current window stuff.
5077        (get_window_contents): Extract the text from the given window to
5078        the clipboard.
5079        (set_window_contents): Insert clipboard into the given window.
5080    
5081    2001-04-09  Timo Schulz <[email protected]>
5082    
5083        * wptGPG.cpp: (check_line): Ignore empty lines.
5084        (check_gpg_options): Ditto.
5085    
5086    2001-04-09  Timo Schulz <[email protected]>
5087    
5088        * wptClipboard.cpp: (clip_get_pgp_type): New. Return the PGP packet
5089        type. Kludge for decrypt/verify.
5090        * wptMainProc.cpp: (wpt_main_proc): Remove verify and put the
5091        code into the decrypt routine.
5092        * wptClipImportDlg.cpp: (clip_import_dlg_proc): New button to start
5093        the key management after import.
5094    
5095    2001-04-07  Timo Schulz <[email protected]>
5096    
5097        * wptAgent.cpp: (agent_new): Rename to agent_init and modify source.
5098        (agent_destroy): Ditto.
5099        (agent_passphrase_cache): Ditto.
5100        (agent_passphrase_remove): Ditto.
5101        (agent_passphrase_get): Ditto.
5102    
5103    2001-04-06  Timo Schulz <[email protected]>
5104    
5105        * wptGPG.cpp: (check_gpg_path): Fix a small error.
5106        * WinPT.cpp: (WinMain): Add a dialog for the possibity that it's the
5107        first time a user started WinPT.
5108        * wptClipboard.cpp: (clip_isalready_secured): Check the begin and
5109        end PGP header.
5110    
5111    2001-04-06  Timo Schulz <[email protected]>
5112    
5113        * wptOwnertrustDlg.cpp: New. (ownertrust_dlg_proc): New.
5114        * wptKeyTrustDlg.cpp: (key_trust_dlg_proc): Add new button for the
5115        ownertrust dialog.
5116    
5117    2001-04-04  Timo Schulz <[email protected]>
5118    
5119        * wptClipDecryptDlg.cpp (passphrase_callback_proc): Remove the static
5120        passphrase. Now a callback context is used.
5121        (passphrase_cb): Ditto.
5122        (clip_decrypt_dlg): Ditto.
5123        * wptWndHook.cpp (cbt_thread): New. Thread to enable CBT hook.
5124        (install_cbt_hook): Modify for the new thread model.
5125        (remove_cbt_hook): Ditto.
5126        * wptW32API.cpp: (init_crtical_section): New. Make the code MT safe.
5127        (delete_critical_section): Ditto.
5128        (lock): Ditto.
5129        (unlock): Ditto.
5130    
5131    2001-04-02  Timo Schulz <[email protected]>
5132    
5133        * WinPT.cpp: (set_gpgme_debug_env): New: Set the environment variable.
5134        * wptClipSignDlg.cpp: (clip_sign_dlg_proc): Now the keylist widget only
5135        contains valid keys.
5136        * wptClipEncryptDlg.cpp: (clip_encrypt_dlg_proc): Ditto.
5137    
5138    2001-03-31  Timo Schulz <[email protected]>
5139    
5140        * wptClipSignDlg.cpp: (clip_sign_dlg_proc): If no key was choosen,
5141        the GPG default key will be used.
5142    
5143    2001-03-30  Timo Schulz <[email protected]>
5144    
5145        * wptW32API.cpp: (new_strdup): Remove.
5146        * wptW32API.h: Ditto.
5147        * wptWndHook.cpp: (get_cbt_curr_wnd): Return the current window.
5148        * wptKeygenDlg.cpp: (clear_dlg_fields): New: Clear all text fields.
5149    
5150    2001-03-28  Timo Schulz <[email protected]>
5151    
5152        * wptClipEncryptDlg.cpp: (clip_encrypt_dlg_proc):
5153        Added the keyid to the "no trust" message.
5154        * wptKeyserverDlg.cpp: (check_pattern): New:
5155        Do some sanity checks of the search pattern.
5156        * wptMainProc.cpp: (wpt_main_proc): Add agent support.
5157        * wptHotkey.cpp: Add agent support.
5158    
5159    2001-03-21  Timo Schulz <[email protected]>
5160    
5161        * WinPT.cpp: (WinMain): Re-activate the enable debug switch.
5162        * wptKeylist.cpp: (keylist_add_key): Ignore invalid keys.
5163    
5164    2001-03-20  Timo Schulz <[email protected]>
5165    
5166        * wptClipDecryptDlg.cpp: Rewrote
5167    
5168    2001-03-19  Timo Schulz <[email protected]>
5169    
5170        * wptVerifyList.cpp: New control for the verify dialog.
5171        * wptClipVerifyDlg.cpp: Rewrote
5172    
5173    2001-03-18  Timo Schulz <[email protected]>
5174    
5175        * wptClipVerifyDlg.cpp: New: stub for further verify dialogs.
5176        * wptAgent.cpp: New: Experimental passphrase caching.
5177    
5178    2001-03-16  Timo Schulz <[email protected]>
5179    
5180        * wptDlgs.h: Add new dialog callback function.
5181        * wptKeysigDlg.cpp: New. Key signature listing dialog.
5182    
5183    2001-03-15  Timo Schulz <[email protected]>
5184    
5185        * wptClipEncryptDlg.cpp: Fix translation.
5186        * wptKeygenDlg.cpp: Fix the names of the button (avoid confused users).
5187        * wptKeymiscDlg.cpp: Fix the key deleting stuff.
5188    
5189    2001-02-27  Timo Schulz <[email protected]>
5190    
5191        * wptKeylistWidget.cpp: New. Implementation of a W32 keylist control.
5192        * wptClipKeytrustDlg.cpp: Index was counted from 0 (should be from 1):
5193        Fixed.
5194    
5195    2001-02-25  Timo Schulz <[email protected]>
5196    
5197        * wptGPGPrefsDlg.cpp: Add some new translation strings.
5198        * wptKeyGenDlg.cpp: Add all dialog text to the NLS suite.
5199        * wptMainProc.cpp, wptClipDecryptDlg.cpp: Change to new packet parser.
5200        * wptClipImportDlg.cpp: Finished basic interface.
5201    
5202    2001-02-24  Timo Schulz <[email protected]>
5203    
5204        * wptGPG.cpp: (check_gpg_path): Fix a bug.
5205       (check_gpg_options): Fix some bugs.
5206    
5207    2001-02-22  Timo Schulz <[email protected]>
5208    
5209        * wptGPG.cpp: (check_line): New. Check if the line contains a valid
5210        gpg argument.
5211        (check_gpg_options): New. Parses each buffer line to check_line().
5212    
5213    2001-02-21  Timo Schulz <[email protected]>
5214    
5215        * wptGPG.cpp: Fix the check_gpg_optfile() code.
5216            (gpg_errstr): Define some error constants to be more verbose.
5217            (set_gpg_options): New. Manipulate the options file.
5218            (get_gpg_options): New. Read in the options file.
5219        * wptFile.cpp: (get_file_size): New.
5220        * wptGPGOptDlg.cpp: New. Dialog for editing the options file
5221    
5222    2001-02-20  Timo Schulz <[email protected]>
5223    
5224        * wptGPGPrefsDlg.cpp: Add some sanity checks for the value.
5225        * wptClipImportDlg.cpp: Add some new code.
5226    
5227    2001-02-19  Timo Schulz <[email protected]>
5228    
5229        * wptRegistry.cpp: (is_installed): Remove.
5230        (regist_inst_winpt): Add selfcheck.
5231        (regist_inst_gpg): New. Add gpg releated registry entries.
5232        (regist_inst_mo): New. Add nls related path.
5233        (get_reg_entry), set_reg_entry(): Modify to be more flexible.
5234        (set_reg_entry_gpg): Handy functions for get_reg_entry.
5235        (set_reg_entry_mo): Ditto.
5236        (get_reg_entry_gpg): Ditto.
5237        (get_reg_entry_mo(): Ditto.
5238        * wptGPGPrefsDlg.cpp, wptNLS.cpp: Add support for the locale environment.
5239        * wptGPG.cpp: (check_gpg_optfile): Figure out if the option file.
5240        include keyring entries (2x)
5241        (check_gpg_path): Include the check_gpg_optfile() check.
5242    
5243    2001-02-17  Timo Schulz <[email protected]>
5244    
5245        * wptRegistry.cpp: (get_reg_entry): Return the GnuPG homedir from
5246        the registry.
5247        (set_reg_entry): Set a gnupg registry key.
5248        * wptGPG.cpp: Modify all function for the use with get_reg_entry().
5249        * WinPT.cpp: Change the way for the gpg searching mechanism.
5250        * wptGPGPrefsDlg.cpp: New dialog for dynamic GPG configuration.
5251        * wptClipImportDlg.cpp: (key import dialog): New.
5252        * wptKeylistElement.cpp:
5253        (wpt_lv_implist_build): Build up the key import list.
5254        (wpt_lv_implist_add_key): Insert a key into the import list.
5255        (wpt_lv_implist_dummy): Dummy to build up a box with a fixed size.
5256    
5257    2001-02-10  Timo Schulz <[email protected]>
5258    
5259        * wptMainProc.cpp: Move ctb_proc and hotkey inits to this file.
5260        * wptKeylistElement.cpp: New.
5261        * wptListElement.cpp: Remove.
5262        * wptW32API.cpp: Insert all lv_*** functions.
5263        * wptKeylistElement.cpp: (wpt_lv_keylist_release_key): New.
5264        (wpt_lv_keylist_release_keys): Ditto.
5265        * wptW32API.cpp: (w32_get_thread_id): New.
5266        (w32_attach_thread_input): New.
5267        * wptMailPlugin.cpp: (oe_get_message): Add thread attach mechanism.
5268        (oe_get_message): Add thread attach mechanism.
5269        (oe_encrypt): Modify for the attach treach mechanism.
5270        Add sanity check for recipients.
5271    
5272    2001-02-07    Timo Schulz <[email protected]>
5273    
5274        * wptClipEditDlg.cpp: (clip_edit_dlg_proc): Add some sanity checks.
5275        * wptExportDlg.cpp: (clip_export_dlg_proc): Ditto.
5276    
5277    2001-02-04    Timo Schulz <[email protected]>
5278    
5279        * wptSignDlg.cpp: (wpt_sign_proc): Add secret key listing.
5280        * wptMainProc.cpp: (wpt_main_proc):
5281        Remove ciphertext checks for signing and encrypting.
5282        (allow double encryption).
5283    
5284    2001-02-03  Timo Schulz <[email protected]>
5285    
5286        * wptMailPlugin.cpp: (oe_find_msg_window): Fix window handles.
5287        (oe_find_addr_window): Ditto.
5288        (oe_find_main_window): Ditto.
5289    
5290    2001-02-02  Timo Schulz <[email protected]>
5291    
5292        * wptW32API.cpp: (w32_hit_key): New.
5293        (w32_rel_key): New.
5294        (w32_copy_to_clip): New.
5295        (w32_insert_from_clip): New.
5296        (w32_get_clip_text): New.
5297        (w32_set_clip_text: New.
5298        (w32_show_if_icon): New.
5299    
5300    2001-02-01 Timo Schulz <[email protected]>
5301    
5302        * wptW32API.cpp: (w32_get_edit_text): New.
5303        (w32_set_menu_text): New.
5304        (w32_strdup): New.
5305        * wptMailPlugin.cpp: (oe_***): New. Basic OE interface.
5306        * Create all dialogs windows in the foreground.
5307    
5308    2001-01-31  Timo Schulz <[email protected]>
5309    
5310        * wptKeygenDlg.cpp: (wpt_keygen_proc): Passphrase sanity check.
5311        * wptW32API.cpp: New.
5312        * WinPT.cpp: (WinMain): Change the keyring checking code.
5313    
5314    2001-01-29  Timo Schulz <[email protected]>
5315    
5316        * wptClipboard.cpp: (clip_is_already_secure):
5317        Modify the pgp data detection.
5318    
5319    2001-01-28  Timo Schulz <[email protected]>
5320    
5321        * wptHotkey.cpp: (register_hotkey): Hotkey registration.
5322        (unregister_hotkey): Hotkey removing.
5323        * wptHokey.h: New.
5324        * wptWndHook.cpp:
5325        (wpt_cpt_proc): Window hook to save the current windows.
5326        * wptWndHoo.h: New.
5327        * wptMainProc.cpp: (wpt_main_proc): Add hotkey messages.
5328        * WinPT.cpp: (WinMain): Add hotkey registration.
5329    
5330    2001-01-21  Timo Schulz <[email protected]>
5331    
5332        * wptNLS.cpp: ported to C++.
5333        (gettext): Remove CP850 to ISO88591 conversation.
5334    

Legend:
Removed from v.12  
changed lines
  Added in v.176

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26