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

Annotation of /trunk/Src/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log


Revision 181 - (hide annotations)
Tue Mar 14 11:01:22 2006 UTC (18 years, 11 months ago) by twoaday
File size: 206993 byte(s)
2006-03-12  Timo Schulz  <ts@g10code.de>
 
        * wptGPG.cpp (gnupg_load_config): Search for 'ask-cert-expire'.
        * wptKeyPropsDlg.cpp (display_key_info): Automatically update
        sym algorithm preferences if needed.
        * wptKeysignDlg.cpp (date_is_today): New.
        (keysign_dlg_proc): Only allow to set cert expire date if
        the option was found.
        * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Allow to set
        'ask-cert-expire'.
         


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

Properties

Name Value
svn:eol-style native

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26