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

Diff of /trunk/Src/ChangeLog

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

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

Legend:
Removed from v.14  
changed lines
  Added in v.215

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26