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

Annotation of /trunk/Src/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log


Revision 215 - (hide annotations)
Wed May 17 07:10:46 2006 UTC (18 years, 9 months ago) by twoaday
File size: 220145 byte(s)


1 twoaday 215 2006-05-15 Timo Schulz <[email protected]>
2    
3     * wptKeyEditDlgs.cpp (userid_list_init): Forgot to
4     apply patch. Thanks to vedaal.
5    
6 twoaday 214 2006-05-14 Timo Schulz <[email protected]>
7    
8     * wptKeyCache.cpp (gpg_keycache_update_attr): Parse
9     preferred keyserver URL.
10     * wptHTTP.cpp (extractHostInfo): Fix segv.
11     * wptGPGUtil.cpp (gpg_find_key_subpacket): Ignore default
12     gpg.conf.
13     * wptKeyserverSearchDlg.cpp (search_hkp_keys): Do not
14     assume an existing user id.
15     * wptPassphraseCB.cpp (passphrase_cb): Automatic cancel
16     if no passphrase is available.
17    
18     2006-05-13 Timo Schulz <[email protected]>
19    
20     * wpMainProc.cpp (secret_key_available): Move it...
21     * wptGPGME.cpp: ..to this file.
22     (check_ultimate_trusted_key): Handle the case there
23     is no secret key available.
24     * wptFileManagerDlg.cpp (update_ui_items): Improved.
25     * wptKeyManagerDlg.cpp (key_manager_dlg_proc): Deactive
26     some functions when no secret key is available.
27     * wptKeyserverSearchDlg.cpp (search_hkp_keys): Adjust
28     code and also display pubkey algorithm.
29     * wptKeyserver.cpp (safe_alloc): New.
30     (count_keys_in_response): New.
31     (parse_pub_record): New.
32     (parse_uid_record): New.
33     (kserver_release_key): New.
34     (kserver_search_begin, kserver_search_next_key):
35     Adjust for the machine readable output. Removed old code.
36     (parse_keyserver_url): New.
37     * wptUtil.cpp (substr): New.
38     * wptKeyManager.cpp (km_refresh_one_key): Properly
39     parse the keyserver URL.
40    
41     2006-05-11 Timo Schulz <[email protected]>
42    
43     * wptPassphraseCB.cpp (release_gpg_recipients): New.
44     (release_gpg_recipients): Use it here.
45     * wptFileManager.cpp (fm_decrypt): List all recipients.
46     Thanks to vedaal.
47     * wptGPG.cpp (extract_keyid): New.
48     (get_gnupg_default_key): Use it here.
49     * wptClipDecryptDlg.cpp (clip_decrypt_dlg): Allow to verify
50     one-pass-sigs again.
51    
52 twoaday 212 2006-05-09 Timo Schulz <[email protected]>
53    
54     * wptKeyRevokersDlg.cpp (revokelist_build): Store key ptr.
55 twoaday 213 * wptClipSignDlg.cpp (gpg_clip_sign): Improve error handling.
56     * wptKeysigDlg.cpp (sigprops_dlg_proc): Correct expire date.
57 twoaday 212
58 twoaday 211 2006-05-07 Timo Schulz <[email protected]>
59    
60     * wptKeyserverDlg.cpp (hkp_err_box): Improved.
61     * wptKeyserver.cpp (wsock_strerror): Likewise.
62     * wptKeygenCBDlg.cpp (keygen_cb_dlg_destroy): New param.
63     Change all callers.
64 twoaday 212 * wptKeysigDlg.cpp (do_load_keyprops): Correct key update
65     problem.
66 twoaday 211
67     2006-05-06 Timo Schulz <[email protected]>
68    
69     * wptKeyManagerDlg.cpp (reload_keycache): Use pre-defined
70     sorting order if available.
71     * wptKeyPropsDlg.cpp (key_props_dlg_proc): Use 0x prefix
72     for the key ID.
73     (get_pref_cipher): Differ between the AES algorithm IDs.
74     (key_is_valid): New.
75     * wptKeyserverDlg.cpp (check_pattern): Simplified.
76    
77 twoaday 210 2006-05-03 Timo Schulz <[email protected]>
78    
79     * wptKeyCache.cpp (keycache_prepare2): Fix possible segv.
80     Thanks to Mathias.
81    
82 twoaday 209 2006-05-02 Timo Schulz <[email protected]>
83    
84     * wptFileManagerDlg.cpp (file_encrypt_dlg_proc): Use a
85     caption for the radio button group.
86     * wptKeyserverDlg.cpp (keyserver_recv_key): Use new code.
87     * wptKeyserver.cpp (kserver_recvkey, finger_recvkey,
88     ldap_recvkey): Avoid fixed buffers.
89     (do_spawn_ldap_helper): New.
90     (ldap_recvkey): Factor out code into helper function.
91     * wptPassphraseCBDlg.cpp (passphrase_callback_proc):
92     Increase width of the list box to make sure even large
93     user IDs will be completly displayed.
94    
95 twoaday 208 2006-05-01 Timo Schulz <[email protected]>
96    
97     * WinPT.cpp (WinMain): Check if the user has admin privileges.
98     * wptW32API.cpp (user_is_admin): New.
99     * wptKeysigDlg.cpp (sigprops_dlg_proc): Cosmetical changes.
100     * wptKeyManagerDlg.cpp (key_manager_dlg_proc): Use timer
101     to re-activate the window again.
102     * wptKeylist.cpp (get_key_trust2): Differ between "full"
103     and "ultimate".
104     * wptKeyCache.cpp (keycache_prepare2): Primary user-id
105     has now highest priority.
106     * wptClipDecryptDlg.cpp (clip_decrypt_dlg): Use new utf8
107     system.
108    
109     2006-04-30 Timo Schulz <[email protected]>
110    
111     * wptKeyCache.cpp (gpg_keycache_release): Release revoker
112     list if needed.
113     * wptKeyRevokersDlg.cpp (key_get_revokers): New.
114     (key_revokers_dlg_proc): Expect winpt_key_t. Change all callers.
115     * wptKeyEditDlgs.cpp (check_desig_rev): New.
116     (do_editkey_minimize): New.
117     * wptKeyRevokeDlg.cpp (key_revoke_dlg_proc): Support to
118     generate a revoc cert as a desig revoker.
119    
120     2006-04-29 Timo Schulz <[email protected]>
121    
122     * wptVerifyList.cpp (verlist_build): Adjusted code for new
123     list view interface.
124     * wptSigList.cpp (siglist_build): Likewise.
125     * wptKeyEditDlgs.cpp (showpref_dlg_proc): Correct code
126     to display the preferences of the selected UID. Thanks to Mathias.
127     * wptKeyCacheDlg.cpp (keycache_dlg_proc): Return 1 in case
128     of an error.
129     * wptKeyCache.cpp (gpg_keycache_update_key): Always update
130     the utf8 decoded uid list.
131     * wptImportList.cpp (decode_userid): Do utf8 decoding here.
132     * wptListView.cpp (listview_new): New param for HWND handle.
133     Change all callers.
134     * wptFileManager.cpp (fm_add_sig_stat): Use utf8 decoding.
135     * wptGPGUtil.cpp (gpg_revoke_cert): Support --desig-revoker.
136     * wptClipVerifyDlg.cpp (wptClipVerifyDlg.cpp): Correct
137     keyid extraction.
138    
139 twoaday 207 2006-04-28 Timo Schulz <[email protected]>
140    
141     * wptMAPI.cpp (mapi_send_pubkey): Use new key struct.
142     * wptKeysigDlg.cpp (sigprops_dlg_proc): Prepare dialog
143     for handling policy URLs.
144     * wptKeyManagerDlg.cpp (save_column_info, restore_column_info):
145     New option KMSortBy.
146     * wptKeylist.cpp (get_key_algo): Lower priority for revoked keys.
147     * wptKeyEdit.cpp (minimizeKey): New.
148     * wptKeyCache.cpp (gpg_keycache_update_key): Reload utf8 uid list.
149    
150 twoaday 205 2006-04-27 Timo Schulz <[email protected]>
151    
152     * wptKeyManager.cpp (km_get_key_ptr): New.
153     * wptListview.cpp (listview_get_item_text): Drop utf8 support.
154     * wptKeyCache.cpp (keycache_decode_uids): New.
155     (free_native_uids): New.
156     * wptKeyEdit.cpp (uid_inf_colon_handler): Do utf8 decodig here.
157    
158     2006-04-26 Timo Schulz <[email protected]>
159    
160     * wptKeylist.cpp (get_keyid_from_fpr): New.
161     * wptDecryptClipDlg.cpp (clip_decrypt_dlg): Use it here.
162     * wptVerifyList.cpp (verlist_add_sig): Likewise.
163    
164 twoaday 204 2006-04-25 Timo Schulz <[email protected]>
165    
166     * wptFileManagerDlg.cpp (file_manager_dlg_proc): Handle IDCANCEL.
167     * wptMDSumDlg.cpp (hash_selected_files): New.
168     (mdsum_dlg_proc): Cleanups.
169     * wptKeysignDlg.cpp (keysign_dlg_proc): Fix segv.
170    
171     2006-04-23 Timo Schulz <[email protected]>
172    
173     * wptW32API.cpp (SetDlgItemText_utf8): New.
174     (SetWindowText_utf8): New.
175     (GetDlgItemText_utf8): New.
176     * wptListView.cpp (listview_add_sub_item): Internal
177     utf8 support.
178    
179 twoaday 201 2006-04-22 Timo Schulz <[email protected]>
180    
181     * wptKeyEditDlgs.cpp (addrevoker_dlg_proc): Encode
182     revoker name in UTF8.
183     * wptKeysigDlg.cpp (keysig_dlg_proc): Fix utf8 problem
184     with the window title.
185    
186     2006-04-20 Timo Schulz <[email protected]>
187    
188     * wptUTF8.cpp (native_to_utf8): Use c++ alloc.
189     * wptKeygenDlg.cpp (keygen_dlg_proc): Do not mix c and
190     c++ memory allocation.
191     * wptFileManager.cpp (show_verify_result): Show PKA status
192     if possible.
193     * wptClipVerifyDlg.cpp (get_pka_status): New.
194     (clip_verify_dlg_proc): Show PKA status if possible.
195     * wptClipEditDlg.cpp (clip_edit_dlg_proc): Handle IDCANCEL
196     to use ESC to quit the dialog.
197     * wptKeyEditDlgs.cpp (keyedit_adduid_dlg_proc): Also
198     encode the comment in UTF8. Thanks to Werner and Jan.
199    
200 twoaday 200 2006-04-16 Timo Schulz <[email protected]>
201    
202     * wptHTTP.cpp (getErrorCode): New.
203     (connect): Store winsock error code.
204     * wptGPGMEData.cpp (is_armor_header): New.
205     * wptGPG.cpp (check_gnupg_engine): Free context.
206     (gnupg_backup_keyrings): Do not use global vars.
207     * wptGPGUtil.cpp (gpg_export_seckey): Export in ascii format.
208    
209     2006-04-15 Timo Schulz <[email protected]>
210    
211     * wptKeyManager.cpp (km_get_key): New.
212     (km_key_show_revoc_info): New.
213     * wptKeyRevokeDlg.cpp (key_revoke_dlg): Cleanups.
214     (on_init_dialog): New.
215     * wptKeyManagerDlg.cpp (key_manager_dlg_proc): Factour
216     out some common code and use km_get_key() instead.
217     * wptKeyEditDlgs.cpp (do_init_keylist): Change second
218     param type. Change all callers.
219     * wptKeyEdit.cpp (addNotation): New.
220     * wptKeyEditCB.cpp (editkey_command_handler): Remove 'step'
221     param everywhere. Change all callers.
222    
223 twoaday 197 2006-04-09 Timo Schulz <[email protected]>
224    
225     * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Only return true
226     if the homedir value was changed.
227     * wptGPG.cpp (default_key_from_cache): Only return secret key
228     if public part is available.
229     (set_gnupg_default_key): Fix NULL problem.
230     * wptKeyEditDlgs.cpp (do_editkey_clean): Set update flag.
231     * wptFileCBS.cpp (write_cb, read_cb): Better error handling.
232     * wptFileManagerDlg.cpp (file_manager_dlg_proc): Handle
233     'always-on-top' correctly.
234     * wptKeylist.cpp (keylist_get_recipients): Allocate enough
235     mem to hold all possible keys.
236     (keylist_enum_keys): Likewise.
237    
238     2006-04-08 Timo Schulz <[email protected]>
239    
240     * wptKeylist.cpp (keylist_get_recipients): Always use utf8 output.
241     * wptKeyserver.cpp (kserver_connect): Fixed proxy support.
242     * wptKeyserverSearchDlg.cpp (fetch_keys): New.
243     * WinPT.cpp (WinMain): if the default key was not found, reset
244     the gpg.conf entry.
245     * wptFileManager.cpp (fm_encrypt_into_zip): Use correct output
246     file name.
247     (show_verify_result): Always use utf8 output.
248     (get_output_file): Case in-sentensive comparison.
249     (fm_assume_onepass_sig): Fixed temp file handling.
250     * wptClipEncryptDlg.cpp (show_invalid_recipients): Fix utf8
251     output.
252     * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Fix possible segv.
253    
254 twoaday 196 2006-04-07 Timo Schulz <[email protected]>
255    
256     * wptW32API.cpp (set_clip_text): Change code so it also
257     works again with non-XP systems.
258    
259 twoaday 195 2006-04-02 Timo Schulz <[email protected]>
260    
261     * wptKeyserver.cpp: decrease general threshold for timeout.
262     * wptKeyEditDlgs.cpp (do_editkey_clean): New.
263    
264     2006-04-01 Timo Schulz <[email protected]>
265    
266     * wptFileVerifyDlg.cpp (file_verify_use_event): Removed.
267     * wptFileManager.cpp (restore_original_name): New.
268     (fm_decrypt): Restore original file name from literal
269     packet if possible.
270    
271 twoaday 193 2006-03-31 Timo Schulz <[email protected]>
272    
273     * wptCommonDlg.cpp (nls_load_langlist): New.
274     (nsl_set_language): New.
275     (nls_dlg_proc): New.
276     (select_language): New. Allow user to select the language.
277     * wptNLS.c (get_gettext_langid): Updated available languages.
278     * WinPT.cpp (WinMain): Allow to select the languag on first
279     start in non-installer environments.
280     * wptVerifyList.cpp (verlist_build): Simplified.
281     (verlist_add_sig_log): Likewise.
282     * wptListview.cpp (listview_set_column_width,
283     listview_get_selected_item): New.
284     * wptKeyManager.cpp (gpg_clip_export): Merged into..
285     (km_clip_export): ..this function.
286    
287     2006-03-30 Timo Schulz <[email protected]>
288    
289     * wptW32API.cpp (insert_menu_item): New.
290     * wptSigTreeDlg.cpp (create_popup): Use it.
291     (sigtree_dlg_proc): Only show the name of the owner in the title.
292     * wptMainProc.cpp (init_common_controls): Initialize all
293     common controls here.
294     * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Drop static
295     keyserver menu concept. Add all keyservers dynamically.
296    
297     2006-03-29 Timo Schulz <[email protected]>
298    
299     * wptKeyManager.cpp (km_refresh_one_key): Fix problem
300     with preferred keyserver.
301     * wptCommonDlg.cpp (check_URL): Allow non-http URL.
302     * wptKeyEditDlgs.cpp (subkey_subclass_proc,
303     uid_subclass_proc): Disable shortcuts for non keypairs.
304     * wptMainProc.cpp (winpt_main_proc): No user interaction
305     on automatic shutdown. Thanks to Werner.
306     * wptGPGUtil.cpp (xcalloc): New.
307     (gpg_rebuild_cache): Use --batch.
308    
309 twoaday 190 2006-03-26 Timo Schulz <[email protected]>
310    
311     * wptSigTreeDlg.cpp (sigtree_load): Always use UTF8.
312     * wptMainProc.cpp (winpt_main_proc): Reload key cache
313     when the GPG settings were changed.
314     * wptKeygenDlg.cpp (keygen_wizard_dlg_proc,
315     keygen_dlg_proc): Improved check for the email address.
316     * wptKeyEditDlgs.cpp (keyedit_adduid_dlg_proc): Likewise.
317     * wptKeyserverDlg.cpp (keyserver_dlg_proc): Modified design.
318    
319 twoaday 188 2006-03-22 Timo Schulz <[email protected]>
320    
321     * wptClipSignDlg.cpp (on_init_dialog): New.
322     Check that there is at least one useable signing key.
323     * wptSigTreeDlg.cpp (sigtree_load): Correct UTF8 handling.
324     * wptKeyEditDlgs.cpp (keyedit_set_pref_keyserver): Show error
325     if needed.
326    
327 twoaday 187 2006-03-21 Timo Schulz <[email protected]>
328    
329     * wptUTF8.cpp (native_to_utf8): Use directly W32 API.
330     (utf8_to_native): Likewise. Remove cp850 conversion.
331     * wptKeyEditDlgs.cpp (do_find_userid): Correct UTF8 handling.
332     * wptKeyManager.cpp (km_delete_keys): Do not reset 'with_seckey'
333     flag.
334    
335 twoaday 185 2006-03-20 Timo Schulz <[email protected]>
336    
337     * wptUTF8.cpp (get_native_charset): Removed.
338     (utf8_to_native): Rewritten.
339     * wptKeyEditDlgs.cpp (do_add_new_userid): Correct charset
340     handling.
341     * wptKeygenCBDlg.cpp (keygen_cb): Do proper reset if needed.
342    
343     2006-03-16 Timo Schulz <[email protected]>
344    
345     * wptMainProc.cpp (winpt_main_proc): Disable all CryptDisk code.
346     * wptCryptDisk.cpp: Disable code.
347     * wptProxySettingsDlg.cpp (proxy_settings_dlg_proc): Support for
348     NONE proxy protocol.
349     (init_proxy_procotol): Likewise.
350     (read_proxy): Likewise.
351     * wptKeyserverSearchDlg.cpp (on_init_dialog): New.
352     (keyserver_search_dlg_proc): Use it here.
353     * wptKeyserverDlg.cpp (hkp_send_key): Use GPGME wrapper.
354     * wptKeyserver.cpp (kserver_search_end): New.
355     (kserver_search_begin): Be more strict on mem allocation.
356     * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Fix 'redraw'
357     problem.
358     * wptAboutDlgs.cpp (about_dlg_proc): Hide 'Help' button.
359    
360 twoaday 181 2006-03-12 Timo Schulz <[email protected]>
361    
362     * wptGPG.cpp (gnupg_load_config): Search for 'ask-cert-expire'.
363     * wptKeyPropsDlg.cpp (display_key_info): Automatically update
364     sym algorithm preferences if needed.
365     * wptKeysignDlg.cpp (date_is_today): New.
366     (keysign_dlg_proc): Only allow to set cert expire date if
367     the option was found.
368     * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Allow to set
369     'ask-cert-expire'.
370    
371     2006-03-10 Timo Schulz <[email protected]>
372    
373     * wptHTTP.c: deleted.
374     * wptHTTP.cpp (wHTTP): Transformed old code into an object.
375     * wptKeyManager.cpp (km_http_import): Use new code.
376     (km_refresh_one_key): Use preferred keyserver if possible.
377     * wptComonDlg.cpp (check_URL): Better conformance checking.
378     * wptKeyEditCB.cpp (cmd_keyserver_handler): By default
379     set keyserver for all userids.
380     * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Enable code
381     to set preferred keyserver.
382     * wptKeyCache.cpp (decode_subpacket): New.
383     (gpg_keycache_update_attr): New.
384     * wptGPGUtil.cpp (gpg_find_key_subpacket): New.
385     * wptKeyEditDlgs.cpp (keyedit_set_pref_keyserver): Use
386     -1 as an index for all userids.
387    
388     2006-03-07 Timo Schulz <[email protected]>
389    
390     * WinPT.cpp (set_default_keyserver): New.
391     * wptKeyserver.cpp (kserver_set_socket_timeout): New.
392     (kserver_set_default_keyserver): Initialize default settings
393     if needed.
394     * wptSymEnc.cpp (gpg_encrypt_symmetric): Disallow empty passwords.
395     * wptPassphraseDlg.cpp (request_passphrase): Handle new flag.
396     (passphrase_dlg_proc): Support new safe edit window procedure.
397     * wptPassphraseCB.cpp (passphrase_callback_proc): Likewise.
398     * wptPreferencesDlg.cpp (prefs_dlg_proc): Flush passphrase cache
399     if user disable it.
400     * wptKeylist.cpp (keylist_build): Do not scale images but use
401     original size.
402     * wptListView.cpp (listview_set_image_list): New size params.
403     Change all callers.
404    
405     2006-03-01 Timo Schulz <[email protected]>
406    
407     * wptW32API.cpp (set_clip_text): Free all memory.
408    
409 twoaday 180 2006-02-27 Timo Schulz <[email protected]>
410    
411     * wptSOCKS.cpp (socks_handshake): New.
412     * wptMainProc.cpp (winpt_main_proc): A dbl-click forces
413     the key manager in teh foreground if possible.
414     * wptHotkey.cpp (hotkey_unregister): Unregister all hotkeys.
415     * wptRegistry.cpp (get_reg_proxy_prefs,
416     set_reg_proxy_prefs): Use directly the proxy context.
417     Changed all callers.
418     * wptProxySettingsDlg.cpp (init_proxy_protocols): New.
419     (keyserver_proxy_dlg_proc): Use directly the proxy context.
420     * wptKeyserver.cpp (kserver_connect): Better proxy support.
421     (kserver_send_request, kserver_recvkey_request): Likewise.
422     * wptKeyserverDlg.cpp (name_from_proto): New.
423     (set_proxy): Adjusted for the new code.
424    
425     2006-02-26 Timo Schulz <[email protected]>
426    
427     * WinPT.cpp (WinMain): Removed hotkey_modify() code.
428     * wptKeyEditDlgs.cpp (is_idea_protect_algo): Better support
429     v4 keys.
430     * wptKeyserver.cpp (sock_getline): Skip '\r'.
431     (base64_encode): Remove @maxlen param. Changed all callers.
432     (finger_readline): Removed.
433     (finger_recvkey): Use internal functions.
434     * wptSigTreeDlg.cpp (sigtree_dlg_proc): Support a context menu.
435     (show_sigprops): New.
436     (create_popup): New.
437     * wptPreferenceDlg.cpp (prefs_dlg_proc): Cache amount is
438     now in minutes.
439     * wptRegistry.cpp (get_winpt_reg_prefs, set_winpt_reg_prefs):
440     Change code to use hotkeys directly.
441     * wptHotkeys.cpp (hotkeys_enable, hotkey_disable): Likewise.
442    
443 twoaday 179 2006-02-24 Timo Schulz <[email protected]>
444    
445     * wptGPG.cpp (set_gnupg_default_key): Allow to remove entry
446     when parameter is NULL.
447     * wptKeyManager.cpp (check_exist_default_key): New.
448     (km_delete_keys): Check if the default key is still valid,
449     if not delete entry.
450     * wptSigTreeDlg.cpp (sigtree_dlg_proc): Forgot to localize
451     button.
452    
453     2006-02-21 Timo Schulz <[email protected]>
454    
455     * wptClipDecryptDlg.cpp (clip_decrypt_dlg_proc): Minor
456     cleanups.
457     * wptGPGUtil.cpp (file_extract_recipients): New.
458     (clip_extract_recipients): New.
459     (gpg_get_recipients): New.
460     * wptPassphraseCB.cpp (passphrase_callback_proc): Support
461     external recipient listings.
462    
463 twoaday 178 2006-02-15 Timo Schulz <[email protected]>
464    
465     * wptKeysignDlg.cpp (keysign_dlg_proc): Localize new checkbox.
466     * wptFileStatDlg.cpp (get_s2k_algo): New.
467     * wptFileManagerDlg.cpp (update_status_bar): Use human readable
468     formats.
469    
470 twoaday 177 2006-02-14 Timo Schulz <[email protected]>
471    
472     * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Localize 'Cancel'.
473     * wptKeysignDlg.cpp (keysign_dlg_proc): Implement 'Hide Typing'.
474     * wptFileManager.cpp (fm_sym_encrypt): Set cancel.
475     (fm_parse_files): Handle cancel.
476    
477 twoaday 176 2006-02-10 Timo Schulz <[email protected]>
478    
479     * wptKeyPropsDlg.cpp (props_dlg_proc): Removed unused vars.
480     * wptKeyEditDlgs.cpp (do_editkey_check): Use winpt_key_t
481     for the dialog param.
482     * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Use new list
483     signature dialog by default.
484     * wptKeysigDlg.cpp (sigprops_dlg_proc): Use directly
485     gpgme_key_sig_t as param.
486     (keysig_dlg_proc): Change param for property dialog.
487     * wptSigTreeDlg.cpp (sigtree_load): Skip revoked user-ids
488     and use icons.
489     (sigtree_dlg_proc): Allow to execute old list dialog to
490     edit the signatures.
491    
492     2006-02-09 Timo Schulz <[email protected]>
493    
494     * wptRegistry.cpp (set_winpt_reg_prefs): Removed keylist mode.
495     * wptNLS.c (gettext_localize_dialog): New.
496     * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Add 'Cancel' button
497     to avoid to reload the key cache.
498     * wptClipEncryptDlg.cpp (clipenc_dlg_proc): Drop old 'normal'
499     list mode.
500     * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Likewise.
501     * wptPreferencesDlg.cpp (on_init_dialog): New. Move dialog
502     initiation code to this function.
503     (prefs_dlg_proc): Use it here.
504    
505     2006-02-07 Timo Schulz <[email protected]>
506    
507     * wptKeyEdit.cpp (setNoPassphrase): New.
508     (getValidDays): New.
509     * wptKeysignDlg.cpp (keysign_dlg_proc): Check on init
510     if the key is protected.
511     * wptKeyEditDlgs.cpp (keyedit_addphoto_dlg_proc): Handle
512     keys without a passphrase.
513     (keyedit_addrevoker_dlg_proc): Likewise.
514    
515 twoaday 175 2006-02-04 Timo Schulz <[email protected]>
516    
517     * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Check for
518     at least one ultimately trusted key.
519     * wptKeyManager.cpp (km_refresh_key_from_keyserver):
520     Only check inet connection if we refresh all keys.
521     * wptGPGUtil.cpp (gpg_extract_keys): New.
522     * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): Use textmode.
523     * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Likewise.
524     * wptClipSignDlg.cpp (get_selected_key): New.
525     (one_key_proc): Use it here.
526     (count_useable_seckeys): New.
527     * wptSigTreeDlg.cpp (sigtree_dlg_proc): New.
528     * wptKeyEditDlgs.cpp (diff_time): Removed.
529     (w32_mktime): New.
530     (keyedit_addsubkey_dlg_proc): Use it here.
531    
532     2006-02-02 Timo Schulz <[email protected]>
533    
534     * wptW32API.cpp (get_temp_name): New.
535     * wptKeyserver.cpp (ldap_recvkey): Use it here.
536     * wptKeyPropsDlg.cpp (get_photo_tmpname): Likewise.
537     * wptGPGUtil.cpp (create_tempfile): Likewise.
538     * wptImportList.cpp (implist_load): Likewise.
539     * wptKeyCache.cpp (parse_attr_data): Likewise.
540     (w32_tempfile): Removed.
541     * wptGPGME.cpp (check_ultimate_trusted_key): New.
542    
543 twoaday 174 2006-01-31 Timo Schulz <[email protected]>
544    
545     * wptMainProc.cpp (winpt_main_proc): Fix usage of the
546     help system.
547     * wptListView.cpp (listview_set_chkbox_style): New.
548     (listview_get_item_state): Support new checkbox style.
549     (listview_new): Reset flag var.
550     * wptKeylist.cpp (keylist_build): Support new checkbox style.
551    
552 twoaday 172 2006-01-30 Timo Schulz <[email protected]>
553    
554     * WinPT.cpp (check_readonly_attr): New.
555     (load_gpg_env): Use it here.
556 twoaday 174 (WinPT): Make the the default key is searched in the
557     secret key cache.
558     Change error message.
559 twoaday 172 * wptRegistry.cpp (regist_int_winpt): Make sure
560 twoaday 174 the register extension is only offered once to the user.
561     * wptKeyPropsDlg.cpp (get_photo_tmpname): Always use
562     temp directory. Fixed a privilege problem.
563 twoaday 172
564 twoaday 170 2006-01-29 Timo Schulz <[email protected]>
565    
566     * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Allow to use ESC
567     to quit dialog.
568     * wptKeysignDlg.cpp (sig_class_dlg_proc): More space for
569     translations. Directly return sig class.
570     (keysign_dlg_proc): Change msgbox title.
571     * wptKeyEdit.cpp (signUserid): New.
572     (getUseridIndex): New.
573     (getKeyIndex): New.
574     (getSigIndex): New.
575     (clear): New.
576     * wptKeyEditCB.cpp (cmd_sign_handler): Allow to select
577     user-id first.
578     * wptKeyEditDlgs.cpp (lookup_cmd): New.
579     (do_editkey_sign_userid): New.
580     (do_init_cmdlist): Differ between key pairs and public keys
581     and allowed actions.
582     (keyedit_change_ownertrust): Show msgbox on success.
583     (get_default_key): New.
584     * wptPassphraseDlg.cpp (request_passphrase): Reset @cancel.
585    
586 twoaday 168 2006-01-27 Timo Schulz <[email protected]>
587    
588     * WinPT.cpp (WinMain): Set minimal list mode as default.
589     * wptKeyCache.cpp (gpg_keycache_sync): Handle special v3 keys.
590    
591 twoaday 167 2006-01-25 Timo Schulz <[email protected]>
592    
593     * wptRegistry.cpp (get_reg_entry_gpg): Return NULL if
594     the key exist with no value.
595     * wptMDSumDlg.cpp (mdsum_dlg_proc): Translate string.
596     * wptKeysignDlg.cpp (do_fill_seclist): Select the
597     default key if possible.
598     * wptFirstRunDlg.cpp (firstrun_dlg_proc): Directly
599     return the choice.
600     * wptKeylist.cpp (get_key_desc): New.
601     (keylist_upd_key): Free memory.
602     * wptKeyCache.cpp (gpg_keycache_get_default_key): New.
603     (gpg_keycache_set_default_key): New.
604     * WinPT.cpp (gpg_prefs_ok): New.
605     (WinMain): Only start gpg prefs if needed.
606    
607 twoaday 166 2006-01-24 Timo Schulz <[email protected]>
608    
609     * wptKeyManager.cpp (km_dropped_file_import): New.
610     * wptKeyManagerDlg.cpp (keylist_subclass_proc): Allow
611     to drop files and try to import them.
612     (keymanager_dlg_proc): Pass kmi as opaque to the subclass
613     proc.
614    
615 twoaday 165 2006-01-23 Timo Schulz <[email protected]>
616    
617     * wptMDSumDlg.cpp (mdsum_dlg_proc): Allow to send output
618     to the clipboard.
619     * wptKeyEditDlgs.cpp (keyedit_change_ownertrust): New.
620     (do_editkey_enable_disable): New.
621     * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Usability fix. Do not
622     close the dialog if the user cancelled the ownertrust dialog.
623     * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Return TRUE to indicate
624     an update of any value.
625    
626     2006-01-21 Timo Schulz <[email protected]>
627    
628     * wptKeyCache.cpp (keycache_next_key): Handle the case
629     that there is a secret key without a public part.
630     * wptKeyserver.cpp (kserver_save_conf): Save ports.
631     * wptKeyserverDlg.cpp (keyserver_modify_dlg_proc):
632     Reset keyserver name.
633     * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Just indicate
634     an update, do not update the cache.
635     * wptFileManagerDlg.cpp (file_import_dlg_proc): Use one
636     dialog for both clipboard and file imports.
637     * wptKeyManager.cpp (km_file_import, km_clip_import):
638     Changes to support new update system.
639     (gpg_clip_import): New.
640     * wptKeyManagerDlg.cpp (km_gui_import): New.
641     (find_keypos): Rewritten.
642     (refresh_keylist): Improved error checking.
643    
644 twoaday 164 2006-01-20 Timo Schulz <[email protected]>
645    
646     * wptKeyCache.cpp (w32_tmpfile): New.
647     (parse_attr_data): Use it here.
648     * wptGPGUtil.cpp (gpg_get_photoid_data): Reset @ndata var.
649    
650 twoaday 161 2006-01-19 Timo Schulz <[email protected]>
651    
652     * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Do not
653     reload the entire cache, just update the key.
654     * wptFileVerifyDlg.cpp (file_verify_dlg_proc): Likewise.
655     * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Set update flag.
656     * wptKeyRevokersDlg.cpp (key_revokers_dlg_proc): Likewise.
657     * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Update key
658     if need after showing the properties.
659 twoaday 162 * wptGPGMEData.cpp (gpg_data_putc): Fix off-by-one bug.
660 twoaday 164 * wptKeyManager.cpp (km_import_file): New param. Changed
661     all callers.
662     (km_import_clip): Likewise.
663     (delete_keys_from_cache): Delete secret part if available.
664     * wptClipImportDlg.cpp (print_import_status): If there
665     are too many new keys, use reload code.
666 twoaday 161
667 twoaday 150 2006-01-18 Timo Schulz <[email protected]>
668    
669 twoaday 160 * wptKeyEditCB.cpp (cmd_delsig_handler): Do not assume
670     the self sig is always index 0. Noted by Kurt.
671     * wptPassphraseCB.cpp (passphrase_dlg_proc): Do not assume
672     the key user-ID contains an email address.
673     * wptKeyEditDlgs.cpp (do_find_userid): Likewise.
674     (do_editkey_deluid): Likewise.
675     (do_editkey_revuid): Likewise.
676    
677     2006-01-18 Timo Schulz <[email protected]>
678    
679 twoaday 150 * wptListview.cpp (listview_del_sel_items): Fixed index
680     calculation. This fixed a lot of problems with the KM listview
681     update.
682     (listview_del_all): Renamed to...
683     (listview_del_all_items): ..this. Changed all callers.
684     * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Just refresh
685     list when file import contained new/updated keys.
686     * wptKeyManager.cpp (km_file_import): Indicate if the
687     import contained any new/update keys.
688     * wptClipImportDlg.cpp (print_import_status): Just mark
689     keys which actually changed.
690    
691     2006-01-17 Timo Schulz <[email protected]>
692    
693     * wptMAPI.cpp (mapi_send_pubkey_ext): New.
694     * wptKeysigDlg.cpp (do_delsig): Just flag the key, do not
695     update it.
696     * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Be more
697     careful about const pointers.
698     * wptKeyEditDlgs.cpp (get_subkey_fingerprint): Renamed to..
699     (get_subkey_keyid): ..this. Fix problem that key was updated
700     twice and this corrupted.
701     (keyedit_add_subkey): Set @lv item in the callback context.
702    
703     2006-01-16 Timo Schulz <[email protected]>
704    
705     * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Restore
706     window if it lost focus during the operation. Thanks to Kurt.
707     Update keylist when the window is enabled.
708     (find_keypos): New.
709     * wptKeyCache.cpp (keycache_next_key): Reset update status.
710     (gpg_keycache_next_updated_key): New arg @r_status. Change all
711     callers.
712     (gpg_keycache_update_key): Different status for new and updated.
713     Include key signatures.
714     * wptClipImportDlg.cpp (print_import_status): Mark all
715     imported keys.
716     * wptMainProc.cpp (clip_gpg_dlg): On import refresh KM keylist.
717     Thanks to Kurt.
718     * wptKeysigDlg.cpp (recv_missing_keys): Mark all received keys.
719     (do_delsig): Directly reload key. Thanks to Kurt.
720     * wptGPGME.cpp (keycache_set_reload, keycache_get_reload):
721     Removed.
722     * wptKeygenDlg.cpp (keygen_dlg_proc): Use new update system.
723     * wptClipImportDlg.cpp (clip_import_dlg_proc): Return
724     FALSE if no keys were updated or operation was cancelled.
725     * wptCommonDlg.cpp (http_dlg_proc): Fix title selection code.
726     * wptKeylist.cpp (get_ext_validity): Handle disabled keys.
727     * wptKeyPropsDlg.cpp (keyprops_dlg_proc):
728     Do not allow to change ownertrust of invalid keys.
729     Changed translation.
730     Slightly different user interface.
731    
732     2006-11-14 Timo Schulz <[email protected]>
733    
734     * wptW32API.cpp (make_special_filename): New.
735     * wptRegistry.cpp (set_winpt_reg_prefs, get_winpt_reg_prefs):
736     Removed 'KeyServer' item.
737     * wptPreferencesDlg.cpp (prefs_dlg_proc): Remove keyserver
738     config item.
739     * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Disable group
740     window until we really use it.
741     * wptKeyserver.cpp (kserver_save_conf): New.
742     (wsock_end): Save keyserver config file.
743     * wptKeyserverDlg.cpp (keyserver_edit): New.
744     (keyserver_remove): New.
745     (keyserver_add): New.
746     (fill_keyserv_types): New.
747     (keyserver_modify_dlg_proc): New.
748     (keyserver_dlg_proc): Provide context menu to modify the
749     keyserver list.
750     (keyserver_build_list): Remove 'proto' column because it is
751     not really useful.
752     * WinPT.cpp (load_keyserver_conf): Store keyserver.conf at
753     $APPDATA\winpt. If keyserver.conf exists in the current folder
754     move it to the new destination.
755    
756 twoaday 147 2006-11-13 Timo Schulz <[email protected]>
757    
758     * wptPreferencesDlg.cpp (prefs_dlg_proc): Changed translation.
759     * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Likewise.
760     * wptAboutDlgs.cpp (about_dlg_proc): Make sure GPG about
761     dialog isn't shown twice.
762     * wptKeyCache.cpp (gpg_keycache_next_updated_key): New.
763     (gpg_keycache_update_key): Set update flag.
764     * wptKeyManagerDlg.cpp (refresh_keylist): New.
765     (keymanager_dlg_proc): Use new refresh system for keyservers.
766     * wptKeyserverSearchDlg.cpp (kserver_search_dlg_proc):
767     Update keycache.
768     * wptKeyserverDlg.cpp (hkp_dlg_proc): Likewise.
769     * wptKeyserver.cpp (socket_read_ext): New.
770     (kserver_recv_key_ext): New.
771     (kserver_read_config, kserver_write_config): Removed.
772    
773 twoaday 144 2006-01-12 Timo Schulz <[email protected]>
774    
775     * wptListView.cpp (listview_set_image_list): Make icons
776     always transparent.
777     * wptImageList.cpp (imagelist_load): New icons.
778     * wptGPGMEData.cpp (gpg_data_putc): New.
779     * wptKeyManagerDlg.cpp (load_toolbar): Include new icons.
780     (keymanager_dlg_proc): Add tooltips.
781     * wptKeyserverDlg.cpp (keyserver_list_build): Use icons.
782     * wptKeyserver.cpp (URL_encode): New.
783     (URL_must_encode): New.
784     (kserver_search_init): Properly encode pattern.
785     (parse_iso_date): New.
786     (keyserver_search): Be more strict to prevent buffer overflows.
787    
788     2006-01-11 Timo Schulz <[email protected]>
789    
790     * wptKeyManagerDlg.cpp (load_toolbar): 2 new icons.
791     (keymanager_dlg_proc): Adjust tooltips.
792     (update_ui_items): Handle new icons.
793     * wptImageList.cpp (imagelist_load): New icons.
794    
795 twoaday 139 2006-01-10 Timo Schulz <[email protected]>
796    
797     * wptMainProc.cpp (winpt_main_proc): Restore iconic
798     File/Key Manager windows if needed.
799     * wptGPGPrefsDlg.cpp (gpg_prefs_dlg_proc): Disable button.
800     * wptSiglist.cpp (init_cmp): New.
801     (siglist_sort): New.
802     (siglist_cmp_cb): New.
803     (siglist_add_key): Force NOKEY status when key was not found.
804     * wptKeysigDlg.cpp (recv_single_key): New.
805     (recv_missing_keys): Reload entire key when more than one key
806     was fetched.
807     (keysig_dlg_proc): Support sorting the listview items.
808    
809 twoaday 137 2006-01-09 Timo Schulz <[email protected]>
810    
811     * WinPT.cpp (load_gettext): Remove file locking.
812     (WinMain): Use pre-defined autoconf constants.
813     * wptW32API.cpp (init_file_lock, release_file_lock): Deleted.
814     * wptGPG.cpp (check_gnupg_engine): Add param @need_gpg_ver.
815     Change all callers.
816    
817 twoaday 133 2006-01-07 Timo Schulz <[email protected]>
818    
819     * wptKeyManager.cpp (km_refresh_from_keyserver): Summarize
820     import status if just one key was selected.
821    
822     2006-01-04 Timo Schulz <[email protected]>
823    
824     * wptGPGMEWrapper.c (setChangeVersion): New.
825     (exportToBuffer, exportToFile, exportToClipboard): New.
826     (setArmor, getArmor): New.
827     * wptKeylist.cpp (get_key_expire_date): Return locale specific
828     date.
829     (keylist_get_recipients): Do not fetch the key again.
830     (keylist_enum_recipients): Likewise.
831     * wptGPG.cpp (create_empty_keyring): New.
832     (get_gnupg_keyring): Fixed 'strict' logic.
833     * wptKeyManagerDlg.cpp (update_ui_items): Disable some buttons
834     when no secret keys are available.
835     * wptKeyManager.cpp (km_send_to_mail_recipient): Release key data
836     before the MAPI call is made.
837     * WinPT.cpp (check_for_empty_keyrings): New.
838    
839     2006-01-03 Timo Schulz <[email protected]>
840    
841     * pubkey.ico, keypair.ico: New.
842     * 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     * wptKeyProps.cpp (keyprops_load_photo): Adjusted for new
846     JPEG data.
847     * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Do not allow to
848     add items to revoked keys.
849     * wptKeyManager.cpp (km_delete_keys): Do not use uninitialized
850     keyid buffer. This fixes a segv.
851     * wptKeyserver.cpp (spawn_application): New.
852     (ldap_recv_key): Support recent protocols and several cleanups.
853     * wptKeylist.cpp (do_addkey): Set image which depends on the
854     key type.
855     (keylist_enum_recipients): Cleanups.
856     (keylist_get_keyflags): Rewritten.
857     * wptKeyCache.cpp (free_attr_list): New.
858     (parse_attr_list): New.
859     (parse_attr_data): New.
860     (keycache_update_photo): New.
861     (keycache_update_photos): New.
862     (gpg_keycache_update_key): Automatically reload photos if needed.
863     * wptGPGUtil.cpp (create_process): New param @err. Change all
864     callers.
865     (map_tmpfile): New param @nread. Change all callers.
866     (gpg_get_photoid_data): New.
867     * wptKeyEditDlgs.cpp (keyedit_main_dlg_proc): Do not allow to
868     add items to revoked keys.
869     (subkey_init_list): Store gpgme key object.
870    
871 twoaday 130 2005-12-29 Timo Schulz <[email protected]>
872    
873     * wptKeygenDlg.cpp (keygen_dlg_proc): Request passphrase dynamically.
874     (gpg_genkey_params): Simplified.
875     * wptPreferencesDlg.cpp (prefs_dlg_proc): Fix problem with mutal
876     exclusion of the dialog items.
877     * wptAboutDlgs.cpp (about_winpt_dlg_proc): Allow to use ESC to
878     quit the dialog.
879     * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Likewise.
880     * wptMDSumDlg.cpp (mdsum_dlg_proc): Handle WM_SYSCOMMAND.
881     (id2algo): New.
882    
883 twoaday 129 2005-12-28 Timo Schulz <[email protected]>
884    
885     * wptKeyserverDlg.cpp (show_imported_keys): Decode user IDs.
886     * wptKeyRevokersDlg.cpp (key_revokers_dlg_proc): Likewise.
887     * wptKeylist.cpp (keylist_udp_key): Likewise.
888     * wptKeyManager.cpp (key_get_clip_info, key_get_info): Likewise.
889     * wptClipDecryptDlg.cpp (clip_decrypt_dlg_proc): Fix problem
890     when no signing key was found.
891     * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Properly decode
892     user IDs.
893     (translate_popup_strings): s/Revoke/Revoke Cert.
894     * wptKeyEditDlgs.cpp (do_init_keylist): Do not assume a
895     0x prefixed keyid.
896     * wptKeyEditCB.cpp (editkey_command_handler): Also reset
897     step in case of a bad passphrase.
898    
899     2005-12-27 Timo Schulz <[email protected]>
900    
901     * wptListView.cpp (listview_set_view): New.
902     (listview_del_column): New.
903     * wptW32API.cpp (get_locale_date): New.
904     (get_menu_state): New.
905     (force_foreground_window): New.
906     * wptVerifyList.cpp (strtimestamp): Support for
907     locale date formats.
908     * wptGPGUtil.cpp (gpg_revoke_cert): Handle bad
909     passphrases.
910     * wptKeyEditCB.cpp (editkey_command_handler): Immediately
911     return when a bad passphrase was submitted.
912     * wptKeyRevokersDlg.cpp (keyrevokers_dlg_proc): Change
913     column order.
914     * wptKeylist.cpp (keylist_upd_col): New.
915     * wptKeyManagerDlg.cpp (update_ui_items): Deactivate
916     'Revocation' for public keys.
917     (translate_menu_strings): s/Revoke/Revoke Cert.
918     (modify_listview_columns): New.
919    
920 twoaday 128 2005-12-18 Timo Schulz <[email protected]>
921    
922     * wptKeyManagerDlg.cpp (save_column_size): New.
923     (restore_column_size): New.
924     (keymanager_dlg_proc): Save and restore column sizes for
925     the listview control.
926     * wptKeyManager.cpp (key_get_info): New.
927     (km_delete_keys): Use it here to have a consistent message.
928     Use stored key context and not the column data.
929     (km_enable_disable_key): Likewise.
930     (km_send_to_keyserver): Likewise.
931     (km_set_implicit_trust): Likewise.
932     * wptKeylist.cpp (get_key_pubalgo2): New.
933    
934     2005-12-17 Timo Schulz <[email protected]>
935    
936     * wptUTF8.cpp: Removed unused charset array.
937     * wptSigList.cpp (siglist_build): Increase size for 'class'
938     column.
939     * wptGPG.cpp (get_gnupg_path): Simplified.
940     * WinPT.cpp (load_gpg_env): New.
941     (check_crypto_engine): Return type is now bool.
942     * wptRegistry.cpp (is_gpg4win_installed): New.
943     * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): More consistent
944     dialog design.
945     * wptKeyManagerDlg.cpp (translate_menu_strings): New.
946     (translate_popupmenu_strings): New.
947     * wptKeyEditDlgs.cpp (is_jpg_file): New.
948    
949 twoaday 123 2005-12-13 Timo Schulz <[email protected]>
950    
951     * wptCommonDlg.cpp (http_dlg_proc): Localized missing elements.
952     * wptKeyManagerDlg.cpp (change_edit_menu): New.
953     (change_key_menu): Renamed from...
954     (menu_gpg_readonly): ..this.
955     (clip_contains_pgpkey): New.
956     (update_ui_items): Do not allow to sign expired keys.
957     (keymanager_dlg_proc): Same for popup menu.
958     * wptKeyPropsDlg.cpp (parse_preflist): Fixed string handling.
959     * wptKeyCache.cpp (copy_uid_prefs):
960     (gpg_keycache_sync): Copy uid prefs so the key property
961     dialog show the correct values. Thanks to Shane.
962    
963 twoaday 121 2005-12-11 Timo Schulz <[email protected]>
964    
965     * wptW32API.cpp (get_file_version): New.
966     * wptGPGUtil.cpp (create_process): Always hide window.
967     * wptClipEditDlg.cpp (clipedit_dlg_proc): Use 'Close'
968     instead of 'Exit'.
969     * wptKeyManager.cpp (km_http_import): New filename
970     generation code.
971     (km_send_to_mail_recipient): Cleanups.
972     * wptKeyEditDlg.cpp (showpref_dlg_proc): Localize dialog.
973     * wptKeyManagerDlg.cpp (update_ui_items): Handle the case
974     when multiple keys are selected.
975     (popup_multiple): New.
976     * WinPT.cpp (WinMain): Check that the PTD.dll and WinPT.exe
977     file versions are equal. Rewrote --keymanager code.
978    
979 twoaday 118 2005-12-08 Timo Schulz <[email protected]>
980    
981     * wptKeyserverDlg.cpp (show_imported_keys): Enhanced.
982     (hkp_recv_key2): Show user-id of the imported key instead
983     of just the pattern.
984 twoaday 119 * wptFileCBS.cpp (read_cb): Changed to W32 API.
985     (write_cb): Likewise. Create output file on demand.
986     (gpg_file_data_new): Adjusted code for new API.
987     * wptKeyEdit.cpp (cleanKey): New.
988     * wptKeyEditCB.cpp (cmd_clean_handler): New.
989     (editkey_command_handler): Call clean handler.
990     * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Sort
991     keylist after inserting items.
992     * wptFileManager.cpp (fm_set_status): Take care of
993     cleartext sigs.
994 twoaday 120 * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Make
995     sure can be closed.
996 twoaday 118
997 twoaday 117 2005-12-07 Timo Schulz <[email protected]>
998    
999     * wptOwnertrustDlg.cpp (ownertrust_dlg_proc):
1000     Use 'Close' instead of 'Exit'.
1001     * wptKeyEditDlgs.cpp (keyedit_dlg_proc): Likewise.
1002     * wptGPG.cpp (gnupg_backup_keyrings): Use $APPDATA
1003     as the destination dir. Thanks to Werner.
1004     * wptRegistry.cpp (is_gpgee_installed): New.
1005     (regist_inst_winpt): Do not register file extensions
1006     if GPGee is available.
1007     * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Limit
1008     use of local vars.
1009     * wptPreferencesDlg.cpp (prefs_dlg_proc): Make sure
1010     no illegal backup mode is saved.
1011     * wptKeyserverDlg.cpp (show_imported_key): New.
1012     (hkp_recv_key2): Show imported keys if the blob
1013     contained more than one.
1014    
1015 twoaday 115 2005-12-06 Timo Schulz <[email protected]>
1016    
1017     * WinPT.cpp (WinMain): Load the gettext environment soon
1018     as possible so all 'first start' messages are localized.
1019     * wptKeyManagerDlg.cpp (keymanager_dlg_proc): If a single key is
1020     received via the keyserver, return the gpgme key context on
1021     success and add it directly to the list.
1022     * wptKeyserverDlg.cpp (keyserver_dlg_proc): Support a param
1023     to store the key.
1024     (hkp_recv_key2): Add extra param for the fingerprint.
1025     (hkp_recv_key): Call hkp_recv_key2 without fingerprint.
1026    
1027 werner 116 2005-12-02 Werner Koch <[email protected]>
1028    
1029     * wptKeyEditDlgs.cpp (subkey_list_init): Avoid trigraphs.
1030    
1031 twoaday 109 2005-12-01 Timo Schulz <[email protected]>
1032    
1033     * wptClipVerifyDlg.cpp (clipverify_dlg_proc): Use new semantic
1034     for get_gpg_sigstat().
1035     * wptGPGME.cpp (get_gpg_sigstat): New. It is now a function.
1036     As a macro strings will not be translated at runtime.
1037     * wptKeyserverDlg.cpp (hkp_recv_key): Properly detect if we
1038     need to update the cache. Thanks to Jan-Oliver.
1039     * wptKeyImportStatusDlg.cpp (import_status_dlg_proc): Localized.
1040    
1041 twoaday 105 2005-11-30 Timo Schulz <[email protected]>
1042    
1043     * wptW32API.cpp (dialog_box_param): Removed LANG_DE code.
1044     * WinPT-en.rc: Removed string list.
1045     * wptFileSaveDlg.cpp (file_save_dlg_proc): Localized
1046     * wptKeylist.cpp (keylist_build): Cannot use global
1047     arrays for the columns due to gettext.
1048    
1049 twoaday 102 2005-11-29 Timo Schulz <[email protected]>
1050    
1051     * WinPT.cpp (WinMain): Modify --keymanager. If an instance
1052     is running, just send the command to open the manager.
1053    
1054 twoaday 101 2005-11-25 Timo Schulz <[email protected]>
1055    
1056     * wptKeyEditCB.cpp (addrev_cmd_handler): Avoid hanging
1057     process when the revoker is already there.
1058    
1059 twoaday 95 2005-11-24 Timo Schulz <[email protected]>
1060    
1061     * wptPassphraseCB.cpp (passphrase_callback_proc): Localize
1062     signing dialog items.
1063 twoaday 99 * wptMainProc.cpp (confirm_delclip_dlg): Localize dialog items.
1064     * wptAboutDlgs.cpp (about_winpt_dlg_proc): Disable help for now.
1065     * wptMDSumDlg.cpp (mdsum_dlg_proc): Localize missing items.
1066     * wptKeylist.cpp (key_check_validity): Likewise.
1067     * wptKeyEditDlgs.cpp (keyedit_addsubkey_dlg_proc): Likewise.
1068 twoaday 95
1069 twoaday 91 2005-11-22 Timo Schulz <[email protected]>
1070    
1071     * wptCardEditCB.cpp (gpg_write): Due to removed _DEBUG
1072     macro debug output will be generated in release version.
1073    
1074 twoaday 87 2005-11-21 Timo Schulz <[email protected]>
1075    
1076     * WinPT.cpp (WinMain): Implement --stop switch.
1077 twoaday 88 * wptClipEditDlg.cpp (clip_edit_dlg_proc): Localize
1078     missing string.
1079     * wptPreferencesDlg.cpp (prefs_dlg_proc): Likewise.
1080     * wptKeygenDlg.cpp (keygen_dlg_proc): Verify valid context
1081     first. Thanks to Ralf.
1082     * wptFileManagerDlg.cpp (update_ui_items): New.
1083     * wptFileManager.cpp (fm_set_status): New sigmode param.
1084     Changed all callers.
1085 twoaday 87
1086 twoaday 85 2005-11-17 Timo Schulz <[email protected]>
1087    
1088     * wptGPG.cpp (check_last_gnupg_access): Kludge to avoid that
1089     the cache will be loaded twice.
1090     * wptRegistry.cpp (regist_inst_winpt): More comments.
1091     * wptKeyManagerDlg.cpp (do_center_window): Make sure that
1092     neg. coordinates are never used.
1093     * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Localize all
1094     strings.
1095     * wptPassphraseCB.cpp (passphrase_callback_proc): Likewise.
1096     * wptFileManagerDlg.cpp (filemanager_dlg_proc): Localize menu
1097     and save 'AlwaysOnTop' in the registry.
1098    
1099 twoaday 80 2005-11-16 Timo Schulz <[email protected]>
1100    
1101     * WinPT.cpp (check_crypto_engine): Min is now GPG 1.4.2.
1102     * wptKeylist.cpp (keylist_add_key): Add disabled keys in list
1103     mode.
1104     * wptPreferencesDlg.cpp (prefs_dlg_proc): Localize all strings.
1105     * wptRegistry.cpp (regist_inst_winpt): Set install directory.
1106     Useful for other programs to figure out the path to the EXE.
1107    
1108 twoaday 78 2005-11-14 Timo Schulz <[email protected]>
1109    
1110     * wptGPG.cpp (check_gnupg_engine): Fix version check.
1111     * wptMainProc.cpp (winpt_main_proc): Check keyring
1112     file permissions always and do not use interative output
1113     when the windows session ends.
1114     * wptProxySettingsDlg.cpp (proxy_settings_dlg_proc):
1115     Localize all strings.
1116     * wptPassphraseDlg.cpp (passwd_dlg_proc): Likewise.
1117     * wptGPGPrefsDlg.cpp (gpg_prefs_dlg): Likewise.
1118     * wptKeyEditDlgs.cpp (do_init_keylist): Skip all
1119     non-valid keys.
1120    
1121 twoaday 77 2005-11-12 Timo Schulz <[email protected]>
1122    
1123     Fix more GCC warnings.
1124    
1125     2005-11-10 Timo Schulz <[email protected]>
1126    
1127     * wptClipSignDlg.cpp (one_key_proc): Use
1128     release_gpg_passphrase_cb() to free the context.
1129     * wptListView.cpp (listview_deselect_all): New.
1130     * wptMAPI.cpp (mapi_send_pubkey): Works again.
1131     * wptFileManagerDlg.cpp (file_manager_dlg_proc): Support encrypt &
1132     zip.
1133     * wptPassphraseCB.cpp (passphrase_callback_proc): Fix passphrase
1134     caching for signing operations.
1135     * wptKeyManager.cpp (km_send_to_mail_recipient): Works again.
1136     * wptFileManager.cpp (fm_send_file): Likewise.
1137     (fm_encrypt_into_zip): New.
1138    
1139 twoaday 76 2005-11-09 Timo Schulz <[email protected]>
1140    
1141     * wptNLS.c (get_gettext_langid): Map user language id to
1142     printable gettext language strings.
1143     * wptRegistry.cpp (get_reg_entry_mo): Support for the
1144     gettext environment.
1145     * wptFileManager.cpp (fm_encrypt): Close all files before
1146     the wipe procedure is called.
1147     * wptVerlist.cpp (verlist_add_sig): Handle the case the
1148     issuer is not valid but the signature is.
1149     (verlist_add_sig_log): Likewise. Thanks to the folks on
1150     winpt-users.
1151    
1152 werner 75 2005-11-08 Werner Koch <[email protected]>
1153    
1154     * SAFE.ICO, SIGN.ICO: Fixed capitalization.
1155     * WinPT-en.rc: Ditto.
1156     * winpt_km.ico: Moved from ../.
1157    
1158     * Makefile.am (resource_files): Add missing backslash.
1159    
1160 twoaday 73 2005-11-08 Timo Schulz <[email protected]>
1161    
1162     More minor changes to avoid GCC warnings.
1163    
1164     * wptGPG.cpp (check_homedir): Free memory in case of errors.
1165     (multi_gnupg_path): Add strict mode. If non-strict mode return
1166     the folder even if it does not exist.
1167     (check_for_gpgwin): New.
1168     * wptKeyserverDlg.cpp (hkp_recv_key): Make sure import_res is
1169     initialized.
1170     * wptRegistry.cpp (get_reg_entry_gpg4win): New.
1171     (get_reg_entry_mo): Support for gpg4win.
1172    
1173 twoaday 72 2005-11-07 Timo Schulz <[email protected]>
1174    
1175     * wptMainProc.cpp (winpt_main_proc): Disable
1176     some menu items when no secret key is available.
1177    
1178 twoaday 68 2005-11-05 Timo Schulz <[email protected]>
1179    
1180     More minor changes to avoid GCC warnings.
1181    
1182     * wptErrors.cp (winpt_strerror): Return w32
1183     formatted error and do not use 'break'.
1184    
1185 werner 67 2005-11-04 Werner Koch <[email protected]>
1186    
1187     * WinPT-en.rc: Fixed locations of icons.
1188    
1189 twoaday 65 2005-11-03 Timo Schulz <[email protected]>
1190    
1191     A lot of minor changes to avoid GCC warnings.
1192 twoaday 66
1193     * wptGPG.cpp (get_gnupg_keyring): Only check size for
1194     public keyring.
1195     * wptKeyManager.cpp (km_update_default_key_str): Do
1196     not issue a bug message when no secret key was found.
1197     * wptGPGPrefsDlg.cpp: Replace "" with NULL in the name struct.
1198 twoaday 65
1199 werner 57 2005-11-02 Werner Koch <[email protected]>
1200    
1201     * WinPT.cpp (WinMain): Disabled PTD version tests.
1202 werner 58 (check_crypto_engine): Fixed version check for scard.
1203 werner 57
1204     * wptErrors.cpp (debug_end): Add dummy function.
1205    
1206     * Makefile.am (code_files): Added wptCardEditCB.cpp and
1207     wptKeyEditCB.cpp.
1208    
1209 werner 47 2005-10-31 Werner Koch <[email protected]>
1210    
1211 werner 57 * wptCurrWnd.cpp: Include wptVersion.h to get prototypes of PTD
1212     functions.
1213 werner 47
1214 werner 48 * wptKeyEditDlgs.cpp: Include oleauto.h
1215     * wptKeyEdit.cpp: Include time.h.
1216     * wptRegistry.cpp (gpg_filetypes): New from ../Include/wptGPG.h.
1217     * wptGPGUtil.cpp (gpg_manage_ownertrust): s/export/exportflag/.
1218 werner 47
1219 werner 48 * Makefile.am (code_files): Add wptGPGUtil.cpp, wptCardEdit.cpp,
1220     wptKeyEdit.cpp and wptKeycache.cpp.
1221    
1222     * wptPassphraseCB.cpp: Fixed spelling of wptKeylist.h
1223     * wptImportList.cpp (implist_load): Use remove and not unlink.
1224     * wptGPG.cpp: Fixed spelling of wptGpgCmds.h
1225     * wptImportList.cpp (implist_load): Use remove and not unlink.
1226     * wptKeyManager.cpp (km_http_import): Ditto
1227     * wptMainProc.cpp: Include wptCrypto.h
1228     * wptKeyManager.cpp: Ditto.
1229     * wptFileManager.cpp: Ditto.
1230     * wptImportList.cpp (parse_colon_key): Need to cast argument for
1231     isdigit. Include ctype.h.
1232     * wptGPG.cpp: Include shlobj.h.
1233    
1234     Fixed double inclusion of windows.h.
1235    
1236     * Makefile.am (bin_PROGRAMS): Don't build KeyManagerExe for now.
1237     * wptKeylist.cpp (get_key_created): Broke up trigraph.
1238     (get_key_status): Removed dangerous use of sprintf. Still other
1239     flaws present, see comment.
1240    
1241     * wptCardPCSC.c: Don't include winscard.h.
1242     (pcsc_readerstate_t, pcsc_context_t): New. Changed call users to
1243     use these types.
1244     (PCSC_): Added a lot of constants, all taked from GnuPG 1.9.
1245     (SCARD_S_SUCCESS): Changed all compares to test the value directly
1246     against zero.
1247    
1248     * WinPT.cpp: Include wptCrypto.h.
1249     (WinMain): Don't shard S. Removed usunsed variable SIZE.
1250     * Makefile.am (code_files): Actually add files by adding a first
1251     backslash.
1252     * wptMDSumDlg.cpp: Include wptCrypto.h.
1253     * wptProxySettingsDlg.cpp: Included ctype.h.
1254 werner 47 * wptKeysigDlg.cpp: Fixed spelling of wptKeylist.h.
1255     * wptKeysignDlg.cpp: Ditto
1256     * wptKeyRevokersDlg.cpp: Ditto. Fixed spelling of wptW32API.h.
1257     * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Replaced unlink by remove.
1258     Removed unused variable.
1259     * wptClipVerifyDlg.cpp (show_notation_data): s/not/nota/ due to
1260     silly c++ operator synonyms.
1261     * wptKeyEditDlgs.cpp: Include time.h.
1262     * wptClipDecryptDlg.cpp: Include wptCrypto.h to define PGP_MESSAGE.
1263     * wptFileManagerDlg.cpp: Ditto.
1264     (space_wipefrees_dlg_proc): Replaced unlink by remove; it doesn't
1265     matter if it does an rmdir for a directory.
1266    
1267     Fixed include of resource.h which is not anymore in the top
1268     directory.
1269    
1270 werner 46 2005-10-28 Werner Koch <[email protected]>
1271    
1272     * wptProxySettingsDlg.cpp (check_number): Cast isdigit() arg to
1273     unsigned. Never ever use a possible signed char as argument for
1274     ctype tests. An alternative is to first test using isascii ().
1275     (keyserver_proxy_dlg_proc): Removed unused variable.
1276    
1277 twoaday 41 2005-10-27 Timo Schulz <[email protected]>
1278 werner 36
1279 twoaday 41 * wptKeyPropsDlg.cpp (get_validity): Take care of disabled keys.
1280     * wptKeylist.cpp (keylist_add_key): Check global key flag to
1281     see if the key is disabled and not each subkey.
1282     (seclist_init): Likewise.
1283     * wptClipDecryptDlg.cpp (gpgme_op_clip_decrypt): Use
1284     gpgme_op_decrypt_verify.
1285     (clip_decrypt_dlg_proc): Fixed fingerprint
1286     to keyid conversation. This also fixes a crash.
1287     * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Likewise.
1288     * wptKeyEditDlgs.cpp (do_editkey_expire): Ask if the key
1289     already expired if the user wants to change the date.
1290     * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Replace old
1291     'v3 sig' option with the 'ask cert level' option. Sync
1292     with global preferences.
1293     * wptKeySignDlg.cpp (keysign_dlg_proc): Watch if the
1294     gpg.conf contains 'ask-cert-level'. If not disable button.
1295     * wptKeySigDlg.cpp (keysig_dlg_proc): Automatically disable
1296     the button when the key is available.
1297     Reload key directly, not the entire cache.
1298 werner 36
1299 twoaday 41 2005-10-26 Timo Schulz <[email protected]>
1300 werner 36
1301 twoaday 41 * wptFileManager.cpp (is_floppy_disc): Prevent very unlikely but
1302     possible overflow.
1303     (is_openpgp_ext): Compare case insentensive.
1304     (add_single_file): New.
1305     (fm_add_opened_files): Support multi file selection.
1306     * wptKeyPropsDlg.cpp (do_change_ownertrust): Removed.
1307     * wptKeyManager.cpp (km_enable_disable_key): Do not set cache
1308     reload flag. Just update the single key.
1309     * wptFileManagerDlg.cpp (file_encrypt_dlg_proc): Remove static var
1310     and disable anonymize recipient for now.
1311    
1312     Begin to port code to GCC. Fix all warning issued by the gcc
1313     compiler.
1314    
1315 werner 36 2005-10-25 Timo Schulz <[email protected]>
1316    
1317     * wptGPGUtil.cpp (create_process): Hide window.
1318     * wptKeyPropsDlg.cpp (get_photo_tmpname): New.
1319     * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Remove
1320     static var 'enable'.
1321     * wptKeygenDlg.cpp (keygen_dlg_proc): Likewise.
1322     (gpg_genkey_params): Make sure all primary keys are capable
1323     for signing and certification.
1324     * wptKeySigDlg.cpp (is_sig): If no item is selected, return 0.
1325     * wptGPG.cpp (gnupg_access_keyring): Check return value for
1326     NULL. Noted by Ralf.
1327     (get_gnupg_prog): Simplified.
1328     (check_homedir): Fixed. Return 0 when the dir is successfully created.
1329     * wptKeyManagerDlg.cpp (km_file_import): Use the hourglass to
1330     indicate a pending GPG process.
1331     * wptFileManager.cpp (op_begin, op_end): New. Indicate an start
1332     and and of an operation. For now just the cursor changes.
1333     (fm_parse_command_line): Remove debug output. Thanks to Ralf again.
1334     * WinPT.cpp (WinMain): Check if there is already an instance and
1335     set a variable early as possible.
1336     (load_gettext): If a previous instance was found, do not output
1337 twoaday 41 any errors. Kudos to Ralf.
1338 werner 36
1339     2005-10-24 Timo Schulz <[email protected]>
1340    
1341     * wptPassphraseCB.cpp (passphrase_callback_proc): Allow to use
1342     pre-defined recipients.
1343     (release_gpg_passphrase_cb): Release recipients.
1344     * wptKeyPropsDlg.cpp (keyprops_load_photo): Set photo-id
1345     validity if needed.
1346     (keyprops_dlg_proc): Issue a warning if the photo is valid.
1347    
1348     2005-10-23 Timo Schulz <[email protected]>
1349    
1350     * wptFileManager.cpp (fm_get_file_type): Detect detached sigs.
1351     * wptKeyList.cpp (keylist_cmp_cb): Take care of expired/revoked keys.
1352     (get_ext_validity): New.
1353     * wptFileVerifyDlg.cpp (file_verify_dlg_proc): Several cleanups.
1354     * wptClipEditDlg.cpp (load_clipboard): Factored out some code into
1355     this function.
1356     (load_clipboard_from_file): Likewise.
1357     (save_clipboard_to_file): New.
1358     * wptKeyManagerDlg.cpp (keyprops_dlg_proc): Fix stack overflow.
1359    
1360     2005-10-22 Timo Schulz <[email protected]>
1361    
1362     Localized a lot of more strings.
1363    
1364     * wptMainProc.cpp (load_smartcard): New.
1365     * wptFileManager.cpp (fm_parse_command_line): Simplify code.
1366     (fm_check_armor_type): Add new arg. Change all callers.
1367     (fm_get_file_type): Likewise.
1368     * wptKeyPropsDlg.cpp (display_key_info): New.
1369     (keyprops_show_photo): Factored out some code into..
1370     (keyprops_load_photo): ..this function.
1371    
1372     2005-10-21 Timo Schulz <[email protected]>
1373    
1374     * wptFileManagerDlg.cpp (file_manager_dlg_proc): Use
1375     WM_INITPOPUPMENU to localize popup menu texts.
1376     * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Likewise.
1377     * wptClipSignDlg.cpp (one_key_proc): Use wipememory instead of memset.
1378    
1379     2005-10-20 Timo Schulz <[email protected]>
1380    
1381     Now WinPT depends on GPG 1.4.3 and GPGME 1.2.0.
1382    
1383     * wptPassphraseCB.cpp (passphrase_cb): Complete card support.
1384     * wptCardEdit.cpp (genKey): Handle cancel case.
1385     * keycache.c: Renamed into...
1386     * wptKeyCache.cpp: ...this.
1387     * wptW32API.cpp (set_menu_text): Removed unused code.
1388     (set_menu_text_bypos): New.
1389     * wptCrypto.h: New.
1390     * wptMainProc.cpp (winpt_main_proc): Complete localize
1391     menu texts.
1392     * wptErrors.cpp (log_debug): Use a static var so the file
1393     is only opened once.
1394     (debug_end): Cleanup. Currently just close the log file.
1395     * wptErrors.h (wipememory): New.
1396     (sfree_if_alloc): Use it here.
1397     * WinPT.cpp (WinMain): Display the min. GPGME version which
1398     is needed in case of an error.
1399    
1400     2005-10-17 Timo Schulz <[email protected]>
1401    
1402     Free all memory returned by the GPGME dll with gpgme_free ().
1403    
1404     s/GPG_ERR_CARD_REMOVED/GPG_ERR_CARD_NOT_PRESENT.
1405    
1406     * wptKeyEdit.cpp (getCardStatus): Remove dummy key.
1407     (list_handler): With user interaction to allow to insert
1408     the card into the reader.
1409     * wptKeyEditCB.cpp (gpg_edit_card): Likewise.
1410     (common_card_handler): Fixed incorrect command string.
1411     * wptKeyPropsDlg.cpp (get_card_type): New.
1412     (keyprops_dlg_proc): Show card information if present.
1413     * wptFileManager.cpp (secret_key_available): Make the code faster.
1414    
1415    
1416     2005-10-16 Timo Schulz <[email protected]>
1417    
1418     * wptPassphraseCB.cpp (passphrase_cb): Fix problem
1419     with hanging GPG process on cancel.
1420     * keycache.c (gpg_keycache_release): Release all objects.
1421    
1422     2005-10-15 Timo Schulz <[email protected]>
1423    
1424     * wptCardEdit.cpp (setResult, getResult): New.
1425     (reset): New.
1426     (getCardStatus): Check return codes and release all objects
1427     in case of errors.
1428     * wptCardEditCB.cpp (change_pin_handler): Call reset()
1429     before quit.
1430     (editcard_handler): Likewise.
1431     (common_card_handler): New.
1432     * wptCardDlg.cpp (card_changepin_dlg_proc): Also unmask
1433     the old PIN when 'Hide Typing' is disabled.
1434     * wptPassphraseCB.cpp (passphrase_cb): The card detection
1435     works again. Support to re-enter passphrase.
1436    
1437     2005-10-14 Timo Schulz <[email protected]>
1438    
1439     * wptCardDlg.cpp (card_status): New fields for the
1440     fingerprint creation time. Display card info as title.
1441     (get_printable_version): New.
1442     * wptCardEditCB.cpp (editcard_handler): Fix problem
1443     with the counter comparison.
1444    
1445     2005-10-11 Timo Schulz <[email protected]>
1446    
1447     Port to GPGME basically finished.
1448    
1449     2005-09-20 Timo Schulz <[email protected]>
1450    
1451     * wptFileManagerDlg.cpp (file_secdel_confirm_dlg_proc):
1452     Do not use gpgme_recipients_t but the listview directly
1453     to add the selected files.
1454    
1455     2005-09-07 Timo Schulz <[email protected]>
1456    
1457     * Make sure all GetOpenFileName filters are terminated by \0\0.
1458    
1459     2005-09-01 Timo Schulz <[email protected]>
1460    
1461     * wptW32API.cpp (center_window): New argument for parent window.
1462     Change all callers.
1463     (center_window2): Likewise.
1464     * GPGME now can read gpgProgram entries with 'REG_EXPAND_SZ'.
1465     * wptGPG.cpp (gnupg_backup_options): Remove param. One backup
1466     file is enough. Changed all callers.
1467    
1468     2005-08-15 Timo Schulz <[email protected]>
1469    
1470     * wptKeyEditDlgs.cpp (do_editkey_showpref): Take care of v3 keys.
1471     * wptGPGOptDlg.cpp (gpgopt_dlg_proc): Fixed name of title.
1472     * Make sure the passphrase is always overwritten before it is
1473     freed (or the function returns).
1474     * wptKeyPropDlg.cpp (get_pref_cipher): New.
1475     (keyprops_dlg_proc): Use it here.
1476    
1477     2005-08-06 Timo Schulz <[email protected]>
1478    
1479     * wptGPGME.cpp (keycache_update): Reload OpenPGP parts
1480     of the secret key.
1481     (keycache_init): cache name of secret keyring.
1482     * wptKeyList.cpp (keylist_upd_key): Do not add long keyid.
1483     (get_key_type): Do not assume 'ultimate' means key pair.
1484     * wptKeyEditDlgs.cpp (diff_time): New.
1485     (keyedit_addsubkey_dlg_proc): Changed design and use
1486     diff_time. Drop checks for invalid keylength (< 1024, > 4096)
1487     because the combo box automatically handles this.
1488     * wptKeyManager.cpp (km_set_implicit_trust): Return error code.
1489     * wptGPG.cpp (get_backup_name): New.
1490     (gnupg_backup_keyrings): Rotate backup names, from 0..3.
1491     * wptClipImportDialog.cpp (clip_import_dlg_proc): Free memory.
1492     * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Use 0x short keyid and
1493     not the long keyid.
1494    
1495     2005-08-05 Timo Schulz <[email protected]>
1496    
1497     * wptListView.cpp (listview_set_item2): New.
1498     * wptKeyManager.cpp (km_check_if_protected): Directly
1499     retrieve gpgme_key_t from the list.
1500     (km_check_key_status): Likewise.
1501     * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Also use
1502     a human-readable name for secret key export.
1503     Reload just the keys which were affected by updates
1504     (edit-key).
1505     (update_key): New.
1506     * wptKeyList.cpp ((keylist_upd_key): Stripped down
1507     version of keylist_add_key.
1508     * wptKeyEditDlgs.cpp (keyedit_main_dlg_proc): Do not
1509     reload the keycache here, just flag 'update'. Give the
1510     control to the calling dialog.
1511     * wptKeySignDlg.cpp (keysign_dlg_proc): Use winpt_key_t
1512     as parameter. Changed all callers.
1513     Add date of expiration to the key info.
1514     (get_expire_date): New.
1515     Use a checkbox to allow to ask for the cert level.
1516     * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): Do no reload
1517     the cache.
1518    
1519     2005-08-04 Timo Schulz <[email protected]>
1520    
1521     * wptListView.cpp (listview_scroll): New.
1522     (listview_get_item2): New.
1523     * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): If the
1524     item was found, make it visible with scrolling.
1525     * wptKeyManager.cpp (km_find_key): New.
1526     (keylist_subclass_proc): Support to handle some acceleators.
1527     Strg+{C, P, F, A}.
1528     (km_get_key_status): Get the gpgme_key_t object directly
1529     from the list.
1530     * wptGPGPRefsDlg.cpp (gpgprefs_dlg_proc): Also try to set
1531     the config file (if it exists).
1532     * wptKeySignDlg.cpp (keysign_dlg_proc): Use easier code
1533     to handle the click->activate situation.
1534     * wptPassphraseCB.cpp (passphrase_callback_proc): Likewise.
1535     Support to check the passphrase quality.
1536     * wptPassphraseDlg.cpp (passwd_dlg_proc): Likewise.
1537     (request_passphrase): Rename 'init' to 'flags' to allow more
1538     options.
1539     * wptMAPI.cpp: Check all *alloc results.
1540     * wptKeyGenDlg.cpp (keygen_dlg_proc): Use a rudimentary
1541     passphrase quality check.
1542     * wptMDSumDlg.cpp (mdsum_dlg_proc): Use md5/sha1sum file
1543     format and allow to save the checksum in a file.
1544     * wptKeyRevokeDlg.cpp (key_revoke_dlg_proc): Issue a warning
1545     when the PGP mode is disabled.
1546     wptKeyEditDlgs.cpp (do_editkey_primary): Return if just
1547     one user-ID exists.
1548     (keyedit_dlg_proc): Fixed index problem.
1549     * wptKeyPropsDlg.cpp (get_validity): New.
1550     (keyprops_dlg_proc): Actually show extended validity if possible.
1551     * wptKeyList.cpp (get_key_fpr): Support for old v3 format.
1552     (do_addkey): Use listview_add_item2 to store key as opaque
1553     param inside the list.
1554     * wptFileStatDlg.cpp (get_digest_algo): Add SHAxxx.
1555     (file_stat_dlg_proc): End dialog if no PGP data was found.
1556     (do_list_packets): Return the number of valid PGP packets
1557     of the file.
1558    
1559     2005-08-02 Timo Schulz <[email protected]>
1560    
1561     * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Instead of
1562     using 'Default Keyserver' add the real keyserver name to
1563     the menu.
1564     The rebuild command does not reload the cache any longer.
1565     Use ATTR_NAME + .asc as the filename and not keyid + .asc.
1566     * wptProxySettingsDlg.cpp (enable_proxy_auth): New.
1567     (keyserver_proxy_dlg_proc): Changed the design a little
1568     and add some additional sanity checks.
1569     * wptGPGParser.cpp (commit_gpg_options): Use W32 line endings.
1570     This fixes the problem that the GPG option dialog does not show
1571     very nice lines.
1572     * wptGPGOptDlg.cpp (gpgopt_dlg_proc): s/options/config.
1573     * wptKeySigDlg.cpp (keysig_dlg_proc): If a single key is selected
1574     check for 'NOKEY' before asking a keyserver.
1575     * wptKeyManager.cpp (km_delete_keys): Do not set 'refresh' flag.
1576     If a lot of keys were selected, ask if the user wants to confirm
1577     each delete procedure or allow to cancel the operation.
1578     * wptFileManagerDlg.cpp (file_import_dlg_proc): Display how much
1579     keys the file contain.
1580     * wptKeyList.cpp (get_key_algo): Beautified.
1581     (get_key_status): Drop the "[XYZ] Unknown" format, it is too
1582     confusing for users.
1583     * wptKeyManager.cpp (km_check_key_status): Adjustments for the
1584     new code.
1585     (km_check_for_seckey): Reset utrust parameter. Return -1 for
1586     invalid (exp+rev+dis) keys.
1587    
1588     2005-08-01 Timo Schulz <[email protected]>
1589    
1590     * wptKeyserver.cpp (kserver_urlencode): Use unsigned for all given
1591     sizes.
1592     (check_IP_or_hostname): New.
1593     (kserver_load_conf): Correct finger URL parsing problem.
1594     (port_from_proto): New.
1595     (keyserver_load_conf): Guess the port.
1596     (keyserver_set_default): Allocate new buffer.
1597     (kserver_load_conf): Likewise.
1598     * wptHTTP.c (parse_reqline, parse_request): Removed.
1599     Use WinPT error code and remove all unused code.
1600     * wptKeyserverDlg.cpp (keyserver_dlg_proc): Properly handle finger URLs.
1601     * wptProxySettingsDlg.cpp (read_proxy): Simple check for
1602     invalid host/IP addresses.
1603     * wptGPG.cpp (multi_gnupg_path): Return allocated buffer.
1604     Changed all callers.
1605     * wptPreferencesDlg.cpp (prefs_dlg_proc): At the first start,
1606     automatically set 'backup to homedir'.
1607     * WinPT.cpp (WinMain): Use desktop window as the parent window
1608     to load 'first-start' dialogs.
1609     * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Do not set 'refresh'
1610     flag after deleting keys.
1611     * wptFirstRunDlg.cpp (first_run_dlg_proc): Use a new structure
1612     for passing the arguments.
1613     * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Do not store "" for
1614     the OptFile. This was responsible for a lot of 'General Errors'
1615     after the first start related to key caching.
1616     Automatically set the gpg binary if possible.
1617    
1618     2005-07-22 Timo Schulz <[email protected]>
1619    
1620     * wptMainProc.cpp (winpt_main_proc): Take care for shutdown
1621     messages and make sure WinPT make a keyring backup in this case.
1622     * wptGPGME.cpp (keycache_reload): Do not rebuild the signature
1623     cache each time. Just do it on startup.
1624     * wptKeyManager.cpp (km_key_is_v3): Use new ATTR_VERSION.
1625     * wptKeyEditDlgs.cpp (keyedit_main_dlg_proc): Assume the v3 flag
1626     was set by the calling function.
1627     * wptKeyGenDlg.cpp (keygen_wizard_dlg_proc): Ask for backups.
1628     (keygen_dlg_proc): Only add the generated key to the keycache
1629     and do not reload the entire cache.
1630     * wptKeyManager.cpp (km_delete_keys): Store the number of keys
1631     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     generated key to the list instead of reloading the entire cache.
1635     * wptKeyEditDlgs.cpp (parse_preflist): Support fpr SHAnnn.
1636    
1637 twoaday 20 2005-05-09 Timo Schulz <[email protected]>
1638    
1639     * wptCommonDlg.cpp (http_file_dlg_proc): Renamed to..
1640     (http_dlg_proc): ..this.
1641     (get_keyserver_URL_dlg): New.
1642     (check_URL): New.
1643     * wptKeyEditDlgs.cpp (keyedit_set_pref_keyserver): New.
1644     (keyedit_main_dlg_proc): Avoid massive keycache reloads, just reload
1645     the single key.
1646     * wptKeyRevokersDlg.cpp (key_revokers_dlg_proc): Show the key
1647     properties of the selected desig. revoker.
1648     * wptVerifyList.cpp (verlist_build): Increase the column
1649     size of 'keyid'.
1650     * wptGPGME.cpp (keycache_update): New.
1651     * wptKeySigDlg.cpp (keysig_dlg_proc): Update the key if a signature
1652     was deleted.
1653     * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Zeroing the key struct
1654     before we set any values.
1655    
1656     2005-05-03 Timo Schulz <[email protected]>
1657    
1658     * wptFileManager.cpp (fm_parse_command_line): Handle
1659     'SYMKEYENC' files. Thanks to the user who reported it.
1660     * wptKeyEditDlgs.cpp (do_find_userid): Optionally return the context.
1661     (showpref_dlg_proc): New.
1662     (keyedit_main_dlg_proc): Support SHOWPREF.
1663     (userid_list_init): New field 'Email'. Split userID into 'Name' + 'Email'.
1664     (do_add_new_userid): Adjust for new ListView.
1665     (do_find_userid): Use email for searching.
1666     (parse_preflist): New.
1667    
1668     2005-04-19 Timo Schulz <[email protected]>
1669    
1670     * wptKeyserver.cpp (kserver_update_proxyuser): Fixed
1671     buffer overflow that occurred when the proxy password
1672     is > 29 chars. Thanks to the friendly user who reported this.
1673     (kserver_search): Handle the case the key is revoked. Thanks
1674     to Ralf.
1675     (kserver_connect): More logging.
1676     (kserver_sendkey): Likewise.
1677     * wptProxySettingsDlg.cpp (check_number): New.
1678     (read_proxy): Check the entered port number.
1679 werner 36 * wptKeySignDlg.cpp (sig_class_dlg_proc): Check default button.
1680 twoaday 22 * wptW32API.cpp (get_folder_dlg): Free memory.
1681 twoaday 20
1682     2005-04-11 Timo Schulz <[email protected]>
1683    
1684     * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Reset
1685     'enable' flag always at the begin.
1686     * wptClipDecryptDlg.cpp (clip_decrypt_dlg): Show correct
1687     key trust. Noted by a friendly user.
1688     * wptListView.cpp (listview_add_item_pos): New.
1689     * wptKeyEditDlgs.cpp (get_subkey_fingerprint): Due to
1690     the fact that GPG does not return the fingerprint of
1691     the generated subkey any longer, we need to get it manually.
1692     Thanks to Maxime Brandt.
1693     (keyedit_addsubkey_dlg_proc): If key size too large, ask
1694     if this was a mistake.
1695     (keyedit_add_subkey): Use it here.
1696     (do_add_new_subkey): Fix list contrl insertion.
1697     * wptTypes.h (DEFAULT_KEYSIZE): Define new default keysize constant.
1698    
1699     2005-04-04 Timo Schulz <[email protected]>
1700    
1701     * WinPT.cpp (check_crypto_engine): Correct version
1702     check. Noted by Werner.
1703    
1704     2005-03-22 Timo Schulz <[email protected]>
1705    
1706     * 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     ID's for adding subkeys.
1710    
1711     2005-03-06 Timo Schulz <[email protected]>
1712    
1713     * wptKeySignDlg.cpp (do_fill_seckeylist): Skip secret keys without
1714     a public key. Noted by Kurt Fitzner.
1715    
1716     2005-03-04 Timo Schulz <[email protected]>
1717    
1718     * GPG asks twice for the new PIN. Thanks to Achim.
1719     * 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     Achim.
1722    
1723     2005-03-03 Timo Schulz <[email protected]>
1724    
1725     * wptCardDlg.cpp (card_changepin_dlg_proc): Add item to re-type the
1726     new PIN. Suggested by Achim.
1727     Support to show the unmasked PIN.
1728     Modified TAB-order.
1729     * wptPINDlg.cpp (pin_cb_dlg_proc): Show unmasked PIN.
1730    
1731     * Fixed wrong GPG --command-fd strings. Thanks to Achim.
1732    
1733     2005-02-23 Timo Schulz <[email protected]>
1734    
1735     * wptKeyserver.cpp (check_hkp_response): Support for HTTP/1.1.
1736     (kserver_search): Be more strict.
1737     * WinPT.cpp (WinMain): Enable FM progress by default.
1738     * wptFileManagerDlg.cpp (file_preferences_dlg_proc): New.
1739     (fm_parse_files): Use progress dialog only if it is
1740     enabled.
1741    
1742     2005-02-07 Timo Schulz <[email protected]>
1743    
1744     * wptFileManager.cpp (fm_parse_files): Do not use the progress dialog
1745     for signing and verifying. But this does not fix the problem tha the
1746     dialog sometimes stay and is not destroyed.
1747    
1748     2005-02-04 Timo Schulz <[email protected]>
1749    
1750     * wptProgressDlg.cpp (progress_cb_thread): Set root window if available.
1751     If the progress window survives by accident, it will be closed when the
1752     File Manager (root window) is closed.
1753    
1754     2005-02-02 Timo Schulz <[email protected]>
1755    
1756     * wptPassphraseDlg.cpp (passwd_dlg_proc): use center_window2, otherwise
1757     it is invisible.
1758     * wptPassphraseCB.cpp (passphrase_callback_proc): Do not cache symmetric
1759     passphrases.
1760     * Enable the progress dialog for symmetric encryption.
1761     * wptFileManager.cpp (fm_check_file_type): Also check for 'SYMKEYENC' in
1762     FM_ENCRYPT mode.
1763     * WinPT.cpp (WinMain): SETUP_EXISTING implemented.
1764     * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Reset 'Locale directory' when
1765     no value is entered.
1766    
1767     2005-01-26 Timo Schulz <[email protected]>
1768    
1769     * wptGPG.cpp (multi_gnupg_path): Zero buffer before use.
1770     * wptKeyManagerDlg.cpp: Add 'Select All' feature.
1771     Move 'Edit->Key' to 'Key->Edit'.
1772     * wptFileManagerDlg.cpp: Likewise.
1773     * wptKeyPropsDlg.cpp (keyprops_show_photo): Show the JPG photo directly.
1774     * wptKeyManager.cpp (spawn_loadimage): Removed.
1775     (km_show_photo): Removed.
1776     * wptRevokersDlg.cpp (revokelist_init): Fixed index.
1777     * wptErrors.cpp (winpt_strerror): Show system error for registry
1778     related problems.
1779    
1780     2005-01-25 Timo Schulz <[email protected]>
1781    
1782     * wptCardDlg.cpp (card_keygen_dlg_proc): Make 'backup keys' default
1783     and that all values are 7-bit ASCII.
1784     Use '*' for the passphrase field.
1785     * wptGPG.cpp (multi_gnupg_path): New.
1786     (get_gnupg_path): Use it here.
1787     (check_homedir): Likewise.
1788     * wptKeyserverDlg.cpp (save_default_ks): Fix problem that the port
1789     is actually set.
1790     * wptFileManager.cpp (fm_clearsign_8bit): New.
1791     (fm_parse_files): Check if the file to clearsign is really 7-bit.
1792     Thanks to djek.
1793     (fm_set_ftype): Factored out some code from...
1794     (fm_add_dropped_files): ...here. Simplied the code.
1795     (fm_add_dir_files): New.
1796     * Removed MD5 from MyGPGME and the new default sym cipher is AES.
1797     * wptProgressDlg.cpp (progress_dlg_proc): Use additional HAND var
1798     to track the window handle.
1799     (progress_cleanup): Try to close tracking handle first.
1800    
1801     2005-01-21 Timo Schulz <[email protected]>
1802    
1803     * wptFileVerifyDlg.cpp (file_verify_dlg_proc): Allow to retrieve keys
1804     which are not in the keyring. Suggested by djek.
1805     * wptFileManagerDlg.cpp (filemanager_dlg_proc): Implement basic
1806     'Always on Top'.
1807     Allow to send encrypted files via MAPI.
1808     * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Only reload the keycache
1809     if the HKP retrieval succeeded.
1810     * wptFileStatDlg.cpp (do_list_packets): Make sure that the pkt pointer
1811     is not NULL.
1812     * wptKeyManager.cpp (km_clip_export): Prefix the clipboard text with
1813     a header similar to 'gpg -k name'.
1814     * wptErrors.cpp (log_box): Use msg_box to make sure the box is visible
1815     with 'Always on Top' windows.
1816     * wptFileManager.cpp (fm_parse_files): Set progress callback for
1817     wiping files.
1818     (fm_add_opened_files): Do not add the file in case of an error.
1819     * wptKeyserverDlg.cpp (kserver_get_port): New.
1820     (save_default_ks): Save port.
1821     * wptKeyserver.cpp (set_default_kserver): Get port or use default.
1822     (kserver_connect): Logging.
1823     (kserver_send_request): Likewise. Thanks to Markus.
1824     * wptError.cpp (w32_fmt_msg): New.
1825     (winpt_strerror): Show the W32 API error if the hotkey could not
1826     be registered.
1827    
1828     2005-01-20 Timo Schulz <[email protected]>
1829    
1830     * wptKeycacheDlg.cpp (keycache_dlg_proc): Be less strict with the
1831     keyring check. If the file exists, it is enough.
1832     * wptKeyring.cpp (kserver_load_conf): Use C++ new for proxy_host.
1833     Several cleanups and allow to specify the port of the keyserver.
1834     * wptMainProc.cpp (winpt_main_proc): Handle WM_CLOSE to make sure
1835     the application terminates clearly when Windows shutdown.
1836    
1837     2005-01-10 Timo Schulz <[email protected]>
1838    
1839     * WinPT.cpp (load_gettext): New.
1840     (WinMain): Use it here to load it before --keymanager. Thanks to Ralf.
1841    
1842     2005-01-08 Timo Schulz <[email protected]>
1843    
1844     * Applied the patches to make the source G++ compatible.
1845     * wptKeyserver.cpp (kserver_load_conf): Use the stripped string.
1846     * wptKeygenDlg.cpp (keygen_dlg_proc): Default key size is now 2048.
1847     * wptFileManagerDlg.cpp (fill_drive_combobox): Do not add CD-Roms.
1848    
1849     2005-01-07 Timo Schulz <[email protected]>
1850    
1851     * wptKeyserver.cpp (skip_type_prefix): Support all URL schemes.
1852     (finger_recvkey): Use skip_type_prefix and prevent buffer overflows.
1853     (ldap_recvkey): Likewise.
1854     (check_hkp_response): Be more liberal with error strings.
1855     (kserver_connect): Prevent buffer overflow and use the right return
1856     code for inet_addr().
1857     (kserver_search_chkresp): New.
1858     (kserver_search): Fixed. Now it works with modern keyservers.
1859     * wptKeylist.cpp (seclist_init): Add new flags param.
1860     * wptFileManagerDlg.cpp (file_encrypt_dlg_proc): Use short secret key
1861     listing.
1862     * wptClipboardSignEncDlg.cpp (clip_signenc_dlg_proc): Likewise.
1863     * wptMainProc.cpp (winpt_main_proc): GPGME cleanup.
1864     * WinPT.cpp (WinMain): call GPGME init.
1865     Reword the 'you have no keyring' problem and revamp the first run dialog.
1866     * wptGPG.cpp (gnupg_access_keyring): New.
1867     (gnupg_check_keyring): Removed unused code.
1868     * wptFirstRunDlg.cpp (first_run_dlg_proc): Adjust dialog for the
1869     new texts and remove unused elements.
1870     * wptKeyserverDlg.cpp (keyserver_dlg_proc): s/keyserver/kserver. The
1871     last annoying typo.
1872     * wptKeyserverSearchDlg.cpp (hkpsearch_dlg_proc): End dialog in case of
1873     an error.
1874    
1875     2004-12-30 Timo Schulz <[email protected]>
1876    
1877     * wptKeyserverDlg.cpp (keyserver_list_build): Initialize pointer.
1878     This fixes the problem that the dialog crashes when the user selects
1879     anything. Thanks to my users.
1880     (keyserver_dlg_proc): s/keyserver/kserver. Thanks to Ulf.
1881    
1882     2004-12-20 Timo Schulz <[email protected]>
1883    
1884     * wptGPG.cpp (check_gnupg_engine): Fixed version checking.
1885     * wptFileManager.cpp (fm_encrypt): Delete the passphrase from the
1886     cache if it is not valid.
1887    
1888     Fix problem with a NULL pointer.
1889    
1890     2004-12-15 Timo Schulz <[email protected]>
1891    
1892     * wptFileManagerDlg.cpp (space_wipefrees_dlg_proc): Use the right
1893     temp name.
1894     * wptKeyEditDlgs.cpp (keyedit_main_dlg_proc): Disable 'OK' button
1895     when no secret key is available.
1896    
1897     2004-12-11 Timo Schulz <[email protected]>
1898    
1899     * wptFileManager.cpp (fm_add_opened_files): Fix broken code to detect
1900     the file type.
1901     (fm_parse_command_line): Likewise.
1902    
1903     2004-12-02 Timo Schulz <[email protected]>
1904    
1905     * wptKeySigDlg.cpp (do_load_keyprops): Only issue errors for non-main nodes.
1906    
1907     2004-11-04 Timo Schulz <[email protected]>
1908    
1909     * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Support preferred
1910     keyserver sub packets.
1911    
1912     * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Set a flag to
1913     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     still in cache and provoked an error.
1916    
1917     * wptKeySigDlg.cpp (do_load_keyprops): Stricter key checks.
1918    
1919     * wptW32API.cpp (center_window): Replaced with real code which calculates
1920     the position relative to the desktop window.
1921    
1922     2004-10-25 Timo Schulz <[email protected]>
1923    
1924     * wptClipDecryptDlg.cpp (clip_decrypt_dlg): Issue an info box
1925     if the PGP message is complete but broken during the transport.
1926     Thanks to Werner and Achim.
1927     * wptFileManager.cpp (fm_sym_encrypt): Do not force CAST5. Thanks
1928     to the gnupg-users.
1929     * 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     * wptClipEditDlg.cpp (clip_edit_dlg_proc): Add a 'mail quote' mode
1932     which prepends the text with '> '. This makes it easier to quote
1933     decrypted text.
1934     * wptKeyserverDlg.cpp (keyserver_list_build): Code which was factored
1935     out from..
1936     (keyserver_dlg_proc): ..here.
1937    
1938     2004-10-15 Timo Schulz <[email protected]>
1939    
1940     * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Make sure that opt
1941     is really initialized.
1942    
1943     2004-10-07 Timo Schulz <[email protected]>
1944    
1945     * wptErrors.cpp (winpt_errmsg): Use a generic header when no
1946     filename is supplied.
1947     * wptMainProc.cpp (cleanup_tmp_files): Do not use BUG but
1948     an error message which is more clean. Thanks to Ralf.
1949     * wptCardDlg.cpp (card_keygen_dlg_proc): Support new card
1950     admin mode.
1951     * wptKeySignDlg.cpp (do_check_protection): Also check for smart
1952     card protection.
1953     (get_keyinfo): Return if this is a smart card key.
1954     * wptKeyEditDlgs.cpp (do_find_userid): Use UTF8 encoding before
1955     comparing the names.
1956     * winpt.cpp: Now depends on PTD 0.7.1.
1957    
1958     2004-10-01 Timo Schulz <[email protected]>
1959    
1960     * wptClipSignDlg.cpp: Really use the selected subkey with the
1961     right '!' syntax. Thanks to Vedaal for pointing this out.
1962     * wptGPG.cpp (gnupg_backup_keyrings): Check if the backup device
1963     is accessable and writeable, otherwise inform the user. Kudos to
1964     the one who reported this problem.
1965    
1966     2004-09-20 Timo Schulz <[email protected]>
1967    
1968     * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Disable 'Sign' in
1969     context menus when the key is flagged as revoked.
1970     (update_ui_items): Likewise and set the 'ShowPhoto' flag only if
1971     the key has such an item.
1972    
1973     2004-09-08 Timo Schulz <[email protected]>
1974    
1975     * wptKeyserverDlg.cpp (kserver_get_pos): If only one element is
1976     in the list, return zero.
1977    
1978     2004-09-07 Timo Schulz <[email protected]>
1979    
1980     * wptAboutDlg.cpp (about_dlg_proc): Add 'Help' button. Suggested by Ralf.
1981     * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Likewise.
1982    
1983     2004-09-01 Timo Schulz <[email protected]>
1984    
1985     * wptGPG.cpp (GPG_CONF): Define it. Use gpg.conf by default.
1986     (default_key_from_cache): Use new key attribute 'usable'.
1987     * WinPT.cpp (show_unprotected_keys): Removed.
1988     * wptKeylist.cpp (check_key): Removed.
1989     (seclist_init): Use new 'usable' key attribute.
1990     (keylist_add_key): Likewise.
1991     * wptKeyManagerDlg.cpp (keylist_subclass_proc): support to
1992     add keys via 'INSERT'.
1993     * wptListView.cpp (listview_select_one): New.
1994     (listview_find): New.
1995     * wptFileManager.cpp (fm_get_current_pos): If there is only
1996     one item, return 0 but also select it. Thanks to Christian.
1997    
1998     2004-08-28 Timo Schulz <[email protected]>
1999    
2000     * WinPT.cpp (WinMain): Free gpg table in case of an error.
2001     * wptFileManagerDlg.cpp (filelist_subclass_proc): New.
2002     (filemanager_dlg_proc): Subclass the list control.
2003     * Fix Alt+C for the winpt_prefs_dlg_proc.
2004     * wptKeyserver.cpp (kserver_load_conf): Ignore lines with
2005     just whitespaces. Thanks to the folks on winpt-users.
2006    
2007     2004-08-27 Timo Schulz <[email protected]>
2008    
2009     * wptKeyserver.cpp (skip_whitespace): New.
2010     * Fix a problem with the key cache. The new hash item was
2011     not initialized to zero and thus the free caused an illegal access.
2012     Thanks to Ralf for pointing this out.
2013     * wptTextInputDlg.cpp (text_input_dlg_proc): Finished with localisation.
2014     * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Likewise.
2015     * wptFirstRunDlg.cpp (first_run_dlg_proc): Remove global variable and
2016     use a context to store the value. Loalize all text strings.
2017     * wptKeyList.cpp (key_check_validity): Cannot use gettext here.
2018     (keylist_get_recipients): Increase buffer for gettext messages.
2019    
2020     2004-08-26 Timo Schulz <[email protected]>
2021    
2022     * WinPT.cpp (load_keyserver_conf): New. Factored out some code
2023     from WinMain ().
2024 twoaday 130 (WinMain): Load keyserver config at the begin. Thanks to Bodo Aßner
2025 twoaday 20 * wptKeyserverDlg.cpp (keyserver_dlg_proc): If there is no keyserver
2026     in the list control, add at least the internal default HKP server.
2027     * wptKeygenDlg.cpp (keygen_wizard_dlg_proc): NLS support.
2028     * wptKeySignDlg.cpp (sig_class_dlg_proc): Likewise.
2029     (keysign_dlg_proc): Likewise.
2030     * wptKeySigDlg.cpp (keysig_dlg_proc): Likewise.
2031     * wptKeyserver.cpp (skip_type_prefix): New. Thanks to Marcus Junk.
2032     (kserver_connect): use it here.
2033     (kserver_send_request): Likewise.
2034     (kserver_recvkey): Likewise.
2035    
2036     2004-08-25 Timo Schulz <[email protected]>
2037    
2038     * wptFileManager.cpp (fm_get_file_type): Skip files over 32 MB
2039     and skip to read large files on floppy discs.
2040     (fm_wipe): Display a 'wait' cursor until the wipe is complete.
2041     (is_floppy_disc): New.
2042     * wptFileManagerDlg.cpp (filelist_subclass_proc): New.
2043     (file_manager_dlg_proc): Use subclassing to allow some hotkeys.
2044    
2045     2004-08-24 Timo Schulz <[email protected]>
2046    
2047     * wptKeyEditDlgs.cpp (userid_list_init): Add creation date for
2048     the user-ids.
2049     * wptKeygenDlg.cpp (key_wizard_dlg_proc): Allow to switch into
2050     expert mode when the non-interactive mode is used.
2051     * WinPT.cpp (WinMain): Start the keygen wizard instead of the
2052     expert dialog and allow to switch to it.
2053    
2054     2004-08-20 Timo Schulz <[email protected]>
2055    
2056     * wptKeyManagerDlg.cpp (do_create_minpopup): In read-only
2057     mode the menu is not available.
2058     (popup_gpg_readonly): New.
2059     (menu_gpg_readonly): New.
2060     (keymanager_dlg_proc): Use it here. Do not check the permissions
2061     any longer since this is now handle via the read-only code.
2062     * wptMainProc.cpp (winpt_main_proc): Check if the keyrings
2063     are in read-only mode.
2064     * wptKeyGenDlg.cpp (keygen_wizard_dlg_proc): RSA support.
2065     * wptKeySignDlg.cpp (keysign_dlg_proc): Allow non-revocably
2066     signatures in expert mode.
2067     * wptKEyEditDlgs.cpp (do_find_userid): Release context.
2068     * wptGPG.cpp (gpg_check_permissions): Only print out a warning
2069     in the interactive mode.
2070     * wptTrayPopDlg.cpp (WndProc): Destroy the window when the left
2071     mouse button is clicked.
2072    
2073     2004-08-19 Timo Schulz <[email protected]>
2074    
2075     * wptKeyEditDlg.cpp (keyedit_addsubkey_dlg_proc): Corrected
2076     key numbers.
2077    
2078     * wptKeysigDlg.cpp (do_delsig): New. Implement 'delsig' command.
2079     (is_sig): Change code to allow to check pre-defined fields.
2080    
2081     * WinPT.cpp (WinMain): Allow read-only support for keyrings.
2082    
2083     2004-08-06 Timo Schulz <[email protected]>
2084    
2085     * wptContext.h: Move subclass_s context to this file.
2086    
2087     * wptKeysigDlg.cpp (subclass_dlg_proc): New.
2088    
2089    
2090     2004-08-05 Timo Schulz <[email protected]>
2091    
2092     * wptKeySigDlg.cpp (sigprops_dlg_proc): Set the 'expired' flag
2093     when possible.
2094     New dialog layout to enhance the readability of the text. Use
2095     flat check boxes for the same reason.
2096    
2097     * wptKeyEditDlgs.cpp (do_editkey_expire): Set new value to
2098     the right column (3 not 4).
2099    
2100     * wptFileManagerDlg.cpp: Make sure the wipe freespace tempfile
2101     uses a unique name.
2102    
2103    
2104     2004-08-04 Timo Schulz <[email protected]>
2105    
2106     * wptClipEditdlg.cpp (clip_edit_dlg_proc): Removed the
2107     edit-field to display the text. Now a RichEdit field is
2108     used. This solves the XP problem that the viewer is empty
2109     even if there is text in it.
2110    
2111     * wptKeyManger.cpp (km_file_export): Add WinPT specific comment.
2112    
2113     * wptKeySigDlg.cpp (sigprops_dlg_proc): New.
2114     (keysig_dlg_proc): Add new 'Properties' button and implement
2115     the code for it.
2116    
2117     * wptSigList.cpp: Add support to show the expiration date.
2118    
2119     * wptGPGME.cpp (keycache_init): Support to show the progress bar.
2120     (keycache_release): Store the amount of keys in the registry for
2121     the progress dialog.
2122    
2123     * wptPreferenceDlg.cpp (prefs_dlg_proc): Add support to generate
2124     default keyserver.conf.
2125    
2126     * wptKeyserver.cpp (kserver_load_conf): Store the mod-time of the file.
2127     Fix possible buffer overflow.
2128     (wsock_end): Release stored keyserver list.
2129    
2130     * wptEncryptDlg.cpp (clip_encrypt_dlg_proc): Allow to search for
2131     a specific recipient and select it.
2132    
2133     2004-08-02 Timo Schulz <[email protected]>
2134    
2135     * wptKeysigDlg.cpp (do_create_popup): New.
2136     (do_load_keyprops): New.
2137    
2138     (keysig_dlg_proc): Factor out some common code and use
2139     do_load_keyprops.
2140    
2141     * wptKeyServer.cpp (kserver_check_inet_connection): New.
2142    
2143     * wptKeyManger.cpp (km_refresh_from_keyserver): First check
2144     for an active internet connection. It's annoying for the
2145     user to confirm an connection error for each key (n>40).
2146    
2147     2004-07-27 Timo Schulz <[email protected]>
2148    
2149     * wptKeyManagerDlgProc.cpp (keymanager_dlg_proc): Set the new
2150     value for the ownertrust.
2151    
2152     * wptKeyManager.cpp (get_key_trust): Make it public.
2153     (get_key_trust_str): New.
2154     (km_refresh_from_keyserver): Allow to select random keys.
2155     (km_refresh_one_key): New.
2156    
2157     * wptKeyserver.cpp: Use default keyserver if possible.
2158    
2159     2004-07-13 Timo Schulz <[email protected]>
2160    
2161     * wptFileManager.cpp (fm_assume_onepass_sig): New.
2162     Thanks to Vedaal who found out that armored one-pass sigs are not
2163     correctly recognized.
2164    
2165     (ask_filename): New.
2166     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    
2169     (fm_encrypt): Use it here.
2170     (fm_decrypt): Likewise.
2171     (fm_sign): Likewise.
2172    
2173     * wptKeyManagerDlg.cpp (keymanager_dlg_proc): New context menu entry
2174     to set secret keys to ultimate trust.
2175    
2176     * wptKeyManager.cpp (km_check_for_seckey): Optionally return if the
2177     key has ultimate trust.
2178     (km_set_implicit_trust): New.
2179    
2180     2004-07-12 Timo Schulz <[email protected]>
2181    
2182     * wptRegistry.cpp: Support for disable compression of multi-media files.
2183     (set_reg_winpt_single): New.
2184     (get_reg_winpt_single): New.
2185    
2186     * wptFileManager.cpp (is_multi_media): New.
2187     (fm_encrypt): Disable compression of multi-media files.
2188     (fm_state_new): Set comment to indicate armored files were generated
2189     by WinPT. This is a replacement due to the fact the WinPT string is not
2190     added in the 'Version' for larger files.
2191    
2192     * WinPT.cpp (WinMain): Extract the loadimage.exe from the DLL if not found.
2193    
2194     2004-07-11 Timo Schulz <[email protected]>
2195    
2196     * Bug fix for the validity revoked status. Now it is 'revoked'
2197     and not 'unknown' any longer.
2198    
2199     * Feature to disable encryption. This might be useful for filetypes
2200     GPG does not recognize as compress (movies, ...).
2201    
2202     * wptFileManager.cpp (fm_get_file_type): Skip packet detction if
2203     the file is large and it has no openpgp extension.
2204    
2205     2004-06-19 Timo Schulz <[email protected]>
2206    
2207     * wptInet.cpp: Renamed to ...
2208     * wptHttp.c: ... this.
2209     * wptKeyManager.cpp (km_http_import): Release 'p' not too early.
2210     * WinPT.cpp (WinMain): If there is a problem with the homedir,
2211     jump to the first start settings.
2212    
2213     2004-06-12 Timo Schulz <[email protected]>
2214    
2215     * wptInet.cpp: Updated.
2216     * wptKeyManager.cpp (km_http_import): Use http_send_request2() to
2217     parse the URL.
2218     * wptCommonDlg.cpp (http_file_dlg_proc): New.
2219     (get_http_file_dlg): New.
2220    
2221     2004-06-08 Timo Schulz <[email protected]>
2222    
2223     * wptInet.cpp: New.
2224     * wptKeyManagerDlg.cpp (key_manager_dlg_proc): Support for http
2225     transfers.
2226     * wptKeyManager.cpp (km_http_import): New.
2227    
2228    
2229     2004-06-02 Timo Schulz <[email protected]>
2230    
2231     * wptClipEditDlg.cpp (clip_edit_dlg_proc): Do not issue an error
2232     if there is no clipboard data.
2233    
2234     Release memory in case of an error.
2235    
2236     * wptKeyManager.cpp (keylist_cmp_cb): Allow to sort by algorithm.
2237    
2238     * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Likewise.
2239    
2240    
2241     2004-05-31 Timo Schulz <[email protected]>
2242    
2243     * wptFileVerifyDlg.cpp (file_verify_dlg_proc): Implement the
2244     'X' close button. Noted by a friendly user.
2245    
2246     Disable 'Save' button.
2247    
2248     * wptMainProc.cpp (cleanup_tmp_files): Delete all related temp files.
2249    
2250     * wptFileManager.cpp (fm_set_status): Do not use the data file name
2251     for signatures but keep the original file name.
2252    
2253     (fm_verify_pasted_detsig): Try to verify detached signatures from
2254     the clipboard.
2255    
2256     2004-05-14 Timo Schulz <[email protected]>
2257    
2258     * WinPT.cpp (check_crypto_engine): Due to some
2259     internal GPG changes the min. version for smart card
2260     support is now 1.3.6.
2261    
2262     * wptProxySettingsDlg.cpp (read_proxy): Correct prefix
2263     handling. Thanks to the folks who reported this via SF.net.
2264    
2265     * wptRegistry.cpp (get_reg_winpt_prefs): Corrected enum ids.
2266     Thanks to the folks on winpt-users who reported it.
2267    
2268     * wptPreferencesDlg.cpp (prefs_dlg_proc): Fix code in case of
2269     the hotkeys are disabled.
2270    
2271     * wptKeylist.cpp (do_addkey): Broken ElGamal dection, fixed.
2272    
2273     * wptFileManager.cpp (fm_get_file_type): Do not parse the entire
2274     file if the size is >= 256MB.
2275    
2276     2004-03-15 Timo Schulz <[email protected]>
2277    
2278     * Decrypt list box has now a vertical scroll bar.
2279    
2280     2004-03-11 Timo Schulz <[email protected]>
2281    
2282     * The DLL is now complety C-source.
2283    
2284     2004-03-08 Timo Schulz <[email protected]>
2285    
2286     * wptGPG.cpp (gnupg_import_keyrings): cleanups.
2287    
2288     * wptUTF8.c (utf8_to_wincp): New. Directly convert UTF-8 to Windows
2289     CP.
2290     (wincp_to_utf8): Likewise.
2291     (conv_charset): Now internal and static.
2292    
2293     * wptUTF8.h: New prototypes and remove the old prototypes.
2294    
2295     * WinPT.cpp (WinMain): Destroy the windows handle in case of an error.
2296    
2297    
2298     2004-03-07 Timo Schulz <[email protected]>
2299    
2300     * wptGPG.cpp (get_gnupg_keyring): Special case because GPG creats
2301     dummy keyrings with a size of zero in the homedir.
2302    
2303     (gpg_check_permissions): Check for read-only keyrings and add code
2304     for this case.
2305    
2306     This problem fixes a lof of other problems related to the OpenPGP
2307     parsing stuff for the key cache.
2308    
2309     * WinPT.cpp (check_crypto_engine): Store the GPG version for later use.
2310    
2311     2004-03-04 Timo Schulz <[email protected]>
2312    
2313     * wptKeyserver.cpp (finger_recvkey): Error if key was not found
2314     or garbled.
2315    
2316     * wptGPG.cpp (gpg_check_permissions): Take care of the entries
2317     in gpg.conf.
2318    
2319     * wptFileManagerDlg.cpp (file_encrypt_dlg_proc): Support to select
2320     the signer. Suggested by Sebastian.
2321    
2322     * wptKeylist.cpp (seclist_init): Moved from the clip dialog file to
2323     this file.
2324     (seclist_free): Likewise.
2325     (seclist_select_key): Likewise.
2326    
2327     * wptFileManager.cpp (fm_encrypt): Handle the case the signer was
2328     already set.
2329    
2330     2004-03-02 Timo Schulz <[email protected]>
2331    
2332     * 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    
2335     (gnupg_backup_keyrings): Support backup of keyrings which were set
2336     in gpg.conf. Thanks to the user who reminded me of this problem.
2337    
2338     (gnupg_check_file_ext): Make check not case sentensive.
2339    
2340     * (sfree_if_alloc): Overwrite the memory with zeros before freeing
2341     it. This only works with c-strings! Use it everywhere we handle
2342     sentensive information (passphrases).
2343    
2344     * Try to improve the usability with better menu names and new
2345     ordering.
2346    
2347     * wptKeyMangerDlg.cpp: Make the 'Trust' column sortable.
2348    
2349     * wptMainProc.cpp (winpt_main_proc): Removed GPG about dialog. Now
2350     it is part of the WinPt about dialog. This way we can minimize the
2351     elements in the popup menu.
2352    
2353     2004-02-29 Timo Schulz <[email protected]>
2354    
2355     * wptFileManagerDlg.cpp (file_encrypt_dlg_proc): Support throw-keyid.
2356    
2357     * wptKeySignDlg.cpp (do_fill_seckeylist): Make sure we skip key itself
2358     so we are not allowing to sign ourself.
2359    
2360     * wptSigList.cpp (siglist_add_key): Support for the signature
2361     flags (local, non-revocably, ...).
2362    
2363     * Key signing with GPG 1.2.x should work again. Hopefully.
2364    
2365     2004-02-26 Timo Schulz <[email protected]>
2366    
2367     * wptFileManagerDlg.cpp (file_encrypt_dlg_proc): Issue an error
2368     if no recipient was selected.
2369    
2370     * wptFileManager.cpp (fm_parse_files): Make sure the progress dialog
2371     is destroyed. This fixes the bug that the dialog sometimes exist even
2372     after the procedure ended.
2373    
2374     * wptProgressDlg.cpp (progress_callback): Change the if-then-else
2375     struct to prevent zombie dialogs.
2376    
2377     * wptKeyserver.cpp: Removed unused prototypes.
2378    
2379     2004-02-25 Timo Schulz <[email protected]>
2380    
2381     * wptKeyManagerDlg.cpp: Use consequently 'List Signatures' and
2382     do not mix the names in the different menus.
2383    
2384     * wptSigList.cpp: Support to show the signature class.
2385    
2386     * wptKeyEditDlgs.cpp (keyedit_main_dlg_proc): Disable the combo
2387     box when there is no secret key available.
2388    
2389     (do_init_keylist): Do not allow to use the owners key as a desig
2390     revoker.
2391    
2392     * wptKeylist.cpp (get_key_trust): New.
2393     (do_addkey): Use it here.
2394    
2395     2004-02-24 Timo Schulz <[email protected]>
2396    
2397     * WinPT.cpp (WinMain): Call a selftest check procedure to
2398     make sure all cryptographic code works as expected.
2399    
2400     2004-02-22 Timo Schulz <[email protected]>
2401    
2402     * PTD: Cryptdisk seems to have problems with locking. Use
2403     a forced flag to tell the code if it should bail out or
2404     ignore locking errors.
2405    
2406     * wptCryptdisk.cpp (cryptdisk_umount_dlg_proc): Use new
2407     locking code.
2408     (cryptdisk_new_dlg_proc): Adjust size of the volume.
2409    
2410     2004-02-21 Timo Schulz <[email protected]>
2411    
2412     * wptCryptdisk.cpp (cryptdisk_cleanup): New.
2413     (is_nt4): Because my Platform-SDK is too old I need to load
2414     some prototypes dynamically.
2415     (init_drives): Return the first useable drive letter if
2416     called with appropriate parameters.
2417     * wptMainProc.cpp (winpt_main_proc): Use it here.
2418    
2419     2004-02-18 Timo Schulz <[email protected]>
2420    
2421     * Modify the cryptdisk code for crosscrypt 0.4.1.
2422     * wptCryptDisk.cpp (do_mount): Add key algorithm param.
2423    
2424     2004-02-17 Timo Schulz <[email protected]>
2425    
2426     * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Also encrypt
2427     to the signers key. Suggested by Alexander.
2428     Use new keycache system, we use the public key part of the
2429     cache because it has all flags set.
2430     * wptGPG.cpp (default_key_from_cache): Use new cache system.
2431     * wptKeySignDlg.cpp (do_fill_seckeylist): Likewise.
2432    
2433    
2434     2004-02-12 Timo Schulz <[email protected]>
2435    
2436     * wptErrors.cpp: New error codes for the cryptdisk feature.
2437     * wptCryptdisk.cpp (do_dispatch): Better error handling.
2438     (cryptdisk_mount_dlg_proc): Use it here.
2439     (cryptdisk_umount_dlg_proc): Likewise.
2440     (init_drives): Use system list.
2441    
2442     Localized all strings.
2443    
2444     2004-02-09 Timo Schulz <[email protected]>
2445    
2446     * wptCryptdisk.cpp (cryptdisk_umount_dlg_proc): New.
2447     (do_reaping): New. Release the list if all items are 'expired'.
2448     (cryptdisk_mount_dlg_proc): New.
2449     (init_drives): New.
2450     * wptMainProc.cpp (cryptdisk_proc): Renamed from...
2451     (handle_cryptdisk): this. And filled with life.
2452    
2453     2004-02-08 Timo Schulz <[email protected]>
2454    
2455     * wptCryptdisk.{cpp,h}: New. Support for the extended
2456     filedisk application.
2457     * wptMainProc.cpp (winpt_main_proc): Likewise.
2458     * WinPT.cpp (WinMain): Make sure the new PTD lib is installed.
2459    
2460     2004-02-05 Timo Schulz <[email protected]>
2461    
2462     * wptRegistry.cpp (set_reg_winpt_prefs): Forget to handle
2463     CMD_DISHOTKEYS. Thanks to the user who reminded me.
2464     * wptMainProc.cpp (spawn_cryptdisk): New interface to
2465     the Cryptdisk application.
2466    
2467     2004-02-04 Timo Schulz <[email protected]>
2468    
2469     * wptRegistry.cpp (get_reg_winpt_prefs): Revamped the core.
2470    
2471     2004-02-03 Timo Schulz <[email protected]>
2472    
2473     * WinPT.cpp (check_crypto_engine): New. Factor out common code.
2474     (WinMain): Check the crypto engine after the first start.
2475    
2476     * wptRegistry.cpp (set_reg_winpt_prefs): Make sure an error is
2477     issued if the values could not stored. Revamped the core.
2478    
2479     * Removed the last appearance of the GPG agent support.
2480    
2481     * wptGPG.cpp (init_gnupg_table): Do not use static buffers.
2482     (free_gnupg_table): Free memory.
2483    
2484     * wptClipImportDlg.cpp (clip_import_dlg_proc): Make sure the
2485     ctx pointer get malloced and set the contents to zero.
2486    
2487    
2488     2004-02-02 Timo Schulz <[email protected]>
2489    
2490     * wptCardDlg.cpp (card_keygen_dlg_proc): Make sure the name
2491     is long enough. The same check for the mail address.
2492    
2493     Thanks to Achim.
2494    
2495     2004-01-28 Timo Schulz <[email protected]>
2496    
2497     * wptCardDlg.cpp (card_keygen_dlg_proc): A info is issued
2498     if keys on the card exist but the user does not said overwrite.
2499    
2500     Make sure the expire date is not in the past.
2501    
2502     * wptMainProc.cpp (winpt_main_proc): Avoid to release the file
2503     lock twice. Not sure if this fixes some other problems but it
2504     was definitely a bug.
2505    
2506     * wptMapi.cpp (mapi_init): Make sure all function ptrs are
2507     initialized otherwise bail out.
2508     (mapi_send_message): New. Interface to allow to send an
2509     encrypted mail with zero ore more encrypted attachments.
2510     (secure_attachment): New.
2511     (parse_recipients): New.
2512    
2513     2004-01-25 Timo Schulz <[email protected]>
2514    
2515     * WinPT.cpp (WinMain): Silently die when an instance is already
2516     running. Do not confuse the user with a message. Suggested by
2517     Sebastian.
2518     * wptKeyManager.cpp (delete_keys_from_cache): New.
2519     (km_delete_keys): Use it here. Thanks to Achim.
2520    
2521     2004-01-23 Timo Schulz <[email protected]>
2522    
2523     * wptCardDlg.cpp (check_pin_len): New. Check if the
2524     PIN is long enough and give an appropriate error.
2525     (card_changepin_dlg_proc): Use the new check function.
2526    
2527     2004-01-22 Timo Schulz <[email protected]>
2528    
2529     * Remove all internal card reader config. It's up to the
2530     user to do this. It would be too error proune to offer it.
2531     * wptCard.h: Removed all card driver stuff.
2532     * wptPinDLG.cpp (pin_cb_dlg): Use better names to differ
2533     between the admin and the user (normal) PIN.
2534    
2535     2004-01-04 Timo Schulz <[email protected]>
2536    
2537     * wptImageList.{cpp,h}: New. Contributed by Andreas Jobs.
2538     * wptKeylist.cpp (keylist_cmp_cb): More patches from Andreas
2539     and minor changes.
2540     * wptListView.cpp (listview_sort_items): Likewise.
2541     * wptKeyManager.cpp (key_manager_dlg_proc): Likewise.
2542     (regist_sep_wnd): Factored out some code.
2543    
2544     2004-01-03 Timo Schulz <[email protected]>
2545    
2546     * wptClipImportDlg.cpp (clip_import_dlg_proc): automatically allow
2547     to import secret keys.
2548    
2549     2003-12-31 Timo Schulz <[email protected]>
2550    
2551     * wptKeyEditDlgs.cpp (keyedit_addsubkey_dlg_proc): Do not sort
2552     the list otherwise the index is wrong.
2553     * wptKeySignDlg.cpp (keysign_dlg_proc): Add the ability to set
2554     a signature expire date.
2555    
2556     2003-12-30 Timo Schulz <[email protected]>
2557    
2558     * fixed the GPG edit-key commands sign and addrevoker.
2559    
2560     2003-12-23 Timo Schulz <[email protected]>
2561    
2562     * wptKeyEditAddKEyDlg.cpp (keyedit_addsubkey_dlg_proc): Remove
2563     ElGamal s+e support. Oops, this should be already done.
2564     * wptGPGME.cpp (keycache_init): Sync both key caches. In other
2565     words transfer some flags from the sec-cache to the pub-cache.
2566     * wptKeySignDlg.cpp (key_sign_dlg_proc): A workaround for the
2567     key sign procedure. If it is already signed, the process
2568     sometimes hangs.
2569    
2570     2003-12-14 Timo Schulz <[email protected]>
2571    
2572     * wptKeyeditSetPrefDlg.cpp (get_userid_preflist): New.
2573     * wptKeyEditDlgs.cpp (keyedit_main_dlg_proc): Support for updpref.
2574     (do_editkey_setpref): Implement updpref command.
2575    
2576    
2577     2003-12-10 Timo Schulz <[email protected]>
2578    
2579     * GPGME support to change key preferences.
2580     * wptKeyeditSetPrefDlg.cpp (keyedit_setpref_dlg_proc): New.
2581     * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Use the new feature here.
2582    
2583    
2584     2003-11-29 Timo Schulz <[email protected]>
2585    
2586     * wptMAPI.cpp (mapi_init): New.
2587     (mapi_deinit): New.
2588     (mapi_send_pubkey): New.
2589     * wptKeyManager.cpp (km_send_to_mail_recipient): New.
2590     * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Support
2591     to send the public key via MAPI to a recipient.
2592     * wptKeySignDlg.cpp (do_fill_seckeylist): Make sure we rewind
2593     the secret key cache so it's not at the end.
2594     (keysign_dlg_proc): Issue a warning when no secret key was
2595     found which could be used for signing the key.
2596     * wptKeylist.cpp (do_addkey): Never add an Elgamal sign+encrypt key.
2597     * wptKeySignDlg.cpp (do_fill_seckeylist): Likewise.
2598    
2599     2003-11-28 Timo Schulz <[email protected]>
2600    
2601     * Remove all support for ElGamal sign+encrypt keys.
2602    
2603     There is a flaw in GPG which makes all such keys useable and
2604     they are comprised even if one signature they made is accessable.
2605     And due to the fact the key is self signed, such a sig is always
2606     available for the public.
2607    
2608     We warn the user at startup if such keys were found!
2609    
2610     * wptMainProc.cpp (elgamal_warn_dlg_proc): New.
2611     * wptGPGME.cpp (count_insecure_elgkeys): New.
2612     * WinPT (WinMain): Use it here.
2613    
2614     2003-11-14 Timo Schulz <[email protected]>
2615    
2616     * wptCardDlg.cpp (card_edit_dlg_proc): Release the second PIN.
2617    
2618     2003-11-13 Timo Schulz <[email protected]>
2619    
2620     * Clarify pin names. Now all PIN's are labeled 'Admin' or 'User'.
2621     * wptPINDlg.cpp (pin_cb_dlg_proc): Length check for the PINs.
2622     Thanks to Achim.
2623     * Change PIN interface. Now it is easier when an operation requires
2624     both PINs.
2625     * 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     needs to enter 2 PINs.
2628    
2629     Name parts were swapped, now they have the right order again.
2630    
2631     2003-10-02 Timo Schulz <[email protected]>
2632    
2633     * Prepare test release.
2634     * wptGPGCmds.h: New from GPG 1.3.4-cvs.
2635    
2636     2003-10-29 Timo Schulz <[email protected]>
2637    
2638     * wptKeyEditDlgs.cpp: New logging scheme. Changed all callers.
2639    
2640     * Create a new interface for an interactive card callback. GPG
2641     provides card control status messages if the wrong card is inserted.
2642    
2643     * wptCardManager.cpp (card_cb_dlg_proc): New.
2644     (card_callback): New.
2645    
2646     * wptCardPCSC.cpp (pcsc_loadlib): Use some 'A' to declare we use
2647     the ASCII functions and not the Unicode function names. Thanks to
2648     Werner for pointing this out.
2649    
2650     * wptPassphraseCB.cpp (passphrase_cb): Better card interface. Now the
2651     serial card number is shown to help the user to find the right card.
2652    
2653     * wptClipSignDlg.cpp (clip_sign_dlg_proc): New logging scheme.
2654    
2655     2003-10-26 Timo Schulz <[email protected]>
2656    
2657     * wptClipDecryptDlg.cpp (clip_decrypt_dlg): Implement new logging.
2658    
2659     * Changed the code at several other places to support the new logging
2660     scheme.
2661    
2662    
2663     2003-10-24 Timo Schulz <[email protected]>
2664    
2665     * Implemented a better logging system. If the return code
2666     of GPG is != 0 and the error is not known, display the errors
2667     from stderr.
2668    
2669     * wptGPGME.cpp (logging_cb): New.
2670    
2671     2003-10-23 Timo Schulz <[email protected]>
2672    
2673     * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): Show GPG output
2674     if the error is unknown.
2675     (clip_sign_dlg_proc): Likewise.
2676     (clip_signenc_dlg_proc): Likewise.
2677     (clip_import_dlg_proc): Likewise.
2678    
2679     2003-10-21 Timo Schulz <[email protected]>
2680    
2681     * wptClipDecryptDlg.cpp (list_recipients): New.
2682     (algo_from_list): New.
2683     (clip_decrypt_dlg): New concept to list all recipients.
2684     * wptFileManager.cpp (fm_list_keys): New.
2685     (fm_decrypt): Same changes as for the clipboard decryption.
2686    
2687     2003-10-21 Timo Schulz <[email protected]>
2688    
2689     * wptClipDecryptDlg.cpp (clip_decrypt_dlg): If the passphrase
2690     was wrong, delete the cache item (if available).
2691     * wptClipSignDlg.cpp (clip_sign_dlg): Likewise.
2692     * wptClipSignEncDlg.cpp (clip_signenc_dlg): Likewise.
2693     * wptPassphraseCB.cpp (set_gpg_passphrase_cb): Set 'is_card'
2694     flag to zero.
2695    
2696    
2697     2003-10-19 Timo Schulz <[email protected]>
2698    
2699     * wptPINDlg.cpp (pin_cb_dlg_proc): Support to store the admin and
2700     the working PIN.
2701     wptCardDlg.cpp (free_pincb): New.
2702     (card_keygen_dlg_proc): Pin callback implemented.
2703     Simple check for the e-mail address.
2704     (card_edit_dlg_proc): End the dialog if no changes were made.
2705    
2706     * Expanded GPGME passphrase interface to work both with PINs
2707     and passphrases.
2708    
2709     2003-10-18 Timo Schulz <[email protected]>
2710    
2711     * wptCardDlg.cpp (card_keygen_dlg_proc): New.
2712     (do_askpin): Handle the case there is no card.
2713     (card_edit_dlg_proc): Add 'New Keys' feature.
2714     (card_changepin_dlg_proc): Implemented.
2715     * WinPT.cpp (WinMain): Ability to start the card manager directly.
2716     * wptMainProc.cpp (smartcard_init): Global stuff to init the reader
2717     driver and the inserted card.
2718    
2719     2003-10-17 Timo Schulz <[email protected]>
2720    
2721     * wptGPGME.cpp (keycache_init): Do not use secring the first time.
2722     * wptKeySignDlg.cpp (keysign_dlg_proc): Make sure only the short
2723     keyid will be displayed.
2724    
2725     2003-10-16 Timo Schulz <[email protected]>
2726    
2727     * Changed GPGME interface for edit card. Now one context is
2728     used for all edit card operations.
2729     * wptCardDlg.cpp (card_edit_dlg_proc): Support for working
2730     and admin PIN. Changed gpgme interface.
2731     (ask_pin): Renamed to..
2732     (do_askpin): this. Provide more information about the card
2733     and its holder.
2734     (do_proc_card_cmds): If no error, reset modify flags for
2735     all controls. Show a short message that the operation ended.
2736     * wptCardPCSC.c (pcsc_free_readers): New.
2737     (pcsc_scan_readers): New.
2738     (pcsc_get_reader): New.
2739     (pcsc_get_card_status): New.
2740    
2741    
2742     2003-10-14 Timo Schulz <[email protected]>
2743    
2744     * wptKeyList.cpp (do_addkey): Add the case the secret key
2745     is stored on a smart card.
2746     (km_check_for_seckey): Take care of the new code.
2747     * 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     to the list view. Now the user can see if the key is useable
2751     for: signing, certifying or encrypting.
2752    
2753     2003-10-13 Timo Schulz <[email protected]>
2754    
2755     * Extended the GPGME API that it is possible to retrieve
2756     the key data. This is for the planned card login but it
2757     might be also useful for other purposes.
2758    
2759     * wptCardPCSC.c: New. General code for PC/SC card readers.
2760    
2761    
2762     2003-10-12 Timo Schulz <[email protected]>
2763    
2764     * wptCardDlg.cpp (guess_libname): New.
2765     (card_status): Simplified the code with an attribute
2766     table. Now it is a loop and not hard coded.
2767     * The card interface has changed. Now the surname and
2768     the given name are two fields and not one field.
2769     * wptMainProc.cpp (winpt_main_proc): Check if the card
2770     reader is configured where appropriate.
2771    
2772     2003-10-09 Timo Schulz <[email protected]>
2773    
2774     * wptCardDlg.cpp (get_card_status): New.
2775     (show_card_status): New. Retrieve the card status and show an
2776     error if approprioate.
2777     * 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     are stored on a smart card.
2781    
2782    
2783     2003-10-08 Timo Schulz <[email protected]>
2784    
2785     * wptCardDlg.cpp (do_proc_card_cmds): Check that only US-ASCII
2786     is used. Otherwise reject the value.
2787     (ask_pin): New. Enable PIN caching for the 'dialog session' so
2788     the user does not need to re-enter it again and again.
2789    
2790     2003-10-07 Timo Schulz <[email protected]>
2791    
2792     * wptPINDlg.cpp (pin_cb_dlg_proc): New.
2793     * wptCardDlg.cpp (do_proc_card_cmds): New.
2794     (card_edit_dlg_proc): Use it here.
2795    
2796     2003-10-06 Timo Schulz <[email protected]>
2797    
2798     * wptFileManager.cpp (fm_encrypt): Wipe files in both modes.
2799     * wptGPG.cpp (gnupg_display_error): Display general error
2800     when the file does not exit.
2801     * wptW32API.cpp (get_folder_dlg): New.
2802     * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Ability to select
2803     the folder for the home directory.
2804     * wptKeyManager.cpp (km_update_default_key_str): Return length
2805     of the string.
2806     (km_complete_status_bar): Use the offset of the default
2807     key string so it is not appened twice.
2808     * wptRegistry.cpp (regist_inst_winpt): Create 'Card' subkey.
2809     * wptCard.h: New.
2810     * wptCardDlg.cpp (new_card_driver): New.
2811     (load_card_driver): New.
2812     (free_card_driver): New.
2813     (card_config_dlg_proc): If the reader is configured, load the
2814     values. This is needful to change the driver later.
2815     (gpg_load_scard): Use driver as a parameter.
2816     * wptMainProc.cpp (winpt_main_proc): Load card driver and
2817     unload it after use.
2818    
2819     2003-09-28 Timo Schulz <[email protected]>
2820    
2821     * wptCardDlg.cpp (card_edit_dlg_proc): New.
2822     (gpg_load_scard): New. Try to use GPG load the card info.
2823     (print_fpr): New. Print beautified fingerprint.
2824     (card_status): New. Set all dialog fields with the values from
2825     the card.
2826     (prepare_dialog): New. Load combo boxes with pre-defined strings.
2827    
2828    
2829     2003-09-25 Timo Schulz <[email protected]>
2830    
2831     * wptProgressDlg.cpp (progress_cb_thread): New.
2832     (progress_callback): Use asynchron code.
2833     * wptFileManager.cpp (fm_parse_files): Implement progress callback.
2834    
2835    
2836     2003-09-25 Timo Schulz <[email protected]>
2837    
2838     * wptClipSignEncDlg.cpp (seclist_dlg_proc): The dialog was broken.
2839     (check_key): New.
2840     Removed the old Secret Key List dialog. Now the key can be directly
2841     chose in the dialog.
2842     (seclist_init): New.
2843     (seclist_destroy): New.
2844     (seclist_select_key): New.
2845     * wptFileManager.cpp (fm_sign): Ask for output file if needed.
2846    
2847     * Client side implementation of the --enable-progress-filter feature.
2848    
2849     * wptProgressDlg.cpp: Server side implementation.
2850     (progress_dlg_proc): New. The actual dialog procedure.
2851     (progress_callback): The GPGME wrapper callback.
2852    
2853     2003-09-24 Timo Schulz <[email protected]>
2854    
2855     * wptKeygenDlg.cpp (keygen_dlg_proc): Implement 'Hide Typing' feature.
2856     * wptFileManager.cpp (fm_encrypt): Ask for output file if needed.
2857     * wptFileManagerDlg.cpp (fm_dlg_proc): Removed im- and export from
2858     the menu. We use import internally, but export was not useful and
2859     thus the code were removed.
2860     * wptPreferenceDlg.cpp (prefs_dlg_proc): Disable some controle at
2861     startup when they are not allowed.
2862     * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Removed PGP2 option.
2863     Make the parsing code much shorter (read).
2864    
2865    
2866     2003-09-22 Timo Schulz <[email protected]>
2867    
2868     * wptSigList.cpp (extract_filename): Make sure there is a '\',
2869     otherwise just dup the string and return.
2870     * wptVerifyList.cpp (verlist_add_sig): Use a variable for the key
2871     to make the code more readable.
2872     * Implemented the GPGME part of the new smartcard interface.
2873     The WinPT interface will be open until the scard stuff is back
2874     ported to GPG 1.3.x.
2875     * wptKeyEditDlgs.cpp (do_editkey_revuid): Need a secret key to do it.
2876     Several code cleanups.
2877    
2878     2003-09-08 Timo Schulz <[email protected]>
2879    
2880     * wptRegistry.cpp: Remove some hotkeys to correct index calculation.
2881     (get_reg_winpt_flag): Check buffer first.
2882     (get_reg_winpt_prefs): Support for the new backup system.
2883     (set_reg_winpt_prefs): Likewise.
2884     * wptHotkey.h: Removed import and export hotkey. Re-ordered elements.
2885     * wptRegistry.h: Cleaned up the hotkey interface.
2886     * wptPreferenceDlg.cpp (enable_backup_items): New.
2887     (prefs_dlg_proc): Simplified hotkey handling. Use new code.
2888     * wptMainProc.cpp (clip_gpg_dlg): Remove hotkey handling for
2889     im- and export. Use the code directly.
2890     (currwnd_gpg_dlg): Likewise.
2891     * wptGPG.cpp (gnupg_backup_keyrings): New.
2892     (backup_one_file): New.
2893    
2894     2003-09-04 Timo Schulz <[email protected]>
2895    
2896     * wptFileManager.cpp (fm_get_file_type): Due to an unknown reason,
2897     the packet parsing return value check was wrong again. Now it does
2898     not recognize Word documents as SECKEY or ENCRYPTED any longer.
2899    
2900     2003-09-03 Timo Schulz <[email protected]>
2901    
2902     * The secret key listing does not contain any 'validity' or
2903     '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
2905     from the public key listing.
2906    
2907     * wptGPG.cpp (default_key_from_cache): New.
2908     (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
2910     file.
2911    
2912     2003-08-30 Timo Schulz <[email protected]>
2913    
2914     * wptGPG.h: Support for the GPG status messages REVKEYSIG and
2915     EXPKEYSIG. With this new feature, GPG 1.2.3 is required.
2916     * Make sure that the signature status does not cause an
2917     segfault.
2918     * WinPT.cpp: Use new check to detect the GPG version and make sure
2919     it is the minimum.
2920     * wptGPG.cpp (parse_version_nr): New.
2921     (check_gnupg_engine): Improved. Now it returns the actual version.
2922    
2923     2003-08-24 Timo Schulz <[email protected]>
2924    
2925     * wptPreferencesDlg.cpp (prefs_dlg_proc): Use better code to disable
2926     dialog controls.
2927    
2928     2003-08-17 Timo Schulz <[email protected]>
2929    
2930     * wptKeyManagerDlg.cpp (keymanager_dlg_proc):
2931     #ID_KEYMISC_EXPORT_PRIVKEY: Retrieve the current list view index. The
2932     value was malformed.
2933     * wptClipEditDlg.cpp (clip_edit_dlg_proc): Free global memory.
2934     * wptKeyserver.cpp (kserver_load_conf): If the file does not exist,
2935     don't bother the user with an error message. Closes #782751.
2936     * wptKeyEditDlgs.cpp (do_editkey_primary): New. Implement the
2937     "primary" edit key command.
2938     * wptKeyserverDlg.cpp (hkp_recv_key): New flag parameter. Now it is
2939     possible to supress the status message. This is useful when the whole
2940     keyring will be refreshed.
2941     * wptFileManager.cpp (fm_parse_command_line): Unquote file if needed.
2942     (quote_file): Avoid double quotes.
2943     * GPGME support for quoted file names.
2944     (fm_sym_encrypt): Double check password and to additional 8-bit checks.
2945     * WinPT.cpp (my_acces): Moved to this file..
2946     * wptGPG.cpp: ..here.
2947     (gpg_check_permissions): Renamed from check_permissions and make it global.
2948     * wptKeyManagerDlg.cpp (key_manager_dlg_proc): Check to make sure we
2949     have write access to the keyring for some commands.
2950    
2951     2003-07-22 Timo Schulz <[email protected]>
2952    
2953     * wptClipEditDlg.cpp (clip_edit_dlg_proc): Figure out the size of
2954     the text instead of allocating the maximum.
2955    
2956     2003-07-13 Timo Schulz <[email protected]>
2957    
2958     * wptKeygenDlg.cpp (check_passphrase): Check if the passphrase contains
2959     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     * wptKeyEditDlgs.cpp (keyedit_change_passwd): Likewise.
2962     * wptSymEnc.cpp (gpgme_encrypt_symmetric): Likewise.
2963     * wptHotkey.cpp (hotkeys_strerror): Use capital letters.
2964    
2965     2003-07-12 Timo Schulz <[email protected]>
2966    
2967     * wptFileManager.cpp (fm_verify): Support for multiple signatures.
2968     * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Likewise.
2969     * wptProxySettingsDlg.cpp (read_proxy): Skip http:// prefix.
2970     * wptKeyserver.cpp (check_URL): Support for hkp://. Closes #755156.
2971     (kserver_connect): Likewise.
2972     (kserver_read_config): Likewise.
2973     * wptSymEnc.cpp (gpgme_encrypt_symmetric): Free memory if the passphrases
2974     are not equal.
2975     * wptKeyGenDlg.cpp (keygen_wizard_dlg_proc): New. An easy to use wizard to
2976     generate a key pair.
2977    
2978     2003-06-24 Timo Schulz <[email protected]>
2979    
2980     * 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    
2984    
2985     2003-06-13 Timo Schulz <[email protected]>
2986    
2987     * wptClipDecryptDlg.cpp (clip_decrypt_dlg): Quote the user-id name.
2988     * wptClipSignDlg.cpp (clip_sign_dlg_proc): Fix the code due to
2989     the fact the signer is now dymanic and not static.
2990     * 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     can revoke v3 keys.
2994     (do_editkey_revoke): Clarify command because it can be only used
2995     for secondary keys.
2996     * wptKeyManagerDlg.cpp (file_sign_dlg_proc): Make sure an error
2997     is issued when no key was selected. Thanks to vedaal.
2998    
2999     2003-06-11 Timo Schulz <[email protected]>
3000    
3001     * wptKeylist.cpp (keylist_add_key): Now the user-ids are in the
3002     right order and we do not use the last user-id but the first
3003     because this is always the primary user-id or the newest user-id.
3004     * wptGPGME.cpp (get_default_keyid): Removed. Some better code
3005     were added to get_gnupg_default_key.
3006    
3007     2003-06-10 Timo Schulz <[email protected]>
3008    
3009     * wptKeysignDlg.cpp (do_fill_seckeylist): Make sure disabled keys
3010     are skipped.
3011     (keysign_dlg_proc): Removed some redundant code.
3012     * wptKeyEditDlgs.cpp (is_idea_protect_algo): New. Find out if
3013     it is possible to change the passphrase.
3014    
3015     2003-06-06 Timo Schulz <[email protected]>
3016    
3017     * wptKeylist.cpp (keylist_get_recipients): Use a stronger warning
3018     message and include the user-id.
3019     * Encryption: use force overwrite (--yes) to make sure there are
3020     no complications with GPG.
3021     * Import: skip all record types we do not understand.
3022    
3023    
3024     2003-06-05 Timo Schulz <[email protected]>
3025    
3026     * wptPassphraseCB.cpp (passphrase_callback_proc): Now the dialog
3027     shows all involved recipients and also the public key algorithm.
3028     * wptRegistry.cpp (reg_inst_winpt): If the user does not want
3029     the extensions, set the entry to "1" so the message is not shown
3030     again.
3031    
3032     2003-06-04 Timo Schulz <[email protected]>
3033    
3034     * wptKeylist.cpp (get_key_algo, get_key_size): Due to the fact
3035     that GPG uses the newest subkey by default, we always return
3036     the info of this subkey and not the first.
3037     * 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     get_file_size is called.
3041     * WinPT.cpp (WinMain): Only check the GPG engine version if there
3042     were no problems with the GPG config. And differ between a problem
3043     to get the version and if a wrong version were detected.
3044    
3045    
3046     2003-06-01 Timo Schulz <[email protected]>
3047    
3048     * wptCurrWnd.cpp (rel_key, hit_key): Replaced with macros...
3049     (KEYDOWN, KEYUP): macros for the functions above.
3050    
3051     2003-05-31 Timo Schulz <[email protected]>
3052    
3053     * wptKeyManager.cpp (km_key_is_v3): Return if the selected
3054     key is an old PGP 2 (v3) key.
3055     * wptKeyManagerDlg.cpp (key_manager_dlg_proc): Only allow
3056     (#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     key is v3 and forbid most commands.
3060     (is_cmd_openpgp): New.
3061    
3062     2003-05-28 Timo Schulz <[email protected]>
3063    
3064     * wptKeyManager.cpp (km_set_clip_info): New.
3065     * wptKeyManagerDlg.cpp (key_manager_dlg_proc): Use it here.
3066     * wptImportList.cpp (implist_build): Some column changes for
3067     the listview control.
3068     (implist_load): Return if secret keys were found.
3069     * wptClipImportDlg.cpp (data_cb_dlg_proc): Store if secret keys
3070     were found.
3071     (clip_import_dlg_proc): New message if secret keys were found.
3072    
3073    
3074     2003-05-25 Timo Schulz <[email protected]>
3075    
3076     * wptImportList.cpp (implist_add_key): Address charset problem.
3077     * wptVerifyList.cpp (verlist_add_sig_log): Use UTF8 decoding.
3078     * wptKeyserver.cpp (set_default_kserver): New.
3079     (wsock_init): Call the new function.
3080     (kserver_load_conf): If the FP is invalid, skip to read the file.
3081     * WinPT.cpp (WinMain): Call set_default_kserver to make sure the
3082     item has a value.
3083    
3084     2003-05-24 Timo Schulz <[email protected]>
3085    
3086     * wptKeyEditDlgs.cpp (keyedit_main_dlg_proc): Subclass the two lists
3087     to allow to use virtual keys (DEL, INS).
3088     Release the uid control context when the dialog will be destroyed.
3089    
3090    
3091     2003-05-22 Timo Schulz <[email protected]>
3092    
3093     * wptMainProc.cpp (winpt_main_proc): Set use_hotkey for current
3094     window mode sign+encrypt. This fixes a couple of other problems.
3095     * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Get new values of the
3096     key when the cache was reloaded.
3097    
3098    
3099     2003-05-21 Timo Schulz <[email protected]>
3100    
3101     * wptSiglist.cpp (siglist_add_key): Only list signatures which are
3102     user-id certificates (0x10-0x13) and ignore key and subkey sigs.
3103     c-strings are now handle correctly and decoded into GPGME.
3104    
3105     2003-05-20 Timo Schulz <[email protected]>
3106    
3107     * wptKeyPropsDlg.cpp (key_props_dlg_proc): Factor out code to change
3108     the passphrase from here to...
3109     * wptKeyEditDlgs.cpp (keyedit_change_passwd): ...this place.
3110    
3111     2003-05-19 Timo Schulz <[email protected]>
3112    
3113     * wptPasswdDlg.cpp (create_passwd_dlg): Removed.
3114     (request_passphrase): New.
3115     The passphrase_s context is now internal, all externl function use now
3116     request_passphrase. Changed all callers.
3117     * wptKeygenDlg.cpp (keygen_dlg_proc): Reworded the passphrase
3118     warning and a check for the comment field was added.
3119     * wptKeyEditDlgs.cpp: New. This file now combines the dialogs which
3120     has shown the subkeys and the userids.
3121     * wptKeySubkeyDlg.cpp: Deleted and stuff merged into wptKeyEditDlgs.cpp.
3122    
3123     2003-05-17 Timo Schulz <[email protected]>
3124    
3125     * wptFileManager.cpp: Moved gpgme_file_get_extension to this file
3126     and renamed it to...
3127     (file_get_extension): this. gpgme_control now also returns the
3128     (get_file_name): Corrected the calculation of the basename.
3129     state of the command if you use -1 as the value.
3130     * wptImportList.cpp (implist_load): Make sure we really have the key ID.
3131     * wptClipEditDlg.cpp (clip_edit_dlg_proc): Some small changes all over
3132     the place.
3133    
3134     2003-05-14 Timo Schulz <[email protected]>
3135    
3136     * wptKeyManager.cpp (km_enable_disable_key): New.
3137    
3138     2003-05-13 Timo Schulz <[email protected]>
3139    
3140     * wptKeyList.cpp (keylist_add_key): Add 'DISABLED' flag for keys.
3141     (key_check_validity): Moved from GPGME to this file.
3142     * wptKeyManager.cpp (km_get_key_status): New.
3143    
3144     2003-05-09 Timo Schulz <[email protected]>
3145    
3146     * wptMDSumDlg.cpp (mdsum_dlg_proc): New.
3147     * wptFileManager.cpp (fm_print_md): New.
3148     * wptFileManagerDlg.cpp (file_manager_dlg_proc): Support for the Print MD
3149     command.
3150    
3151     2003-05-08 Timo Schulz <[email protected]>
3152    
3153     * wptMainProc.cpp (winpt_main_proc): Symmetric encryption for the current
3154     window mode.
3155     (currwnd_gpg_dlg): Likewise.
3156     * wptCurrWnd.cpp (wnd_msg_em_set_pos): Fix an off-by-one bug.
3157     * 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     * wptImportStatusDlg.cpp (import_status_dlg_proc): Take care of secret
3160     keys.
3161     * wptfileManager.cpp (fm_get_file_type): Fix packet type detection error.
3162     This makes the priority of the rc2 update more urgent.
3163    
3164     2003-05-07 Timo Schulz <[email protected]>
3165    
3166     * Clean up the outer GPGME interface. Internal functions should be
3167     invisible in gpgme.h.
3168     Merge the photo-id, formerly attribute id stuff with gpgme_key_get_xxx_attr.
3169     * wptKeyserver.cpp: Some cleanups.
3170     (finger_recvkey): Skip URL postfix if there.
3171    
3172     2003-05-06 Timo Schulz <[email protected]>
3173    
3174     * wptKeySigDlg.cpp (keysig_dlg_proc): Disable the button when all keys
3175     are available. Removed old [unused] code.
3176     Make sure we really have the key in the cache.
3177    
3178     2003-05-04 Timo Schulz <[email protected]>
3179    
3180     * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): If invalid recipients
3181     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     a general error is used.
3184    
3185     2003-05-03 Timo Schulz <[email protected]>
3186    
3187     * wptParser.cpp: Renamed to...
3188     * wptGPGParser.cpp: this.
3189     (release_option): Renamed to...
3190     (release_gpg_options): this.
3191     (commit_option): Renamed to...
3192     (commit_gpg_options): this.
3193     (parse_option): Renamed to...
3194     (parse_gpg_options): this.
3195     * wptGPG.cpp: Use new parser function names.
3196     (set_gnupg_default_key): Free memory.
3197     * wptKeylist.cpp (keylist_add_groups): New group code.
3198     * wptGroups.{c,h}: Removed. Now we use the GPG group command.
3199     * wptKeySigListDlg.cpp (keysig_dlg_proc): Change column from
3200     2 to 4.
3201     (recv_missing_keys): Likewise. Now it is possible to retrieve
3202     missing keys. Thanks to Klaus.
3203     * wptKeyserverDlg.cpp (hkp_recv_key): Use a dymanic buffer rather
3204     than a static buffer to avoid garbled keys. There are some very
3205     large keys and these cause some trouble with a 16k buffer.
3206     (keyserver_dlg_proc): Localized some strings.
3207     * wptKeyserverSearchDlg.cpp (hkpsearch_dlg_proc): Use new column
3208     names which are equal to the names we use in the Key Manager.
3209     * wptKeySignDlg.cpp (keysign_dlg_proc): Fix a silly '=' but
3210     should be "==" bug.
3211     * wptKeygenDlg.cpp (mbox): Removed. Too much overhead.
3212     * Add --expert option for the GPG procedure call if needed.
3213    
3214     2003-05-02 Timo Schulz <[email protected]>
3215    
3216     * wptW32API.cpp (set_foreground_wnd): Removed. Changed all callers.
3217    
3218     2003-04-30 Timo Schulz <[email protected]>
3219    
3220     * wptKeyManagerdlg.cpp (keymanager_dlg_proc): Support for the
3221     next context menu ("Add"). Make sure the entries are disabled
3222     when the key has no secret key.
3223     * wptKeyEditAddPhotoDlg.cpp (keyedit_addphoto_dlg_proc): New.
3224     * wptFileManager.cpp (fm_decrypt): Set sig to NULL so it won't
3225     cause a segfault when the pointer free tries to deallocate the
3226     pointer.
3227    
3228     2003-04-27 Timo Schulz <[email protected]>
3229    
3230     * wptKeysigDlg.cpp (keysig_dlg_proc): A double click now allows
3231     to show the properties of the signers keys.
3232     * wptKeyEditAddRevokerDlg.cpp (keyedit_addrevocer_dlg_proc): New.
3233    
3234     2003-04-26 Timo Schulz <[email protected]>
3235    
3236     * wptParser.cpp: A lot of structural changes. Always add items
3237     at the end of the list so we don't need to make a copy of the list
3238     to restore the original order. Fix the group problem.
3239     * wptKeylist.cpp (keylist_build): Use OR to get the flags and
3240     not ==.
3241     * wptKeyManagerDlg.cpp (keymanager_dlg_proc): The export command
3242     (file) does not use the keyid as the file name when more than one
3243     keys were selected.
3244     Allow allow to set default keys which are not revoked or expired.
3245     * wptFileEncryptDlg.cpp (file_encrypt_dlg_proc): Allow to sort
3246     the columns.
3247     Set the force trust flag in GPGME if there are some recipients
3248     with no validity.
3249    
3250     2003-04-25 Timo Schulz <[email protected]>
3251    
3252     * wptVerList.cpp (verlist_build): Change the name of some columns.
3253     * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Instead of just the
3254     notation (if present!) present the user a general message box
3255     with extended signature information. This means the notation
3256     data and a possible policy URL.
3257    
3258    
3259     2003-04-24 Timo Schulz <[email protected]>
3260    
3261     * wptKeyEditAddSubKeyDlg.cpp (keyedit_addsubkey_dlg_proc): Init
3262     default values to make it easier for newbies.
3263     * wptClipDecryptDlg.cpp (clip_decrypt_dlg): Use a better error
3264     when no secret key was found. Also mention the public key algo.
3265     * wptFileManager.cpp (fm_decrypt): Likewise.
3266    
3267     2003-04-23 Timo Schulz <[email protected]>
3268    
3269     * wptKeyPropsDlg.cpp (ownertrust_to_string): Moved the function
3270     from GPGME#gpgme_ownertrust_to_string into WinPT.
3271    
3272     2003-04-20 Timo Schulz <[email protected]>
3273    
3274     * wptClipboard.cpp: Removed. All these functions and constants
3275     are now available in MyGPGME/clip.c and thus part of GPGME.
3276     * wptKeylist.cpp (keylist_add_to_recipients): Renamed to...
3277     (keylist_get_recipients): this. Return the context instead of
3278     an argument.
3279     (get_key_size): Add key index.
3280     (get_key_algo): Likewise.
3281     (keylist_build): Use a special mode when signing is used.
3282     (keylist_enum_recipients): Return a malloced pointer to the
3283     recipients.
3284     * wptClipDecryptDlg.cpp (clip_decrypt_dlg): Add primary fingerprint
3285     when we have a signature result and we do not trust the key.
3286    
3287     2003-04-20 Timo Schulz <[email protected]>
3288    
3289     * wptFindWnd.h: Removed. We don't use it any longer.
3290     * wptGPG.h: Merged GPGERR_xxx constants with WPTERR_xxx.
3291     (gpg_strerror): Removed. Now it is handled in winpt_strerror.
3292     * wptFileManager.cpp (fm_get_file_name): move this to
3293     * wptVerifyList.cpp (get_file_name): ..this place and declare
3294     it as static because no other file need this function.
3295    
3296     2003-04-15 Timo Schulz <[email protected]>
3297    
3298     * wptClipImportDlg.cpp (data_cb_dlg_proc): New.
3299     (data_cb_thread): New.
3300     (data_cb_dlg_create): New.
3301     (data_cb_dlg_destroy): New.
3302     (data_cb_new): New.
3303     (clip_import_dlg_proc): Use a callback dialog to
3304     show the user the data decoding procedure is in
3305     progress. This dialog is destroyed in the key
3306     import statistics dialog.
3307    
3308    
3309     2003-04-13 Timo Schulz <[email protected]>
3310    
3311     * wptSubkeyDlgProc.cpp (key_subkey_dlg_proc): Use a callback
3312     context.
3313     * wptUidDlgProc.cpp (keyuid_dlg_proc): Likewise.
3314     * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Set the protect
3315     flag inside the KEY contect if needed.
3316     * wptKeySubkeyDlg.cpp (key_subkey_dlg_proc): Only ask for a
3317     passphrase if the protect flag is set.
3318     Display the callback dialog to show the progress.
3319     Implemented the "revkey" feature.
3320     * wptKeyUidDlg.cpp (key_uid_dlg_proc): Likewise.
3321     (do_add_new_userid): New. Add an entry to the list box
3322     after the GPG process finished.
3323     * wptClipDecryptDlg.cpp (clip_decrypt_dlg): Initialize sig
3324     to zero to avoid segfaults.
3325    
3326     2003-04-12 Timo Schulz <[email protected]>
3327    
3328     * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Use the new
3329     GPGME code.
3330     * wptVerifyList.cpp (verlist_add_sig_log): Likewise.
3331     * wptClipDecryptDlg.cpp (clip_decrypt_dlg_proc): Likewise.
3332     * wptFileManager.cpp (fm_decrypt): Likewise.
3333     * WinPT.cpp (check_default_key): Check if the keys in gpg.conf
3334     are valid and in the keyring.
3335     * wptKeySignDlg.cpp (do_check_protection): Disable the passphrase
3336     item if the key is not protected.
3337    
3338    
3339     2003-04-09 Timo Schulz <[email protected]>
3340    
3341     * wptFirstRunDlg.cpp (first_run_dlg_proc): Mark selection as
3342     invalid for cancel.
3343    
3344     2003-03-20 Timo Schulz <[email protected]>
3345    
3346     * wptFindWnd.cpp: Removed.
3347     * wptW32API.c (dialog_box_param): Use FindWindowEx() instead of
3348     find_window.
3349     * Whenever it's possible, use case insentensive searches to avoid
3350     problems.
3351    
3352     2003-03-19 Timo Schulz <[email protected]>
3353    
3354     * wptMainProc.cpp (winpt_main_proc): Put the init_dtp code here.
3355     * wptPassphraseCB.cpp (hide_typing): Removed. Use short code directly
3356     in the code.
3357     * wptPasswdDlg.cpp: Likewise.
3358     (passphrase_cb_init): Declare as static.
3359     (passphrase_cb_gpgme): Modified to use the static function and rename
3360     it to...
3361     (passphrase_gpgme_set_cb): ..this. New.
3362     * wptSecListDlg.cpp: Complete new appraoch. Now we use CB_SETITEMDATA
3363     and friends to assign data to each item.
3364     Move dialog code to...
3365     * wptClipSignEncDlg.cpp: ..here.
3366     * 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     is needed to gather the designated revoker keys.
3369    
3370     2003-03-18 Timo Schulz <[email protected]>
3371    
3372     * wptKeyImportStatDlg.cpp (import_status_dlg_proc): Fix index
3373     of revocation from 9 to 8.
3374     Set the text that no key was updated only if no new sig, subkey,
3375     userid and no public were added.
3376     Add more information: new {subkeys, signatures, userid}.
3377     * wptKeyManager.cpp (km_delete_keys): Fixme lame, '=' instead of '==' bug.
3378     * wptDlgs.cpp: Removed.
3379     * wptDlgs.h: (dlg_fatal_error): New. Macro.
3380    
3381     2002-03-16 Timo Schulz <[email protected]>
3382    
3383     * wptKeyRevokeDlg.cpp (key_revoke_dlg_proc): Encode the
3384     optional text in UTF-8 to avoid charset problems.
3385     * 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     for the rest of the columns.
3389     (keylist_handle_column_click): New.
3390     * wptKeyEditOwnertrustdlg.cpp (keyedit_ownertrust_dlg_proc):
3391     Removed the 'Advanced' button because it only confuses users
3392     and it is not often used.
3393     * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Support to ex-
3394     and import the trustdb values (ownertrust).
3395     * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): Ability to
3396     sort columns.
3397    
3398     2002-03-09 Timo Schulz <[email protected]>
3399    
3400     * 64-bit support for wipe operations.
3401    
3402     2002-03-08 Timo Schulz <[email protected]>
3403    
3404     * wptFileManager.cpp (fm_parse_command_line): Ignore lines with '--'
3405     because they are options rather than files.
3406     * WinPT.cpp (WinMain): Allow to start the key manager directly
3407     via --keymanager.
3408     * wptFileManagerDlg.cpp (file_secdel_confirm_dlg_proc): New.
3409     (wipe_cb): New. Wipe callback function.
3410     (fill_drive_combobox): New. Fill in all logical drives into
3411     the given combo box.
3412     (wipe_thread): New. Worker thread.
3413     (update_disc_stats): New. Set the disc statistics for the
3414     given drive entry.
3415     (space_wipefrees_dlg_proc): New.
3416    
3417     2002-03-01 Timo Schulz <[email protected]>
3418    
3419     * wptFileManager.cpp (fm_check_file_type): Fix bug in the detection
3420     logic. Now we can decrypt symmetrically encrypted files again.
3421     Be stricter on memory alloaction checks.
3422     (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     other non-PGP data.
3425     (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     (get_reg_winpt_prefs): Likewise.
3428     * wptFilePrefsDlg.cpp: Removed. We don't use it any longer.
3429     * wptDlgs.h: Corrected all dialog protypes to BOOL.
3430     LRESULT was not correct.
3431    
3432     2002-02-08 Timo Schulz <[email protected]>
3433    
3434     * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Only export
3435     the secret key when a file was chosen.
3436    
3437     2002-02-01 Timo Schulz <[email protected]>
3438    
3439     * wptKeyserver.cpp (kserver_search): Fix <KEYID bug.
3440    
3441     2002-01-25 Timo Schulz <[email protected]>
3442    
3443     * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Support to copy the key id
3444     and the fingerprint to the clipboard. Closes #674455.
3445     Automatically reload the keycache when a command is chosen and the cache
3446     state is set to 'reload requested'. Closes #671218.
3447     * wptKeySignDlg.cpp (do_fill_seckeylist): Make sure the public key parts
3448     are not invalid.
3449     * 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     * wptSigList.cpp (siglist_add_key): Indent signatures under the root entry.
3452     (siglist_build): Use a placeholder sig to avoid the position chaos.
3453     * wptKeyUidDlg.cpp: Unified text for 'user-ID'.
3454     * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): If a key is not found,
3455     display more information and use a GPG like output.
3456     * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Force trust if there is
3457     an invalid key in the list of recipients. Closes #674965.
3458    
3459    
3460     2002-01-21 Timo Schulz <[email protected]>
3461    
3462     * wptSymEnc.cpp (gpgme_encrypt_symmetric): Ask the passphrase twice to
3463     avoid typing mistakes.
3464    
3465     2003-01-19 Timo Schulz <[email protected]>
3466    
3467     * winpt.cpp (WinMain): Fixed spelling mistake. Closes #669321.
3468     * wptKeyManagerDlg.cpp (do_resize_window): New.
3469     (do_create_minpopup): New. Closes #669730.
3470     * wptVerifyList.cpp (get_sig_date): Renamed to...
3471     (longdate_to_strdate): New. Changed all callers.
3472     * wptClipDecryptDlg.cpp (clip_decrypt_dlg): If the ciphertext contains
3473     a signature, also display the time of it. Closes #669780.
3474     * wptKeyImportStatusDlg.cpp (import_status_dlg_proc): Localize 2 strings.
3475     * wptEditKeyOwnertrust.cpp (keyedit_ownertrust_dlg_proc): Fixed a typo.
3476     * wptKeySignDlg.cpp (do_add_local_user): New. Now the dialog has the ability
3477     to choose the signer.
3478     (keysign_dlg_proc): Implemented a feature request. See above.
3479    
3480     2003-01-08 Timo Schulz <[email protected]>
3481    
3482     * 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: Add support for protocols.
3485     (finger_readline): New.
3486     (finger_recvkey): New.
3487     * wptKeyUidDlg.cpp (keyuid_dlg_proc): Add a warning icon to the revoke
3488     message box to show it's a serious decision.
3489     * wptPasswdDlg.cpp (passwd_dlg_proc): Center dialog window.
3490     * wptRegistry.cpp (regist_single_filetype): Now internal and we use
3491     an easier way to get the location of the binary.
3492     (regist_inst_winpt): Implemented the 'with_ext' part and add a registry
3493     entry to avoid double file registering.
3494    
3495     2003-01-07 Timo Schulz <[email protected]>
3496    
3497     * wptKeyManagerDlg.cpp (do_center_window): New. Try to set the window
3498     pos from the coordinates from the registry.
3499     (keymanager_dlg_proc): Store the window pos in the registry.
3500     * wptKeyRevokeDlg.cpp (key_revoke_dlg): Check box for PGP compatible certs.
3501     * wptKeyImportStatusDlg.cpp (import_status_dlg_proc): Print out a hint when
3502     a revcert was found.
3503     * wptKeyserverDlg.cpp (hkp_recv_key): Print an error if the LDAP import does
3504     not succeed.
3505     (keyserver_dlg_proc): Corrected some listview index values.
3506     * wptKeylist.cpp (keylist_add_key): Use primary user-id when possible.
3507    
3508     2002-12-23 Timo Schulz <[email protected]>
3509    
3510     * wptRegistry.cpp (regist_inst_winpt): Try to create \Keyserver
3511     directory if does not exist.
3512     * wptKeyserver.cpp: Simpliefied config file.
3513     (kserver_change_proxy): Write config to the registry. Remove
3514     code for the config file.
3515     * wptProxySettingsDlg.cpp (read_proxy): More robust code.
3516     * wptKeyserverDlg.cpp (keyserver_dlg_proc): Removed the feature
3517     to send keys. The Key Manager is better for this.
3518    
3519    
3520     2002-12-21 Timo Schulz <[email protected]>
3521    
3522     * Fixed some language mistakes.
3523     * wptMainproc.cpp: Use the desktop window as the parent window
3524     for the main dialogs so they are visible in the taskbar.
3525     * wptKeyManagerDlg.cpp: Enable minimize.
3526     * wptFileManager.cpp (fm_parse_command_line): Support for detached
3527     signatures.
3528     (fm_encrypt_directory): New.
3529     * wptKeylist.cpp (keylist_add_key): Check the current key if it
3530     is not expired, not the primary (idx=0).
3531    
3532     2002-12-18 Timo Schulz <[email protected]>
3533    
3534     * wptGPG.cpp (get_gnupg_optfile): Support for gpg.conf instead
3535     of the old name "options".
3536     * WinPT.cpp (WinMain): Try to repair broken home directories
3537     in the registry. Thanks to Gustavo who reminded me of it.
3538     * wptKeyserver.cpp (check_hkp_response): Only copy the text
3539     between <p> and </p> when possible.
3540     * wptAgent.cpp: Re-activated the old code. Now the passphrase
3541     timer can be used.
3542    
3543     2002-12-14 Timo Schulz <[email protected]>
3544    
3545     * wptKeyManager.cpp (km_check_for_seckey): Ultimate doesn't mean
3546     any longer there is also a secret key.
3547     (km_check_photo): New.
3548     (km_complete_status_bar): New.
3549     * wptFileManager.cpp (fm_verify): Support for bad signatures.
3550     Set the sigmode if not set.
3551     * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Output a warning when
3552     the ownertrust of a non-valid (not signed) key is changed.
3553     * wptRegistry.cpp (expand_path): New. Use this code because it's
3554     much shorter.
3555    
3556     2002-10-14 Timo Schulz <[email protected]>
3557    
3558     * wptKeyserver.c: Replaced all strdup's with m_strdup and free
3559     with free_if_alloc.
3560     (ldap_recvkey): Fill with life. We use the GPG plugin to avoid
3561     all the LDAP overhead.
3562    
3563     2002-10-13 Timo Schulz <[email protected]>
3564    
3565     * wptKeyManager.cpp (km_file_import): Alloc buffer, it's not static
3566     any longer.
3567    
3568     2002-10-31 Timo Schulz <[email protected]>
3569    
3570     * wptKeyManager.cpp (km_update_default_key_str): Fixed '0x' handling.
3571     Thanks to Gustavo.
3572     * wptKeylist.cpp (add_key): Now we only use find_secret_key to detect
3573     whether it's a key pair or not.
3574     * Callback struct into KEY so we can modify the values in the background.
3575     * wptKeyPropsDlg.cpp (change_ownertrust): New.
3576    
3577     2002-10-30 Timo Schulz <[email protected]>
3578    
3579     * wptLDAP.cpp, wptLDAP.h: Removed. The plan is to use the gpgkey_xxx.exe
3580     LDAP plugin for this purpose.
3581     * wptMainproc.cpp (winpt_main_proc): Removed all LDAP stubs.
3582     * wldap32.lib is now not longer needed.
3583     * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Copy userid to clipboard.
3584     * Updated the resource file.
3585     * wptFileManager.cpp (fm_parse_command_line): Implemented the stuff
3586     for 'Decrypt', 'Verify', 'Import'.
3587    
3588     2002-10-15 Timo Schulz <[email protected]>
3589    
3590     * Changed all s(n)printf -> msg_box constructs to log_box.
3591    
3592     2002-10-13 Timo Schulz <[email protected]>
3593    
3594     * wptKeylist.cpp (get_key_expire_date): New.
3595     * wptKeyPropsDlg.cpp (key_props_dlg_proc): Use it here.
3596    
3597     * Removed global keycache from GPGME. It's a bad style to mix
3598     general and specific interfaces.
3599    
3600     * wptGPGME.cpp (get_pubkey): New. Used to hide keycache implementation
3601     details. Useful to replace it later.
3602     (get_seckey): Ditto.
3603     (keycache_reload): Moved from the GPGME library.
3604     (keycache_release): New.
3605     (keycache_init): New.
3606     (keycache_set_reload): New.
3607     (keycache_get_reload): New.
3608     (keycache_get_ctx): New.
3609    
3610     * wptSigList.cpp (siglist_add_key): Use the new code.
3611     (siglist_build): Ditto.
3612    
3613    
3614     2002-10-10 Timo Schulz <[email protected]>
3615    
3616     * wptW32API.cpp (get_filename_dlg): Added default filename parameter.
3617     Changed all callers.
3618     * wptKeyManagerDlg.cpp (keymisc_dlg_proc): Adjusted the code for the
3619     new get_filename_dlg.
3620     * wptFileManager.cpp (fm_export): Likewise.
3621     * wptClipDecryptDlg (clip_decrypt_dlg): Modified the verify message box.
3622     * wptKeySignDlg.cpp (keysign_dlg_proc): Changed the code for edit-key.
3623     Use signature class dialog.
3624     * wptKeyRevokeDlg.cpp (key_revoke_dlg_proc): Use the new code and the
3625     keyid instead of the userid to avoid charset problems.
3626     (err_message): New.
3627    
3628     * Moved all wipe specific code (random, rmd160) to the DLL so we can
3629     save some memory for the tray section.
3630    
3631     * wptKeyRevokersDlg.cpp (revokelist_build): New.
3632     (revokelist_init): New.
3633     (key_revokers_dlg_proc): New.
3634    
3635     * wptKeyPropsDlg.cpp (key_props_dlg_proc): Use the designated revoker
3636     code here when available.
3637    
3638     2002-09-25 Timo Schulz <[email protected]>
3639    
3640     * 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     * wptKeyManager.cpp (extract_dash_escaped_key): New. Extract an
3643     OpenPGP key from the clipboard which is dash escaped.
3644     (km_clip_import): Use the new code here.
3645    
3646     2002-09-23 Timo Schulz <[email protected]>
3647    
3648     * wptParser.cpp (add_multi_option): Support for values with more ' 's
3649     and skip the ' ' after the name.
3650     (modify_entry): New.
3651     * wptGPG.cpp (gnupg_save_options): Removed.
3652     (gnupg_load_options): Removed.
3653     (gnupg_release_options): Removed.
3654     * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Use the new code.
3655    
3656     2002-09-17 Timo Schulz <[email protected]>
3657    
3658     * winpt.cpp (WinMain): Use make_filename and no static buffer.
3659     Modified for the new gnupg interface.
3660     * wptFile.cpp (make_filename): New.
3661     * wptGpgCmds.h: New from GPG 1.1.92
3662     * wptGPG.cpp (gnupg_import_keyrings): Use dynamic buffers
3663     and make_filename.
3664     * wptKeygenDlg.cpp (ask_for_backup): Use new gpg code and
3665     make_filename instead of static buffers.
3666     * wptKeyCacheDlg.cpp (keycache_dlg_proc): Likewise.
3667     * wptParser.cpp: Changed to new allocation instead of malloc.
3668     * wptGPGOptSkel.h: Updated from GPG 1.1.92
3669     * wptRegistry.cpp (get_reg_entry): Expand %s like registry strings.
3670    
3671     2002-09-13 Timo Schulz <[email protected]>
3672    
3673     * wptKeyManager.cpp (km_show_photo): Use a const buffer for the
3674     image and do NOT free it.
3675     * wptKeyUidDlg.cpp (keyuid_dlg_proc): Implement "revoke" function.
3676     (find_user_id): Use keyid to find the key. Changed all callers.
3677    
3678     * Removed global gpg_version variable. Now we also support GPG 1.1.9x
3679     so we don't need to check this after the start again.
3680    
3681     2002-09-12 Timo Schulz <[email protected]>
3682    
3683     * wptPasswdDlg.cpp (passwd_dlg_proc): Implement the "Hide Typing" fature.
3684     * wptKeyManagerDlg.cpp (keymisc_dlg_proc): Off by one bug for secret
3685     key export.
3686     * wptKeyManager.cpp (fm_encrypt): Use the new GPG status messages to
3687     check if the encryption failed.
3688     (km_show_photo): Fixed offset calculation.
3689     Use keyid as filename and delete the tempfile after use.
3690     * wptFile.cpp (init_file_lock): Use dynamic buffer.
3691     (release_file_lock): Free this buffer.
3692     * wptFileManager.cpp (quote_filename): Removed.
3693     (quote_file): New. Use dynamic buffers.
3694     (fm_import, fm_decrypt, fm_encrypt, fm_sym_encrypt, fm_export):
3695     Use it here.
3696     * wptFileStatDlg.cpp (do_list_packets): Do not cache FD.
3697     Initalize packet at the begin and during the loop.
3698     * wptFileManager.cpp: Replaced all static memory handling with
3699     dynamic routines.
3700     * wptKeyCacheDlg.cpp (key_cache_dlg): Remove obsolete ownertrust
3701     functions.
3702     * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Ditto.
3703    
3704     2002-09-10 Timo Schulz <[email protected]>
3705    
3706     * wptFileManager.cpp (fm_get_file_type): Disable FD cache.
3707     (fm_decrypt): Only cut off the extension if it belong to GPG.
3708     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    
3711     2002-09-09 Timo Schulz <[email protected]>
3712    
3713     * wptKeyManagerDlg.cpp (keymisc_dlg_proc): Improved code for
3714     the privat key (export).
3715    
3716     2002-09-08 Timo Schulz <[email protected]>
3717    
3718     * wptKeygenDlg.cpp (ask_for_backup): Check if the copy process
3719     really succeeded.
3720     (mbox): Alias for msg_box with fixed title to avoid long lines.
3721     * wptKeyEditAddSubkeyDlg.cpp (keyedit_addsubkey_dlg_proc): Allow
3722     to generate keys with a length til 4096 bits.
3723     * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): Check for
3724     invalid recipients and print out the reasons.
3725     * wptKeylist.cpp (keylist_add_to_recipients): Improved error message
3726     and corrected the validity checking.
3727    
3728     2002-09-07 Timo Schulz <[email protected]>
3729    
3730     * wptClipVerifyDlg.cpp (clip_verify_dlg_proc):
3731     Print notation data when available.
3732     Show if the signature is expired or not.
3733    
3734     * wptKeyManagerDlg.cpp (keymisc_dlg_proc): Added the show photo
3735     command to the context menu.
3736    
3737     * 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     security to protect against the most enemies ;-).
3740    
3741     2002-09-04 Timo Schulz <[email protected]>
3742    
3743     * wptKeyManager.cpp (km_check_key_status): Parse new fields.
3744    
3745     2002-09-03 Timo Schulz <[email protected]>
3746    
3747     Removed all OpenCDK code from PTD. The code is not tested very
3748     well and it might contain some errors. Now we used a stripped down
3749     version of GnuPG code. This has two advantages. First the code is
3750     stable and second we can easier port other parts to native GPG code.
3751    
3752     * wptFileManager.cpp (fm_get_file_type): Use native GPG code.
3753     * wptKeyCacheDlg.cpp (keycache_dlg_proc): Add photos from the
3754     keyring when present to the keycache.
3755     * wptKeyManager.cpp (km_show_photo): Fixes to work again with the
3756     modified code.
3757     (km_check_for_seckey): Check substrings of the value because we
3758     don't use '**' values any longer.
3759     * wptFileStat.cpp (do_list_packets): New. Adapted from the old code.
3760     (file_stat_dlg_proc): Uses the new code.
3761    
3762     2002-09-02 Timo Schulz <[email protected]>
3763    
3764     * wptKeyManager.cpp (km_privkey_export): Check return codes and
3765     some types has been changed.
3766     (km_file_export): Likewise.
3767    
3768     2002-09-01 Timo Schulz <[email protected]>
3769    
3770     * wptFirstRunDlg.cpp (get_setup_choice): New. Returns the choice
3771     of the dialog.
3772     * WinPT.cpp (WinMain): Use it here. Reworded the error message.
3773     * wptGPG.cpp (gpg_import_keyrings): New.
3774     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     * wptKeyManager.cpp (km_delete_keys): New delete confirmation messages.
3777     * wptSigClassDlg.cpp (sig_class_dlg_proc): New.
3778     (get_sig_class_choice): New.
3779     * wptKeySignDlg.cpp (get_printable_fpr): New. More human readable
3780     fingerprint.
3781     (keysign_dlg_proc): Added new value for the GPG callback to handle
3782     the signature class.
3783     * wptKeyUIDDlg.cpp (find_user_id): New. Find the index of the
3784     userID by calling edit-key with colons.
3785     (keyuid_dlg_proc): Use it here.
3786    
3787     2002-08-31 Timo Schulz <[email protected]>
3788    
3789     * wptGPG.cpp (gpg_check_homedir): Some fixes for the return codes.
3790     (check_homedir): Ask the user whether to create the directory.
3791     * wptKeysigDlg.cpp (keysig_dlg_proc): Fixed keyid. Now it works
3792     to retrieve missing keys from a HKP server.
3793     (recv_missing_keys): Likewise.
3794     * wptPassphraseCB.cpp (passphrase_callback_proc):
3795     Implemented the "Hide Typing" feature.
3796     (hide_typing): New.
3797     * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Improved error messages.
3798     * wptClipDecryptDlg.cpp (clip_decrypt_dlg): Improved MDC handling.
3799     Due to some attacks a MDC error is treated as a fatal error and a
3800     possible security risk.
3801     * wptClipImportDlg.cpp (print_import_status): Use a dialog instead
3802     of a silly message box. Furthermore the user gets more information
3803     about the import procedure.
3804     * wptKeyImportStatusDlg.cpp (import_status_dlg_proc): New.
3805     * wptFileManager.cpp (fm_import): Report invalid user ID's.
3806     (fm_verify): Try to guess the data name for detached signatures
3807     before we bother the user. When it's found, use it.
3808     * wptKeyManager.cpp (km_file_import): Ditto.
3809    
3810     2002-08-28 Timo Schulz <[email protected]>
3811    
3812     * wptClipboard.cpp (clip_parse_pgp_id): Support for PGP 2.6.x types.
3813     * wptFileMananger.cpp (fm_check_armor_type): Ditto.
3814    
3815    
3816     2002-08-26 Timo Schulz <[email protected]>
3817    
3818     * wptTypes.h (free_if_alloc, CHECK_BOUND): New.
3819     * wptClipEditDlg.cpp (gpgopt_dlg_proc): Use free_if_alloc to make sure
3820     the memory is really released. Some strict checks for return values.
3821     Ident file.
3822    
3823     * wptAboutDlg.cpp: Ditto. (ident)
3824     * wptGPGAboutDlg.cpp: Ditto.
3825     * wptClipDecryptDlg.cpp: Ditto.
3826     (clip_decrypt_dlg): Stricter return value checkings.
3827     Avoid one indent level.
3828    
3829     * wptImportList.cpp (implist_add_key): More strict return value
3830     checking.
3831     * wptKeylist.cpp (keylist_cmp_cb): Fixed a typo.
3832     (add_key): New key status system.
3833     (keylist_get_keyflags): New.
3834     (keylist_enum_recipients): Simplified and use the new key flags.
3835    
3836     * wptSiglist.cpp (siglist_add_key): Fix possible overflows.
3837     (verlist_add_sig_log): More stricter checks.
3838    
3839     * wptRegistry.cpp (get_reg_winpt_prefs): Fixed possible bug.
3840    
3841     2002-06-16 Timo Schulz <[email protected]>
3842    
3843     Don't put the questions in the message box title bar.
3844    
3845     * wptGPGPrefsDlg.cpp (gpg_prefs_dlg_proc): Only close FP if it
3846     is really opened. Thanks to Nelson.
3847    
3848     * wptKeyProps.cpp (keyprops_dlg_proc): Use a more informative title
3849     for chaning the passphrase. Suggested by Ed.
3850    
3851     2002-06-07 Timo Schulz <[email protected]>
3852    
3853     * wptMainProc.cpp (winpt_main_proc): Support for sign & encrypt hotkeys.
3854     * wptKeyManagerDlg.cpp: Refresh keys was added in the menu.
3855     * wptListView.cpp (listview_select_all): New.
3856     * wptClipSignDlg.cpp (clip_sign_dlg_proc): Fixed the return code.
3857    
3858     2002-05-31 Timo Schulz <[email protected]>
3859    
3860     * wptTrayPop.cpp: Revamped some parts of the code.
3861    
3862     Changed all status_box functions to show_msg. The advantage
3863     is that we only wait a fixed time and the user doesn't need
3864     to hit the OK key. We should add the time delay in the preferences.
3865    
3866     * wptKeyManager.cpp (km_show_photo): New.
3867    
3868     2002-05-30 Timo Schulz <[email protected]>
3869    
3870     * wptFileManager.cpp (fm_verify): Corrected the handling
3871     for detached RSA signatures.
3872     (fm_add_sig_stat): Added support for short fingerprints.
3873    
3874     2002-05-08 Timo Schulz <[email protected]>
3875    
3876     * wptKeyserver.cpp (kserver_change_proxy): Check the values.
3877     Thanks to njek for reporting it.
3878    
3879     2002-05-07 Timo Schulz <[email protected]>
3880    
3881     * wptGPG.cpp (check_gpg_engine): New.
3882    
3883     * wptKeyCacheDlg.cpp (keycache_dlg_proc): Add GPG 1.0.6 compatible
3884     routines.
3885    
3886     * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Ditto.
3887    
3888     * wptKeyEditOwnertrustDlg.cpp (keyedit_owerntrust_dlg_proc): Ditto.
3889    
3890     2002-05-06 Timo Schulz <[email protected]>
3891    
3892     * wptClipEditDlg.cpp (clip_edit_dlg_proc): Change the wording of
3893     the buttons.
3894    
3895     2002-05-05 Timo Schulz <[email protected]>
3896    
3897     * Fixed problem with rev certs for imports stats.
3898    
3899     * Cosmetical changes for the GPGME libraray.
3900    
3901     2002-05-01 Timo Schulz <[email protected]>
3902    
3903     * wptKeygenDlg.cpp (fill_keytype_box): New.
3904     (keygen_dlg_proc): Use a combo box for various key types. With GPG 1.0.7
3905     there is full RSA support.
3906    
3907     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    
3910     * wptKeysignDlg.cpp (keysign_dlg_proc): Before we sign a key, we make
3911     sure it was not already signed (ALREADY_SIGNED).
3912    
3913     * wptKeyManagerDlg.cpp (keymisc_dlg_proc): Due to the new trust system,
3914     now we also support to sign ultimate trusted keys.
3915    
3916     * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Try to check if the button
3917     is checked and do not check it.
3918    
3919     * wptClipDecryptDlg.cpp (clip_decrypt_dlg_proc): New format for the verify
3920     box and now we also support the date of the signature.
3921    
3922     Applied Rich's spelling and grammer mistakes.
3923     Fixed a lot of minor spelling mistakes and capital letters for dialogs.
3924    
3925     2002-04-30 Timo Schulz <[email protected]>
3926    
3927     Merge ownertrust handling into the keycache. Now GPG outputs the
3928     ownertrust in the key listing which means we can get the ownertrust
3929     value from the keycache.
3930    
3931     (keymisc_dlg_proc): Add a button to rebuild the sig database cache.
3932     Please not that this is not the same as the key cache! The key cache
3933     will be updated when a new key was imported or a subkey was added/changed.
3934     The signature cache only affects the validity of the keys.
3935    
3936     Removed the MyGPGME trustlist code. Now we can use the field in the key
3937     listing to determine the ownertrust (which makes things a lot of easier).
3938    
3939     2002-04-29 Timo Schulz <[email protected]>
3940    
3941     Adjustments for GPG 1.0.7
3942    
3943     * wptKeyEditDlg.cpp (keyedit_ownertrust_dlg_proc): Support ultimate trust
3944     and ask the user if he knows what he's doing.
3945     * wptKeyManager.cpp
3946     (keylist_subclass_proc): Use double click to open the props.
3947     * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Allow the user even to modify a
3948     ultimate ownertrust value.
3949     * wptKeyEditAddSubkeyDlg.cpp (keyedit_addsubkey_dlg_proc): Support for
3950     new RSA keys.
3951    
3952     2002-04-28 Timo Schulz <[email protected]>
3953    
3954     * wptRegistry.cpp (get_reg_winpt_prefs): New option for keylist mode.
3955     (set_reg_winpt_prefs): Ditto.
3956     * wptPreferencesDlg.cpp (prefs_dlg_proc): Support for keylist mode option.
3957     (set_keylist_mode): New.
3958    
3959     Implement minimal keylist mode. Suggested by Fabian.
3960    
3961     * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): Implement it here.
3962     * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Ditto.
3963     * wptKeylist.cpp (keylist_add_key): Ditto.
3964     (keylist_load): Ditto.
3965     (keylist_build): Ditto.
3966    
3967     2002-04-27 Timo Schulz <[email protected]>
3968    
3969     * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Support for the new dialog.
3970     * wptFileSaveDlg.cpp (file_save_dlg_proc): New.
3971     * wptClipboard.cpp (clip_parse_pgp_id): use logical OR to concat the values.
3972     * wptMainProc.cpp (clip_gpg_dlg): Use the new PGP id's.
3973     (currwnd_gpg_dlg): Ditto.
3974    
3975     Now it's possible to parse cleartext signatures which contains an
3976     encrypted message inside the body.
3977    
3978     * wptTextInputDlg.cpp (load_file_contents): New.
3979     (text_input_dlg_proc): Support for choosing the data file.
3980    
3981     * wptFileManager.cpp (fm_verify): Support for detached signatures.
3982     (fm_parse_files): Ditto.
3983    
3984    
3985     2002-04-26 Timo Schulz <[email protected]>
3986    
3987     * wptKeyUidDlg.cpp: Fixed a typo. Kudos to Dugan Chen.
3988     * wptKeyUidDlg.cpp: Ditto.
3989    
3990     2002-04-25 Timo Schulz <[email protected]>
3991    
3992     * wptImplist.cpp (implist_add_key): Catch possible segfault.
3993     * wptVerifyList.cpp (verlist_add_sig): Ditto.
3994     * wptKeyManager.cpp (km_check_for_seckey): Modified for GPG 1.0.7.
3995     * wptKeylist.cpp (find_secret_key): New.
3996     (add_key): Use it here.
3997     (keylist_add_key): And here.
3998    
3999     * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Fixed a bug that prevent
4000     to fetch the key.
4001    
4002     2002-04-24 Timo Schulz <[email protected]>
4003    
4004     * wptKeyManagerDlg.cpp (key_misc_dlg_proc): Support to maximize windows.
4005    
4006     Changed the way to modify the "Version:" string.
4007    
4008     * wptKeyserver.cpp (add_node): New.
4009     (kserver_change_proxy): New.
4010     (kserver_read_config): New.
4011     (kserver_write_config): New.
4012     (kserver_cfgfile_release): New.
4013     (proxy_release): New.
4014    
4015     * wptProxySettingsDlg.cpp (read_proxy): New.
4016     * wptFileStatDlg.cpp (file_stat_dlg_proc): New.
4017     * wptFileManager.cpp (fm_list): New.
4018     (fm_parse_files): Support the new list command.
4019    
4020     2002-04-23 Timo Schulz <[email protected]>
4021    
4022     * wptRFC2440.cpp: Removed. We now use the OpenCDK package.
4023     * wptFileManager.cpp (fm_get_file_type): Removed the old RFC2440 code.
4024     (fm_encrypt): Modified code to allow sign & encrypt.
4025     (fm_parse_file): Ditto.
4026     (fm_decrypt): Support for checking signatures.
4027     * wptFileManagerDlg.cpp (file_manager_dlg_proc): Ditto.
4028    
4029     2002-04-19 Timo Schulz <[email protected]>
4030    
4031     * wptImplist.cpp (implist_load): Support for the advanced PGP parser code.
4032    
4033     2002-04-05 Timo Schulz <[email protected]>
4034    
4035     * wptSigList.cpp (siglist_add_key): Added UTF8 support. Thanks to Scire.
4036     * wptKeyUidDlg.cpp (keyuid_dlg_proc): Ditto.
4037     * wptKeySignDlg.cpp (keysign_dlg_proc): Ditto.
4038     * wptKeyAddUidDlg.cpp (keyedit_adduid_dlg_proc): Ditto.
4039    
4040     2002-03-31 Timo Schulz <[email protected]>
4041    
4042     * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Ask if the user wants to
4043     select the key used for signing.
4044     * wptSeclistDlg.cpp (seclist_dlg_proc): New. Dialog for secret selecting.
4045     * wptFilePrefsDlg.cpp (file_prefs_dlg): Fixes for the combo box ;-).
4046     * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Reload the keycache after
4047     fetching keys via HKP and try to update the Gpgmekey inside.
4048     * wptVerifyList.cpp (verlist_add_sig): Check if the key context was
4049     set inside the signature. Fixes some segfaults related to the HKP key
4050     fetching during verification. Thanks to Julian. And force to use UTF8
4051     for user ID's.
4052     * wptClipSignDlg.cpp (one_key_proc): If only one secret exists,
4053     prevent that the dialog is loaded and ask for the passphrase directly.
4054    
4055    
4056     2002-03-29 Timo Schulz <[email protected]>
4057    
4058     * wptGPG.cpp (create_groupdb): Only close the file handling if it
4059     really exists. Thanks to Mark.
4060     (gpg_check_homedir): Applied the patch. Now we're a little stricter
4061     about the homedir checks.
4062     (check_homedir): Fixed a possible memory leak.
4063     * WinPT.cpp (WinMain): Check the homedir functions to exit the program
4064     if we've found some problems.
4065     * wptErrors.cpp (winpt_strerror): New value if a directory could not
4066     created.
4067     * wptMainProc (winpt_main_proc): Use new code for the current window mode.
4068     * wptCurrWnd.cpp (get_curr_wnd): Ditto.
4069     (get_window_contents): Always set focus to the current window.
4070    
4071     2002-03-22 Timo Schulz <[email protected]>
4072    
4073     * wptMainProc.cpp (currwnd_gpg_dlg): If the viewer is used, doesn't
4074     set window contents for some commands.
4075     (winpt_main_proc): Use the code here.
4076     * wptKeygenDlg.cpp (keygen_dlg_proc): Allow to generate keys > 2048 bits.
4077     * wptProxySettingsDlg.cpp: (keyserver_proxy_dlg_proc): New.
4078     * wptKeyserverDlg.cpp (keyserver_dlg_proc): Use the proxy dialog here.
4079     * wptKeyserver.cpp (kserver_load_conf): Fixed malformed strings.
4080    
4081     2002-03-02 Timo Schulz <[email protected]>
4082    
4083     * Use capital letters in the main menus and applied Patricks spelling
4084     corrections.
4085    
4086     * wptClipDecryptDlg.cpp (clip_decrypt_dlg): keyID is a string
4087     not an integer. Thanks to scrumpy.
4088     * wptWipeFile.cpp (rename_unlink): Use '\' instead of '/'.
4089     (overwrite): Some bugfixes to set the pointer to the begin of the file.
4090     * wptVerlist.cpp (verlist_build): New keyID column.
4091     (verlist_add_sig): Use it here.
4092    
4093     2002-03-01 Timo Schulz <[email protected]>
4094    
4095     * wptWipeFile: Replaced all low level I/O functions with W32 API
4096     functions. And support for more wiping modes. I don't know to
4097     support all, but those makes sense for me:
4098     1. Simple (2 random passes)
4099     2. DoD (as described in the standard)
4100     3. Peter Gutmanns method (from the paper)
4101    
4102    
4103     2002-02-28 Timo Schulz <[email protected]>
4104    
4105     * wptImplist.cpp (implist_add_key): UTF8 support.
4106     Handle invalid userID's.
4107     * wptPassphraseCB.cpp (parse_gpg_description): UTF8 support.
4108     (passphrase_callback_proc): Ditto.
4109    
4110    
4111     2002-02-23 Timo Schulz <[email protected]>
4112    
4113     * wptListview.cpp (listview_del_items): New.
4114     * wptKeyManager.cpp (km_delete_keys): Use it here.
4115     * wptKeygenDlg.cpp (keygen_dlg_proc): UTF8 support.
4116     * wptKeylist.cpp (add_key): UTF8 support.
4117    
4118     2002-02-08 Timo Schulz <[email protected]>
4119    
4120     * wptNLS.c: Now it's C-source because GPGME needs gettext too.
4121     (stpcpy): Makes it static.
4122     * errors.c: localize all error strings.
4123     * WinPT.cpp (get_gettext_lang): Move the code in this file because
4124     we can't use it in plain C.
4125    
4126     2002-02-05 Timo Schulz <[email protected]>
4127    
4128     * wptGPG.cpp (gpg_save_options): Catch the case when the options file
4129     exist but it has a length of zero.
4130     (gpg_display_error): Print out the data from the GPG stderr
4131     (when available).
4132     * w32-util.c (_gpgme_get_gpg_optfile): Check if the file exists and if
4133     not, return NULL.
4134     * wptKeyManagerDlg.cpp (keymisc_dlg_proc): Add support to export secret
4135     keys.
4136    
4137     * Fixed a lot of memory allocation all over the place.
4138    
4139     2002-02-05 Timo Schulz <[email protected]>
4140    
4141     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     (get_gpg_default): First search for "default-key" then for "encrypt-to".
4144    
4145     2002-02-04 Timo Schulz <[email protected]>
4146    
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    

Properties

Name Value
svn:eol-style native

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26