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

Annotation of /trunk/Src/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log


Revision 88 - (hide annotations)
Mon Nov 21 12:06:59 2005 UTC (19 years, 3 months ago) by twoaday
File size: 179748 byte(s)
2005-11-21  Timo Schulz  <ts@g10code.com>
 
        * WinPT.cpp (WinMain): Implement --stop switch.
        * wptClipEditDlg.cpp (clip_edit_dlg_proc): Localize
        missing string.
        * wptPreferencesDlg.cpp (prefs_dlg_proc): Likewise.
        * wptKeygenDlg.cpp (keygen_dlg_proc): Verify valid context
        first. Thanks to Ralf.
        * wptFileManagerDlg.cpp (update_ui_items): New.
        * wptFileManager.cpp (fm_set_status): New sigmode param.
        Changed all callers.


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

Properties

Name Value
svn:eol-style native

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26