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

Annotation of /trunk/Src/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log


Revision 427 - (hide annotations)
Sat Apr 7 11:50:43 2012 UTC (12 years, 10 months ago) by twoaday
File size: 242795 byte(s)
2012-04-07  Timo Schulz  <twoaday@gmx.net>

        * wptFileManager.cpp (fm_add_dir_files): Limited scope of
	local vars.
	* wptImageList.cpp (km_imagelist_load): Use
	ICON16 and a larger icon size.
	

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

Properties

Name Value
svn:eol-style native

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26