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

Annotation of /trunk/Src/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log


Revision 428 - (hide annotations)
Sat Apr 7 11:55:16 2012 UTC (12 years, 10 months ago) by twoaday
File size: 242938 byte(s)


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

Properties

Name Value
svn:eol-style native

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26