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

Annotation of /trunk/Src/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log


Revision 8 - (hide annotations)
Mon Apr 4 13:29:25 2005 UTC (19 years, 10 months ago) by twoaday
File size: 159394 byte(s)
2005-04-04  Timo Schulz  <twoaday@freakmail.de>
 
        * WinPT.cpp (check_crypto_engine): Correct version
        check. Noted by Werner.


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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26