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

Annotation of /trunk/Src/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log


Revision 273 - (hide annotations)
Fri Dec 8 10:22:17 2006 UTC (18 years, 2 months ago) by twoaday
File size: 235678 byte(s)


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

Properties

Name Value
svn:eol-style native

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26