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

Annotation of /trunk/Src/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log


Revision 99 - (hide annotations)
Fri Nov 25 07:47:51 2005 UTC (19 years, 3 months ago) by twoaday
File size: 180339 byte(s)
Updated translation.


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

Properties

Name Value
svn:eol-style native

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26