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

Diff of /trunk/Src/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 27 by twoaday, Tue Oct 18 07:57:13 2005 UTC revision 291 by twoaday, Mon Mar 12 20:33:51 2007 UTC
# Line 1  Line 1 
1  2005-10-17  Timo Schulz  <[email protected]>  2007-03-12  Timo Schulz  <[email protected]>
2            
3          Free all memory returned by the GPGME dll with gpgme_free ().          * wptVerifyList.cpp (extract_filename): Simplified.
4    
5          s/GPG_ERR_CARD_REMOVED/GPG_ERR_CARD_NOT_PRESENT.  2007-03-10  Timo Schulz  <[email protected]>
6    
7          * wptKeyEdit.cpp (getCardStatus): Remove dummy key.          * wptKeyserver.cpp (kserver_recvkey): Use StringBuffer to
8          (list_handler): With user interaction to allow to insert          avoid possible allocation problems.
9          the card into the reader.          (kserver_seararch_begin): Likewise.
10          * wptKeyEditCB.cpp (gpg_edit_card): Likewise.          (parse_pub_record): Double check fpr to key ID problem.
11          (common_card_handler): Fixed incorrect command string.          Noted by Mike Culbertson.
12          * wptKeyPropsDlg.cpp (get_card_type): New.  
13          (keyprops_dlg_proc): Show card information if present.  2007-03-09  Timo Schulz  <[email protected]>
14          * wptFileManager.cpp (secret_key_available): Make the code faster.  
15            * wptClipImportDlg.cpp (print_import_status): Use the fingerprint
16  2005-10-16  Timo Schulz  <[email protected]>          instead of the key ID to avoid problems with v3 keys.
17            * wptClipDecryptDlg.cpp (verify_get_clip_info): Use key ID
18          * wptPassphraseCB.cpp (passphrase_cb): Fix problem          in case of v3 keys. Noted by Raphael
19          with hanging GPG process on cancel.          (verify_show_signature_state): Likewise.
20          * keycache.c (gpg_keycache_release): Release all objects.          * wptVerifyList.cpp (verlist_add_sig_log): Likewise.
21            (verlist_add_sig): Likewise.
22  2005-10-15  Timo Schulz  <[email protected]>            
23    2006-12-30  Timo Schulz  <[email protected]>
24          * wptCardEdit.cpp (setResult, getResult): New.  
25          (reset): New.          * StringBuffer.cpp (StringBuffer): New.
26          (getCardStatus): Check return codes and release all objects          * wptPassphraseDlg.cpp (set_passphrase_hint): Replace error prone
27          in case of errors.          sprintf code with the new string buffer implementation.
28          * wptCardEditCB.cpp (change_pin_handler): Call reset()          * wptPassphraseCB.cpp (passphrase_callback_proc): Likewise.
29          before quit.  
30          (editcard_handler): Likewise.  2006-12-28  Timo Schulz  <[email protected]>
31          (common_card_handler): New.  
32          * wptCardDlg.cpp (card_changepin_dlg_proc): Also unmask          * wptKeylist.cpp (get_key_desc): Avoid possible overflow.
33          the old PIN when 'Hide Typing' is disabled.          * wptW32API.cpp (get_locale_time): New.
34          * wptPassphraseCB.cpp (passphrase_cb): The card detection          (get_locale_timedate): New.
35          works again. Support to re-enter passphrase.          * wptVerifyList.cpp (strtimestamp): Deleted. Changed all
36            callers to get_locale_timedate.
37  2005-10-14  Timo Schulz  <[email protected]>          * wptMainProc.cpp (winpt_main_proc): Cleanup gettext resources.
38            * wptNLS.cpp (gettext_free_current_domain): New.
39          * wptCardDlg.cpp (card_status): New fields for the          (gettext_set_file): Removed all '/' code.
40          fingerprint creation time. Display card info as title.          * wptPassphraseCb.cpp (passphrase_callback_proc): Make sprintf
41          (get_printable_version): New.          code more robust.
42          * wptCardEditCB.cpp (editcard_handler): Fix problem  
43          with the counter comparison.  2006-12-21  Timo Schulz  <[email protected]>
44    
45  2005-10-11  Timo Schulz  <[email protected]>          * wptCryptDisk.cpp, wptCryptDiskSrv.cpp: Deleted.
46            The Code will be possibly used in a separate project.
47          Port to GPGME basically finished.  
48    2006-12-05  Timo Schulz  <[email protected]>
49  2005-09-20  Timo Schulz  <[email protected]>  
50            * wptClipDecryptDlg.cpp (verify_get_clip_info): If
51          * wptFileManagerDlg.cpp (file_secdel_confirm_dlg_proc):          there is no pubkey available, issue a hint and not BUG.
52          Do not use gpgme_recipients_t but the listview directly          
53          to add the selected files.  2006-12-02  Timo Schulz  <[email protected]>
54    
55  2005-09-07  Timo Schulz  <[email protected]>          * WinPT-en.rc: Remove wipe free space menu item.
56            * wptRegistry.cpp (get_reg_winpt_prefs): Remove wipemode.
57          * Make sure all GetOpenFileName filters are terminated by \0\0.          * wptFileManageRDlg.cpp (file_secdel_confirm_dlg_proc):
58            Allow to set the passes here.
59  2005-09-01  Timo Schulz  <[email protected]>          * wptFileManager.cpp (fm_encrypt): change all callers
60            for the wipe functions.
61          * wptW32API.cpp (center_window): New argument for parent window.          * wptListview.cpp (listview_sort_items): Extract code
62          Change all callers.          to change the column image.
63          (center_window2): Likewise.          * wptKeylist.cpp (key_get_image_id): New.
64          * GPGME now can read gpgProgram entries with 'REG_EXPAND_SZ'.          (keylist_build): Change return type and all callers.
65          * wptGPG.cpp (gnupg_backup_options): Remove param. One backup          * wptGPG.cpp (gnupg_load_config): Kludge to detect
66          file is enough. Changed all callers.          the 'textmode' option.
67            * wptPassCache.cpp (wipe_data): replaced with wipememory().    
68  2005-08-15  Timo Schulz  <[email protected]>  
69    2006-11-12  Timo Schulz  <[email protected]>
70          * wptKeyEditDlgs.cpp (do_editkey_showpref): Take care of v3 keys.  
71          * wptGPGOptDlg.cpp (gpgopt_dlg_proc): Fixed name of title.          * wptGPG.cpp (check_gnupg_options): Fix sizeof != DIM problem.
72          * Make sure the passphrase is always overwritten before it is          * wptGPGOptDlg.cpp (gpg_opt_dlg_proc): Better checks to
73          freed (or the function returns).          avoid invalid gpg.conf entries.
74          * wptKeyPropDlg.cpp (get_pref_cipher): New.          Thanks to Ralf Latz.
75          (keyprops_dlg_proc): Use it here.          
76    2006-11-04  Timo Schulz  <[email protected]>
77  2005-08-06  Timo Schulz  <[email protected]>  
78            * wptW32API.cpp (set_clip_text2): Make sure enough memory
79          * wptGPGME.cpp (keycache_update): Reload OpenPGP parts          will be allocated.
80          of the secret key.          * wptFileManagerDlg.cpp (file_manager_dlg_proc): Delete list
81          (keycache_init): cache name of secret keyring.          view entries for none existing files.
82          * wptKeyList.cpp (keylist_upd_key): Do not add long keyid.          * wptKeySignDlg.cpp (keysign_dlg_proc): Simplified.
83          (get_key_type): Do not assume 'ultimate' means key pair.          * wptClipboard.cpp (gpg_data_change_version): Be more liberal.
84          * wptKeyEditDlgs.cpp (diff_time): New.          * wptKeyserver.cpp (parse_pub_record): Convert FPR entries
85          (keyedit_addsubkey_dlg_proc): Changed design and use          into KEYID entries.
86          diff_time. Drop checks for invalid keylength (< 1024, > 4096)          * wptGPG.cpp (gnupg_backup_keyrings): Release memory in case
87          because the combo box automatically handles this.          of errors.
88          * wptKeyManager.cpp (km_set_implicit_trust): Return error code.          (get_backup_name): Use constant formant spec.
89          * wptGPG.cpp (get_backup_name): New.          (extract_keyid): Simplified.
90          (gnupg_backup_keyrings): Rotate backup names, from 0..3.          * wptKeyserver.cpp (kserver_connect): Return proxy error if
91          * wptClipImportDialog.cpp (clip_import_dlg_proc): Free memory.          approriate.
92          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Use 0x short keyid and          * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Correct memory
93          not the long keyid.          handling to avoid possible segfaults.
94            (fetch_key_from_keyserver): Real error handling.
95  2005-08-05  Timo Schulz  <[email protected]>          * wptFileManager.cpp (fm_gpg_verify): New.
96            (fm_verify): Support to fetch key here to avoid problems later.
97          * wptListView.cpp (listview_set_item2): New.          * wptFileCBS.cpp (file_data_rewind): New.
98          * wptKeyManager.cpp (km_check_if_protected): Directly          
99          retrieve gpgme_key_t from the list.          
100          (km_check_key_status): Likewise.          2006-10-27  Timo Schulz  <[email protected]>
101          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Also use  
102          a human-readable name for secret key export.          * wptGPG.cpp (get_backup_name): Make sure enough memory
103          Reload just the keys which were affected by updates          will be allocated.
104          (edit-key).          (gnupg_backup_keyrings): Release memory in case of errors.
105          (update_key): New.          
106          * wptKeyList.cpp ((keylist_upd_key): Stripped down  2006-10-21  Timo Schulz  <[email protected]>
107          version of keylist_add_key.  
108          * wptKeyEditDlgs.cpp (keyedit_main_dlg_proc): Do not          * wptKeyserver.cpp (get_reg_proxy_prefs): Load the protocol
109          reload the keycache here, just flag 'update'. Give the          and store it.
110          control to the calling dialog.          * wptKeyCache.cpp (parse_attr_data): Avoid zombie temp files.
111          * wptKeySignDlg.cpp (keysign_dlg_proc): Use winpt_key_t          
112          as parameter. Changed all callers.  2006-10-04  Timo Schulz  <[email protected]>
113          Add date of expiration to the key info.  
114          (get_expire_date): New.          * wptFileManager.cpp (fm_check_armor_type): Remove space in
115          Use a checkbox to allow to ask for the cert level.          search pattern string.
116          * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): Do no reload          (fm_check_for_entry): Case insentensive search.
117          the cache.          (fm_add_dir_files): Use W32 API directly.
118            * wptVerifyList.cpp (verlist_add_sig_log): Use proper icon.
119  2005-08-04  Timo Schulz  <[email protected]>          * wptGPGUtil.cpp (get_gpg_version): Cleanups.
120            
121          * wptListView.cpp (listview_scroll): New.  2006-08-30  Timo Schulz  <[email protected]>
122          (listview_get_item2): New.  
123          * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): If the          * wptRegistry.cpp (get_reg_entry): Do not use static buffers.
124          item was found, make it visible with scrolling.          * wptKeyserverDlg.cpp (add_pattern_to_combox): New.
125          * wptKeyManager.cpp (km_find_key): New.          (save_pattern_from_combox): New.
126          (keylist_subclass_proc): Support to handle some acceleators.          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Solve icon problem.
127          Strg+{C, P, F, A}.          * wptGPGMEWrapper.c (importFromBuffer): New.
128          (km_get_key_status): Get the gpgme_key_t object directly          * WinPT.cpp (check_crypto_engine): Only enable PC/SC when the
129          from the list.          system really has smart card services enabled.
130          * wptGPGPRefsDlg.cpp (gpgprefs_dlg_proc): Also try to set          * wptKeyManger.cpp (km_http_import): Stricter error checking.
131          the config file (if it exists).          * wptFileManager.cpp (fm_send_file): Use at least MAX_PATH
132          * wptKeySignDlg.cpp (keysign_dlg_proc): Use easier code          for the file name.
133          to handle the click->activate situation.          
134          * wptPassphraseCB.cpp (passphrase_callback_proc): Likewise.  2006-08-24  Timo Schulz  <[email protected]>
135          Support to check the passphrase quality.  
136          * wptPassphraseDlg.cpp (passwd_dlg_proc): Likewise.          * wptHTTP.cpp (extraHostInfo): Handle case when no doc were given.
137          (request_passphrase): Rename 'init' to 'flags' to allow more          (get): Better error handling.
138          options.          (head): Likewise.
139          * wptMAPI.cpp: Check all *alloc results.          * wptGPGME.cpp (sigsum_to_index): Just map the index without
140          * wptKeyGenDlg.cpp (keygen_dlg_proc): Use a rudimentary          any checks.
141          passphrase quality check.          * wptCommonDlg.cpp (check_URL): Be more strict.
142          * wptMDSumDlg.cpp (mdsum_dlg_proc): Use md5/sha1sum file          
143          format and allow to save the checksum in a file.  2006-08-11  Timo Schulz  <[email protected]>
144          * wptKeyRevokeDlg.cpp (key_revoke_dlg_proc): Issue a warning  
145          when the PGP mode is disabled.          * wptGPGMEWrapper.cpp (importFromFile): New.
146          wptKeyEditDlgs.cpp (do_editkey_primary): Return if just          (importFromClipboard): New.
147          one user-ID exists.          (importGetResult): New.
148          (keyedit_dlg_proc): Fixed index problem.          * wptKeyManager.cpp (km_file_import): Use gpgme wrapper.
149          * wptKeyPropsDlg.cpp (get_validity): New.          (km_clip_import): Ditto.
150          (keyprops_dlg_proc): Actually show extended validity if possible.          * wptKeyEdit.cpp (addCardKey): New.
151          * wptKeyList.cpp (get_key_fpr): Support for old v3 format.          * wptKeyEditCB.cpp (cmd_addcardkey_handler): New.
152          (do_addkey): Use listview_add_item2 to store key as opaque          * wptCardEdit.cpp (get_str_timestamp): Use locale date format.
153          param inside the list.          * wptCardDlg.cpp (card_edit_dlg_proc): Began to localize dialog.
154          * wptFileStatDlg.cpp (get_digest_algo): Add SHAxxx.          * wptKeyCache.cpp (key_divert_to_card): Adjusted for 'addcardkey'.
155          (file_stat_dlg_proc): End dialog if no PGP data was found.          
156          (do_list_packets): Return the number of valid PGP packets  2006-08-10  Timo Schulz  <[email protected]>
157          of the file.  
158            * wptFileManager.cpp (fm_verify_pasted_detsig): '=' should be
159  2005-08-02  Timo Schulz  <[email protected]>          '=='.
160            * wptGPGME.cpp (sigsum_to_index): Correctly handle expired
161          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Instead of          keys and signatures.
162          using 'Default Keyserver' add the real keyserver name to          (get_gpg_sigstat): Adjusted code.
163          the menu.          * wptCardDlg.cpp (card_changepin_dlg_proc): Cleanups.
164          The rebuild command does not reload the cache any longer.          (gpg_card_load): Improved card detection code.
165          Use ATTR_NAME + .asc as the filename and not keyid + .asc.          * wptFirstRunDlg.cpp (first_run_dlg_proc): Allow to generate
166          * wptProxySettingsDlg.cpp (enable_proxy_auth): New.          a key on a card. Suggested by Achim.
167          (keyserver_proxy_dlg_proc): Changed the design a little          * wptUtil.cpp (check_email_address): Add sanity check for
168          and add some additional sanity checks.          the length.
169          * wptGPGParser.cpp (commit_gpg_options): Use W32 line endings.          * WinPT.cpp (WinMain): Handle cardgen request.
170          This fixes the problem that the GPG option dialog does not show          
171          very nice lines.  2006-08-04  Timo Schulz  <[email protected]>
172          * wptGPGOptDlg.cpp (gpgopt_dlg_proc): s/options/config.  
173          * wptKeySigDlg.cpp (keysig_dlg_proc): If a single key is selected          * wptKeysignDlg.cpp (display_keyinfo): Skip revoked user IDs.
174          check for 'NOKEY' before asking a keyserver.          * wptKeyManagerDlg.cpp (reload_keylist): Use updated ptr.
175          * wptKeyManager.cpp (km_delete_keys): Do not set 'refresh' flag.          * wptKeyCache.cpp (gpg_keycache_delete_key): Correct handling
176          If a lot of keys were selected, ask if the user wants to confirm          for the situation that the last key in the cache is deleted.
177          each delete procedure or allow to cancel the operation.          * wptFileManagerDlg.cpp (update_ui_items): Fix file name
178          * wptFileManagerDlg.cpp (file_import_dlg_proc): Display how much          detection.
179          keys the file contain.          
180          * wptKeyList.cpp (get_key_algo): Beautified.  2006-08-02  Timo Schulz  <[email protected]>
181          (get_key_status): Drop the "[XYZ] Unknown" format, it is too  
182          confusing for users.          * wptClipDecryptDlg.cpp (verify_get_clip_info): Fix problem
183          * wptKeyManager.cpp (km_check_key_status): Adjustments for the          with static data.
184          new code.          (clip_decrypt_dlg_proc): Prefix keyid with 0x.
185          (km_check_for_seckey): Reset utrust parameter. Return -1 for          (get_key_userid): Fix problem when key was not found.
186          invalid (exp+rev+dis) keys.          * wptClipVerifyDlg.cpp (fetch_key_from_keyserver): Correct
187            fingerprint to short keyid conversion.
188  2005-08-01  Timo Schulz  <[email protected]>          * wptVerifyList.cpp (verlist_set_additional_info): Handle bad
189            sigs.
190          * wptKeyserver.cpp (kserver_urlencode): Use unsigned for all given          * wptKeyManagerDlg.cpp (update_status_bar): Faster update code.
191          sizes.          
192          (check_IP_or_hostname): New.          
193          (kserver_load_conf): Correct finger URL parsing problem.  2006-08-01  Timo Schulz  <[email protected]>
194          (port_from_proto): New.  
195          (keyserver_load_conf): Guess the port.          * wptGPG.cpp (get_last_gnupg_access): Enhanced.
196          (keyserver_set_default): Allocate new buffer.          (gnupg_display_error): Removed unused code.
197          (kserver_load_conf): Likewise.          * wptPassphraseCB.cpp (parse_gpg_description): Text output
198          * wptHTTP.c (parse_reqline, parse_request): Removed.          is now more human readable.
199          Use WinPT error code and remove all unused code.          * wptKeyManager.cpp (km_refresh_from_keyserver): Return an
200          * wptKeyserverDlg.cpp (keyserver_dlg_proc): Properly handle finger URLs.          error code in all cases.
201          * wptProxySettingsDlg.cpp (read_proxy): Simple check for          
202          invalid host/IP addresses.  2006-07-31  Timo Schulz  <[email protected]>
203          * wptGPG.cpp (multi_gnupg_path): Return allocated buffer.  
204          Changed all callers.          * wptMainProc.cpp (clip_gpg_dlg): Merge in the current window
205          * wptPreferencesDlg.cpp (prefs_dlg_proc): At the first start,          handling code.
206          automatically set 'backup to homedir'.          * wptCurrWnd.cpp (wnd_msg_em_set_pos): Reset pos to 0, not 1.
207          * WinPT.cpp (WinMain): Use desktop window as the parent window          * wptKeyEditDlgs.cpp (keyedit_main_dlg_proc): Disable sorting
208          to load 'first-start' dialogs.          for list view controls.
209          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Do not set 'refresh'          
210          flag after deleting keys.  2006-07-30  Timo Schulz  <[email protected]>
211          * wptFirstRunDlg.cpp (first_run_dlg_proc): Use a new structure  
212          for passing the arguments.          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Change menu style.
213          * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Do not store "" for          * wptKeySignDlg.cpp (keysign_dlg_proc): List all user IDs.
214          the OptFile. This was responsible for a lot of 'General Errors'          (display_keyinfo): New.
215          after the first start related to key caching.          * wptKeySigDlg.cpp (init_datepicker_from_time): New.
216          Automatically set the gpg binary if possible.          (keysig_dlg_proc): List creation time.
217            * wptKeyManager.cpp (km_send_to_mail_recipient): Fix file
218  2005-07-22  Timo Schulz  <[email protected]>          handling.
219            
220          * wptMainProc.cpp (winpt_main_proc): Take care for shutdown  2006-07-28  Timo Schulz  <[email protected]>
221          messages and make sure WinPT make a keyring backup in this case.  
222          * wptGPGME.cpp (keycache_reload): Do not rebuild the signature          * wptKeyManager.cpp (lv_del_confirmed_keys): New.
223          cache each time. Just do it on startup.          * wptKeyEditDlgs.cpp (keyedit_addsubkey_dlg_proc): Automatically
224          * wptKeyManager.cpp (km_key_is_v3): Use new ATTR_VERSION.          adjust key size.
225          * wptKeyEditDlgs.cpp (keyedit_main_dlg_proc): Assume the v3 flag          * wptKeygenDlg.cpp (keygend_dlg_proc): Likewise.
226          was set by the calling function.          
227          * wptKeyGenDlg.cpp (keygen_wizard_dlg_proc): Ask for backups.  2006-07-25  Timo Schulz  <[email protected]>
228          (keygen_dlg_proc): Only add the generated key to the keycache  
229          and do not reload the entire cache.          Applied spelling corrections from Anthony Bryan.
230          * wptKeyManager.cpp (km_delete_keys): Store the number of keys          * wptKeyserverDlg.cpp (keyserver_dlg_proc): Changed design.
231          because in each loop iteration it will be new calculated.          * wptKeygenDlg.cpp (backup_keyrings): Change default keyring.
232          * wptListView.cpp (listview_del_items): Likewise.          
233          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Directly add the  2006-07-22  Timo Schulz  <[email protected]>
234          generated key to the list instead of reloading the entire cache.  
235          * wptKeyEditDlgs.cpp (parse_preflist): Support fpr SHAnnn.          * wptMainProc.cpp (elgamal_warn_dlg_proc): Properly handle
236            utf8 encoded user ids.
237            (winpt_main_proc): Cleanups.
238            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Allow to copy
239            email address to the clipboard.
240            
241    2006-07-15  Timo Schulz  <[email protected]>
242    
243            * WinPT.cpp (WinMain): Compare PTD and WinPT version to avoid
244            any compatibility problems.
245            * wptW32API.cpp (get_file_version): Cleanups.
246            
247    2006-07-10  Timo Schulz  <[email protected]>
248    
249            * wptUtil.cpp (check_file_name): New.
250            * wptKeyRevokeDlg.cpp (mk_cert_name): Avoid illegal chars.
251            (key_revoke_dlg_proc): Likewise.
252            * wptMDSumDlg.cpp (mdsum_dlg_proc): Corrected file handling.
253            * wptImportList.cpp (implist_load): Likewise.
254            * wptFileSaveDlg.cpp (file_save_dlg_proc): Likewise.
255            * wptFileVerifyDlg.cpp (file_verify_dlg_proc): Hide dialog item.
256            
257    2006-07-05  Timo Schulz  <[email protected]>
258    
259            * wptMainProc.cpp (winpt_main_proc): Change menu texts.
260            * wptClipEditDlg.cpp (clip_edit_dlg_proc): More lightweight
261            with a menu instead of dozen of buttons.
262            
263    2006-07-01  Timo Schulz  <[email protected]>
264    
265            * wptFileManager.cpp (fm_sort): Rewritten.
266            (fm_build): Modify param type. Change all callers.
267            (fm_cmp_cb): Adjusted for the new code.
268            * wptMDSumDlg.cpp (mdsum_dlg_proc): Minor changes and model
269            for the list view.
270            * wptFileManagerDlg.cpp (file_manager_dlg_proc): Use info
271            context and model for the list view.
272            (update_status_bar): Fix calculation of the size of the
273            selected files.
274            * wptProgressDlg.cpp (wait_for_progress_cb): Changed semantic
275            and return type.
276            
277    2006-06-28  Timo Schulz  <[email protected]>
278    
279            * wptGPGPrefsDlg.cpp (load_gpg4win_values): Fix control logic
280            and memory leak.
281            * wptListView.cpp (listview_find_substr): New.
282            (listview_sort_items): Use symbolic ids.
283            * wptKeyManager.cpp (km_find_key): Allow substring search.
284            
285    2006-06-27  Timo Schulz  <[email protected]>
286    
287            * wptClipDecryptDlg.cpp (clip_decrypt_dlg): Also call viewer
288            when no sig has been found (if requested).
289            * wptClipEditDlg.cpp (clip_edit_dlg_proc): Use a button to
290            quote instead of the check box. Cleanups.
291            * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): Correct
292            sorting problem and wrong icon display.
293            * wptListView.cpp (listview_sort_items): Correct code for
294            checkbox based lists.
295            * wptKeylist.cpp (keylist_build): Add sorting icons.
296            * wptKeyEditDlgs.cpp (create_header_tooltip): New.
297            
298    2006-06-24  Timo Schulz  <[email protected]>
299    
300            * wptMainProc.cpp (winpt_main_proc): Localize missing string.
301            * wptKeyEditDlgs.cpp (do_add_new_subkey): Better fpr to keyid
302            conversion.
303            (subkey_list_init): Simplified.
304            
305    2006-06-22  Timo Schulz  <[email protected]>
306    
307            * WinPT-en.rc: Include versioninfo.rc to generate
308            the version info automatically.
309            
310    2006-06-19  Timo Schulz  <[email protected]>
311    
312            * wptClipDecryptDlg.cpp (verify_get_clip_info): Improved
313            format of the sig info text.
314            * wptKeyserver.cpp (check_hkp_response): Invert error logic.
315            * wptKeyserverDlg.cpp (keyserver_recv_key): Corrected error
316            handling.
317            * wptPassphraseDlg.cpp (request_key_passphrase): Return
318            utf8 encoded passphrase.
319            
320    2006-06-18  Timo Schulz  <[email protected]>
321    
322            * wptKeygenDlg.cpp (keygen_dlg_proc): Fix typo.
323            * wptClipDecryptDlg.cpp (verify_get_clip_info): New.
324            (verify_get_key_ownertrust): New.
325            (clip_decrypt_dlg_proc): New argument. Change all callers.
326            * wptClipEditDlg.cpp (clip_edit_dlg_proc): Handle the case
327            that the dialog was called with a param.
328            * wptMainProc.cpp (winpt_main_proc): Wait for thread in
329            case of dbl-click.
330            
331    2006-06-16  Timo Schulz  <[email protected]>
332    
333            * wptProgressDlg.cpp (wait_for_progress_cb): New.
334            * wptMainProc.cpp (winpt_main_proc): Use this function
335            to disallow to access the cache during synchronisation.
336            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Likewise.
337            * wptKeyserver.cpp (check_hkp_response): Improved text
338            extraction.
339            (parse_keyserver_error): New.
340            * wptPassphraseDlg.cpp (request_passphrase): Support utf8
341            encoding.
342            * wptKeyEditDlgs.cpp (keyedit_change_passwd): Warn if passhrase
343            needs to be utf8 encoded but still allow it.
344            * wptPassphraseCBDlg.cpp (passphrase_callback_proc): Utf8 support.
345            * wptKeygenDlg.cpp (keygen_dlg_proc): Likewise.
346            * wptKeyRevokeDlg.cpp (keyrevoke_dlg_proc): Likewise.
347            
348    2006-06-15  Timo Schulz  <[email protected]>
349    
350            * wptVerList.cpp (verlist_build): Use icons.
351            (verlist_add_sig): Set image number according to sig state.
352            
353    2006-06-14  Timo Schulz  <[email protected]>
354    
355            * wptAboutDlgs.cpp (about_winpt_dlg_proc): Translate
356            authors string here. Noted by Eduardo.
357            * wptSymEnc.cpp (gpg_clip_sym_encrypt): Check all return codes.
358            
359    2006-06-09  Timo Schulz  <[email protected]>
360    
361            * wptKeyEditDlgs.cpp (do_add_new_subkey): Properly handle
362            RSA_E and RSA_S.
363            * wptFileManager.cpp (fm_sym_encrypt): Better dialog title.
364            
365    2006-06-08  Timo Schulz  <[email protected]>
366    
367            * wptKeyserver.cpp (parse_keyserver_url): Handle special case.
368            * wptKeySignDlg.cpp (keysign_dlg_proc): Show photo if possible.
369            (showphoto_dlg_proc): New.
370            * wptKeyManagerDlg.cpp (restore_window_size): New.
371            (keymanager_dlg_proc): Restore original window size on startup.
372            (copy_key_info): Allow to copy multiple key items.
373            
374    2006-06-06  Timo Schulz  <[email protected]>
375    
376            * wptKeyEditCB.cpp (cmd_sign_handler): Return 0 by default
377            if no expire date were given.
378            
379    2006-06-05  Timo Schulz  <[email protected]>
380    
381            * wptPassphraseDlg.cpp (request_passphrase): Release mem
382            in case of errors.
383            (request_key_passphrase): New.
384            (set_passphrase_hint): New.
385            * wptKeyEditDlgs.cpp (do_editkey_sign_userid): Show passphrase
386            hint. Suggested by vedaal.
387            
388    2006-06-03  Timo Schulz  <[email protected]>
389    
390            * wptPINDlg.cpp (pin_dlg_proc): Remove static var.
391            * wptClipEncryptDlg.cpp (show_invalid_recipients): Handle
392            the case that 'encrypt-to' points to a non-existing item.
393            * wptKeyRevokeDlg.cpp (key_revoke_dlg_proc): Do not close
394            the dialog if an error occurred.
395            * wptKeygenDlg.cpp (keygn_dlg_proc): Check expirate date.
396            * wptKeyEditDlgs.cpp (keyedit_adduid_dlg_proc): Release mem
397            in case of errors.
398            * wptKeyserverDlg.cpp (check_pattern): Improved code.
399            (keyserver_dlg_proc): All comparisons are case insentensive.
400            * wptKeyserver.cpp (parse_uid_record): utf8 decode user id.
401            
402    2006-06-02  Timo Schulz  <[email protected]>
403    
404            * wptKeygenDlg.cpp (keygen_dlg_proc): Forgot to apply patch.
405            
406    2006-06-01  Timo Schulz  <[email protected]>
407    
408            * wptKeyserver.cpp (check_URL): change semantic.
409            (skip_type_prefix): Use check_URL().
410            * wptGPG.cpp (gnupg_backup_keyrings): New argument to
411            include secret keyring backups. Change all callers.
412            * wptRegistry.cpp (get_reg_winpt_prefs): Support new option.
413            (set_reg_winpt_prefs): Likewise.
414            * wptPreferencesDlg.cpp (on_init_dialog): Adjust the code.
415            
416    2006-05-29  Timo Schulz  <[email protected]>
417    
418            * wptKeyserver.cpp (keyserver_set_default): Also set default port.
419    
420    2006-05-27  Timo Schulz  <[email protected]>
421    
422            * wptKeyEditDlgs.cpp (keyedit_change_passwd): Handle empty
423            passphrase requests.
424            * wptClipDecryptDlg.cpp (verify_show_signature_state): Modified
425            for global use.
426            * wptFileManager.cpp (fm_decrypt): Use it here.
427            * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): Simplified.
428            
429    2006-05-25  Timo Schulz  <[email protected]>
430    
431            * wptGPGUtil.cpp (gpg_rebuild_cache): Return error code.
432            * wptGPGME.cpp (winpt_get_seckey): Fix off-by-one bug.
433            * wptVerifyList.cpp (verlist_build): New argument type.
434            Change all callers.
435            (verlist_set_info_control): New.
436            (verlist_set_additional_info): New.
437            * wptFileVerifyDlg.cpp (file_verify_dlg_proc): Adjust code.
438            * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Likewise.
439            * wptFileCBS.cpp (read_cb, write_cb): Add logging.
440            
441    2006-05-23  Timo Schulz  <[email protected]>
442    
443            * wptKeyEditDlgs.cpp (do_add_new_userid): Fix re-introduced
444            problem.
445            (keyedit_main_dlg_proc): Popup menu for the user ID list
446            with common commands.
447            * wptKeyserverDlg.cpp (keyserver_dlg_proc): Automatically
448            disable search for ldap servers.
449            Use subkeys.pgp.net by default when no server was selected.
450    
451    2006-05-22  Timo Schulz  <[email protected]>
452    
453            * wptRegistry.cpp (set_reg_winpt_prefs, get_reg_winpt_prefs):
454            Support for the new 'default ext' value.
455            * wptPreferencesDlg.cpp (on_init_dialog): Likewise.
456            (prefs_dlg_proc): Likewise.
457            * wptFileManager.cpp (file_get_extension): Likewise.
458            (get_output_file): Likewise.
459            (fm_export): Likewise.
460            
461    2006-05-20  Timo Schulz  <[email protected]>
462    
463            * wptKeyPropsDlg.cpp (keyprops_load_photo): avoid expensive
464            process call when no photo is available.
465            (keyprops_dlg_proc): avoid static data.
466            * wptFileManager.cpp (fm_add_sig_stat): Free memory in case
467            of on demand key requests.
468            (show_verify_result): Likewise.
469            (secret_key_available): Likewise.
470            (fm_decrypt, fm_sign): Handle the new on demand key request
471            mode and free all memory.
472            
473    2006-05-15  Timo Schulz  <[email protected]>
474    
475            * wptKeyEditDlgs.cpp (userid_list_init): Forgot to
476            apply patch. Thanks to vedaal.
477            
478    2006-05-14  Timo Schulz  <[email protected]>
479    
480            * wptKeyCache.cpp (gpg_keycache_update_attr): Parse
481            preferred keyserver URL.
482            * wptHTTP.cpp (extractHostInfo): Fix segv.
483            * wptGPGUtil.cpp (gpg_find_key_subpacket): Ignore default
484            gpg.conf.
485            * wptKeyserverSearchDlg.cpp (search_hkp_keys): Do not
486            assume an existing user id.
487            * wptPassphraseCB.cpp (passphrase_cb): Automatic cancel
488            if no passphrase is available.
489    
490    2006-05-13  Timo Schulz  <[email protected]>
491    
492            * wpMainProc.cpp (secret_key_available): Move it...
493            * wptGPGME.cpp: ..to this file.
494            (check_ultimate_trusted_key): Handle the case there
495            is no secret key available.
496            * wptFileManagerDlg.cpp (update_ui_items): Improved.
497            * wptKeyManagerDlg.cpp (key_manager_dlg_proc): Deactive
498            some functions when no secret key is available.
499            * wptKeyserverSearchDlg.cpp (search_hkp_keys): Adjust
500            code and also display pubkey algorithm.
501            * wptKeyserver.cpp (safe_alloc): New.
502            (count_keys_in_response): New.
503            (parse_pub_record): New.
504            (parse_uid_record): New.
505            (kserver_release_key): New.
506            (kserver_search_begin, kserver_search_next_key):
507            Adjust for the machine readable output. Removed old code.
508            (parse_keyserver_url): New.
509            * wptUtil.cpp (substr): New.
510            * wptKeyManager.cpp (km_refresh_one_key): Properly
511            parse the keyserver URL.
512            
513    2006-05-11  Timo Schulz  <[email protected]>
514    
515            * wptPassphraseCB.cpp (release_gpg_recipients): New.
516            (release_gpg_recipients): Use it here.
517            * wptFileManager.cpp (fm_decrypt): List all recipients.
518            Thanks to vedaal.
519            * wptGPG.cpp (extract_keyid): New.
520            (get_gnupg_default_key): Use it here.
521            * wptClipDecryptDlg.cpp (clip_decrypt_dlg): Allow to verify
522            one-pass-sigs again.
523            
524    2006-05-09  Timo Schulz  <[email protected]>
525    
526            * wptKeyRevokersDlg.cpp (revokelist_build): Store key ptr.
527            * wptClipSignDlg.cpp (gpg_clip_sign): Improve error handling.
528            * wptKeysigDlg.cpp (sigprops_dlg_proc): Correct expire date.
529            
530    2006-05-07  Timo Schulz  <[email protected]>
531    
532            * wptKeyserverDlg.cpp (hkp_err_box): Improved.
533            * wptKeyserver.cpp (wsock_strerror): Likewise.
534            * wptKeygenCBDlg.cpp (keygen_cb_dlg_destroy): New param.
535            Change all callers.
536            * wptKeysigDlg.cpp (do_load_keyprops): Correct key update
537            problem.
538            
539    2006-05-06  Timo Schulz  <[email protected]>
540    
541            * wptKeyManagerDlg.cpp (reload_keycache): Use pre-defined
542            sorting order if available.
543            * wptKeyPropsDlg.cpp (key_props_dlg_proc): Use 0x prefix
544            for the key ID.
545            (get_pref_cipher): Differ between the AES algorithm IDs.
546            (key_is_valid): New.
547            * wptKeyserverDlg.cpp (check_pattern): Simplified.
548            
549    2006-05-03  Timo Schulz  <[email protected]>
550    
551            * wptKeyCache.cpp (keycache_prepare2): Fix possible segv.
552            Thanks to Mathias.
553            
554    2006-05-02  Timo Schulz  <[email protected]>
555    
556            * wptFileManagerDlg.cpp (file_encrypt_dlg_proc): Use a
557            caption for the radio button group.
558            * wptKeyserverDlg.cpp (keyserver_recv_key): Use new code.
559            * wptKeyserver.cpp (kserver_recvkey, finger_recvkey,
560            ldap_recvkey): Avoid fixed buffers.
561            (do_spawn_ldap_helper): New.
562            (ldap_recvkey): Factor out code into helper function.
563            * wptPassphraseCBDlg.cpp (passphrase_callback_proc):
564            Increase width of the list box to make sure even large
565            user IDs will be completly displayed.
566            
567    2006-05-01  Timo Schulz  <[email protected]>
568    
569            * WinPT.cpp (WinMain): Check if the user has admin privileges.
570            * wptW32API.cpp (user_is_admin): New.
571            * wptKeysigDlg.cpp (sigprops_dlg_proc): Cosmetical changes.
572            * wptKeyManagerDlg.cpp (key_manager_dlg_proc): Use timer
573            to re-activate the window again.
574            * wptKeylist.cpp (get_key_trust2): Differ between "full"
575            and "ultimate".
576            * wptKeyCache.cpp (keycache_prepare2): Primary user-id
577            has now highest priority.
578            * wptClipDecryptDlg.cpp (clip_decrypt_dlg): Use new utf8
579            system.
580            
581    2006-04-30  Timo Schulz  <[email protected]>
582    
583            * wptKeyCache.cpp (gpg_keycache_release): Release revoker
584            list if needed.
585            * wptKeyRevokersDlg.cpp (key_get_revokers): New.
586            (key_revokers_dlg_proc): Expect winpt_key_t. Change all callers.
587            * wptKeyEditDlgs.cpp (check_desig_rev): New.
588            (do_editkey_minimize): New.
589            * wptKeyRevokeDlg.cpp (key_revoke_dlg_proc): Support to
590            generate a revoc cert as a desig revoker.
591            
592    2006-04-29  Timo Schulz  <[email protected]>
593    
594            * wptVerifyList.cpp (verlist_build): Adjusted code for new
595            list view interface.
596            * wptSigList.cpp (siglist_build): Likewise.
597            * wptKeyEditDlgs.cpp (showpref_dlg_proc): Correct code
598            to display the preferences of the selected UID. Thanks to Mathias.
599            * wptKeyCacheDlg.cpp (keycache_dlg_proc): Return 1 in case
600            of an error.
601            * wptKeyCache.cpp (gpg_keycache_update_key): Always update
602            the utf8 decoded uid list.
603            * wptImportList.cpp (decode_userid): Do utf8 decoding here.
604            * wptListView.cpp (listview_new): New param for HWND handle.
605            Change all callers.
606            * wptFileManager.cpp (fm_add_sig_stat): Use utf8 decoding.
607            * wptGPGUtil.cpp (gpg_revoke_cert): Support --desig-revoker.
608            * wptClipVerifyDlg.cpp (wptClipVerifyDlg.cpp): Correct
609            keyid extraction.
610            
611    2006-04-28  Timo Schulz  <[email protected]>
612    
613            * wptMAPI.cpp (mapi_send_pubkey): Use new key struct.
614            * wptKeysigDlg.cpp (sigprops_dlg_proc): Prepare dialog
615            for handling policy URLs.
616            * wptKeyManagerDlg.cpp (save_column_info, restore_column_info):
617            New option KMSortBy.
618            * wptKeylist.cpp (get_key_algo): Lower priority for revoked keys.
619            * wptKeyEdit.cpp (minimizeKey): New.
620            * wptKeyCache.cpp (gpg_keycache_update_key): Reload utf8 uid list.
621            
622    2006-04-27  Timo Schulz  <[email protected]>
623    
624            * wptKeyManager.cpp (km_get_key_ptr): New.
625            * wptListview.cpp (listview_get_item_text): Drop utf8 support.
626            * wptKeyCache.cpp (keycache_decode_uids): New.
627            (free_native_uids): New.
628            * wptKeyEdit.cpp (uid_inf_colon_handler): Do utf8 decodig here.
629            
630    2006-04-26  Timo Schulz  <[email protected]>
631    
632            * wptKeylist.cpp (get_keyid_from_fpr): New.
633            * wptDecryptClipDlg.cpp (clip_decrypt_dlg): Use it here.
634            * wptVerifyList.cpp (verlist_add_sig): Likewise.
635            
636    2006-04-25  Timo Schulz  <[email protected]>
637    
638            * wptFileManagerDlg.cpp (file_manager_dlg_proc): Handle IDCANCEL.
639            * wptMDSumDlg.cpp (hash_selected_files): New.
640            (mdsum_dlg_proc): Cleanups.
641            * wptKeysignDlg.cpp (keysign_dlg_proc): Fix segv.
642            
643    2006-04-23  Timo Schulz  <[email protected]>
644    
645            * wptW32API.cpp (SetDlgItemText_utf8): New.
646            (SetWindowText_utf8): New.
647            (GetDlgItemText_utf8): New.
648            * wptListView.cpp (listview_add_sub_item): Internal
649            utf8 support.
650            
651    2006-04-22  Timo Schulz  <[email protected]>
652    
653            * wptKeyEditDlgs.cpp (addrevoker_dlg_proc): Encode
654            revoker name in UTF8.
655            * wptKeysigDlg.cpp (keysig_dlg_proc): Fix utf8 problem
656            with the window title.
657            
658    2006-04-20  Timo Schulz  <[email protected]>
659    
660            * wptUTF8.cpp (native_to_utf8): Use c++ alloc.
661            * wptKeygenDlg.cpp (keygen_dlg_proc): Do not mix c and
662            c++ memory allocation.
663            * wptFileManager.cpp (show_verify_result): Show PKA status
664            if possible.
665            * wptClipVerifyDlg.cpp (get_pka_status): New.
666            (clip_verify_dlg_proc): Show PKA status if possible.
667            * wptClipEditDlg.cpp (clip_edit_dlg_proc): Handle IDCANCEL
668            to use ESC to quit the dialog.
669            * wptKeyEditDlgs.cpp (keyedit_adduid_dlg_proc): Also
670            encode the comment in UTF8. Thanks to Werner and Jan.
671            
672    2006-04-16  Timo Schulz  <[email protected]>
673    
674            * wptHTTP.cpp (getErrorCode): New.
675            (connect): Store winsock error code.
676            * wptGPGMEData.cpp (is_armor_header): New.
677            * wptGPG.cpp (check_gnupg_engine): Free context.
678            (gnupg_backup_keyrings): Do not use global vars.
679            * wptGPGUtil.cpp (gpg_export_seckey): Export in ascii format.
680            
681    2006-04-15  Timo Schulz  <[email protected]>
682    
683            * wptKeyManager.cpp (km_get_key): New.
684            (km_key_show_revoc_info): New.
685            * wptKeyRevokeDlg.cpp (key_revoke_dlg): Cleanups.
686            (on_init_dialog): New.
687            * wptKeyManagerDlg.cpp (key_manager_dlg_proc): Factour
688            out some common code and use km_get_key() instead.
689            * wptKeyEditDlgs.cpp (do_init_keylist): Change second
690            param type. Change all callers.
691            * wptKeyEdit.cpp (addNotation): New.
692            * wptKeyEditCB.cpp (editkey_command_handler): Remove 'step'
693            param everywhere. Change all callers.
694            
695    2006-04-09  Timo Schulz  <[email protected]>
696    
697            * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Only return true
698            if the homedir value was changed.
699            * wptGPG.cpp (default_key_from_cache): Only return secret key
700            if public part is available.
701            (set_gnupg_default_key): Fix NULL problem.
702            * wptKeyEditDlgs.cpp (do_editkey_clean): Set update flag.
703            * wptFileCBS.cpp (write_cb, read_cb): Better error handling.
704            * wptFileManagerDlg.cpp (file_manager_dlg_proc): Handle
705            'always-on-top' correctly.
706            * wptKeylist.cpp (keylist_get_recipients): Allocate enough
707            mem to hold all possible keys.
708            (keylist_enum_keys): Likewise.
709            
710    2006-04-08  Timo Schulz  <[email protected]>
711    
712            * wptKeylist.cpp (keylist_get_recipients): Always use utf8 output.
713            * wptKeyserver.cpp (kserver_connect): Fixed proxy support.
714            * wptKeyserverSearchDlg.cpp (fetch_keys): New.
715            * WinPT.cpp (WinMain): if the default key was not found, reset
716            the gpg.conf entry.
717            * wptFileManager.cpp (fm_encrypt_into_zip): Use correct output
718            file name.
719            (show_verify_result): Always use utf8 output.
720            (get_output_file): Case in-sentensive comparison.
721            (fm_assume_onepass_sig): Fixed temp file handling.
722            * wptClipEncryptDlg.cpp (show_invalid_recipients): Fix utf8
723            output.
724            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Fix possible segv.
725            
726    2006-04-07  Timo Schulz  <[email protected]>
727    
728            * wptW32API.cpp (set_clip_text): Change code so it also
729            works again with non-XP systems.
730            
731    2006-04-02  Timo Schulz  <[email protected]>
732    
733            * wptKeyserver.cpp: decrease general threshold for timeout.
734            * wptKeyEditDlgs.cpp (do_editkey_clean): New.
735            
736    2006-04-01  Timo Schulz  <[email protected]>
737    
738            * wptFileVerifyDlg.cpp (file_verify_use_event): Removed.
739            * wptFileManager.cpp (restore_original_name): New.
740            (fm_decrypt): Restore original file name from literal
741            packet if possible.
742            
743    2006-03-31  Timo Schulz  <[email protected]>
744    
745            * wptCommonDlg.cpp (nls_load_langlist): New.
746            (nsl_set_language): New.
747            (nls_dlg_proc): New.
748            (select_language): New. Allow user to select the language.
749            * wptNLS.c (get_gettext_langid): Updated available languages.
750            * WinPT.cpp (WinMain): Allow to select the languag on first
751            start in non-installer environments.
752            * wptVerifyList.cpp (verlist_build): Simplified.
753            (verlist_add_sig_log): Likewise.
754            * wptListview.cpp (listview_set_column_width,
755            listview_get_selected_item): New.
756            * wptKeyManager.cpp (gpg_clip_export): Merged into..
757            (km_clip_export): ..this function.
758            
759    2006-03-30  Timo Schulz  <[email protected]>
760    
761            * wptW32API.cpp (insert_menu_item): New.
762            * wptSigTreeDlg.cpp (create_popup): Use it.
763            (sigtree_dlg_proc): Only show the name of the owner in the title.
764            * wptMainProc.cpp (init_common_controls): Initialize all
765            common controls here.
766            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Drop static
767            keyserver menu concept. Add all keyservers dynamically.
768            
769    2006-03-29  Timo Schulz  <[email protected]>
770    
771            * wptKeyManager.cpp (km_refresh_one_key): Fix problem
772            with preferred keyserver.
773            * wptCommonDlg.cpp (check_URL): Allow non-http URL.
774            * wptKeyEditDlgs.cpp (subkey_subclass_proc,
775            uid_subclass_proc): Disable shortcuts for non keypairs.
776            * wptMainProc.cpp (winpt_main_proc): No user interaction
777            on automatic shutdown. Thanks to Werner.
778            * wptGPGUtil.cpp (xcalloc): New.
779            (gpg_rebuild_cache): Use --batch.
780            
781    2006-03-26  Timo Schulz  <[email protected]>
782    
783            * wptSigTreeDlg.cpp (sigtree_load): Always use UTF8.
784            * wptMainProc.cpp (winpt_main_proc): Reload key cache
785            when the GPG settings were changed.
786            * wptKeygenDlg.cpp (keygen_wizard_dlg_proc,
787            keygen_dlg_proc): Improved check for the email address.
788            * wptKeyEditDlgs.cpp (keyedit_adduid_dlg_proc): Likewise.
789            * wptKeyserverDlg.cpp (keyserver_dlg_proc): Modified design.
790            
791    2006-03-22  Timo Schulz  <[email protected]>
792    
793            * wptClipSignDlg.cpp (on_init_dialog): New.
794            Check that there is at least one useable signing key.
795            * wptSigTreeDlg.cpp (sigtree_load): Correct UTF8 handling.
796            * wptKeyEditDlgs.cpp (keyedit_set_pref_keyserver): Show error
797            if needed.
798            
799    2006-03-21  Timo Schulz  <[email protected]>
800    
801            * wptUTF8.cpp (native_to_utf8): Use directly W32 API.
802            (utf8_to_native): Likewise. Remove cp850 conversion.
803            * wptKeyEditDlgs.cpp (do_find_userid): Correct UTF8 handling.
804            * wptKeyManager.cpp (km_delete_keys): Do not reset 'with_seckey'
805            flag.
806            
807    2006-03-20  Timo Schulz  <[email protected]>
808    
809            * wptUTF8.cpp (get_native_charset): Removed.
810            (utf8_to_native): Rewritten.
811            * wptKeyEditDlgs.cpp (do_add_new_userid): Correct charset
812            handling.
813            * wptKeygenCBDlg.cpp (keygen_cb): Do proper reset if needed.
814            
815    2006-03-16  Timo Schulz  <[email protected]>
816    
817            * wptMainProc.cpp (winpt_main_proc): Disable all CryptDisk code.
818            * wptCryptDisk.cpp: Disable code.
819            * wptProxySettingsDlg.cpp (proxy_settings_dlg_proc): Support for
820            NONE proxy protocol.
821            (init_proxy_procotol): Likewise.
822            (read_proxy): Likewise.
823            * wptKeyserverSearchDlg.cpp (on_init_dialog): New.
824            (keyserver_search_dlg_proc): Use it here.
825            * wptKeyserverDlg.cpp (hkp_send_key): Use GPGME wrapper.
826            * wptKeyserver.cpp (kserver_search_end): New.
827            (kserver_search_begin): Be more strict on mem allocation.
828            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Fix 'redraw'
829            problem.
830            * wptAboutDlgs.cpp (about_dlg_proc): Hide 'Help' button.
831            
832    2006-03-12  Timo Schulz  <[email protected]>
833    
834            * wptGPG.cpp (gnupg_load_config): Search for 'ask-cert-expire'.
835            * wptKeyPropsDlg.cpp (display_key_info): Automatically update
836            sym algorithm preferences if needed.
837            * wptKeysignDlg.cpp (date_is_today): New.
838            (keysign_dlg_proc): Only allow to set cert expire date if
839            the option was found.
840            * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Allow to set
841            'ask-cert-expire'.
842            
843    2006-03-10  Timo Schulz  <[email protected]>
844    
845            * wptHTTP.c: deleted.
846            * wptHTTP.cpp (wHTTP): Transformed old code into an object.
847            * wptKeyManager.cpp (km_http_import): Use new code.
848            (km_refresh_one_key): Use preferred keyserver if possible.
849            * wptComonDlg.cpp (check_URL): Better conformance checking.
850            * wptKeyEditCB.cpp (cmd_keyserver_handler): By default
851            set keyserver for all userids.
852            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Enable code
853            to set preferred keyserver.
854            * wptKeyCache.cpp (decode_subpacket): New.
855            (gpg_keycache_update_attr): New.
856            * wptGPGUtil.cpp (gpg_find_key_subpacket): New.
857            * wptKeyEditDlgs.cpp (keyedit_set_pref_keyserver): Use
858            -1 as an index for all userids.
859            
860    2006-03-07  Timo Schulz  <[email protected]>
861    
862            * WinPT.cpp (set_default_keyserver): New.
863            * wptKeyserver.cpp (kserver_set_socket_timeout): New.
864            (kserver_set_default_keyserver): Initialize default settings
865            if needed.
866            * wptSymEnc.cpp (gpg_encrypt_symmetric): Disallow empty passwords.
867            * wptPassphraseDlg.cpp (request_passphrase): Handle new flag.
868            (passphrase_dlg_proc): Support new safe edit window procedure.
869            * wptPassphraseCB.cpp (passphrase_callback_proc): Likewise.
870            * wptPreferencesDlg.cpp (prefs_dlg_proc): Flush passphrase cache
871            if user disable it.
872            * wptKeylist.cpp (keylist_build): Do not scale images but use
873            original size.
874            * wptListView.cpp (listview_set_image_list): New size params.
875            Change all callers.
876            
877    2006-03-01  Timo Schulz  <[email protected]>
878    
879            * wptW32API.cpp (set_clip_text): Free all memory.
880            
881    2006-02-27  Timo Schulz  <[email protected]>
882    
883            * wptSOCKS.cpp (socks_handshake): New.
884            * wptMainProc.cpp (winpt_main_proc): A dbl-click forces
885            the key manager in teh foreground if possible.
886            * wptHotkey.cpp (hotkey_unregister): Unregister all hotkeys.
887            * wptRegistry.cpp (get_reg_proxy_prefs,
888            set_reg_proxy_prefs): Use directly the proxy context.
889            Changed all callers.
890            * wptProxySettingsDlg.cpp (init_proxy_protocols): New.
891            (keyserver_proxy_dlg_proc): Use directly the proxy context.
892            * wptKeyserver.cpp (kserver_connect): Better proxy support.
893            (kserver_send_request, kserver_recvkey_request): Likewise.
894            * wptKeyserverDlg.cpp (name_from_proto): New.
895            (set_proxy): Adjusted for the new code.
896            
897    2006-02-26  Timo Schulz  <[email protected]>
898    
899            * WinPT.cpp (WinMain): Removed hotkey_modify() code.
900            * wptKeyEditDlgs.cpp (is_idea_protect_algo): Better support
901            v4 keys.
902            * wptKeyserver.cpp (sock_getline): Skip '\r'.
903            (base64_encode): Remove @maxlen param. Changed all callers.
904            (finger_readline): Removed.
905            (finger_recvkey): Use internal functions.
906            * wptSigTreeDlg.cpp (sigtree_dlg_proc): Support a context menu.
907            (show_sigprops): New.
908            (create_popup): New.
909            * wptPreferenceDlg.cpp (prefs_dlg_proc): Cache amount is
910            now in minutes.
911            * wptRegistry.cpp (get_winpt_reg_prefs, set_winpt_reg_prefs):
912            Change code to use hotkeys directly.
913            * wptHotkeys.cpp (hotkeys_enable, hotkey_disable): Likewise.
914            
915    2006-02-24  Timo Schulz  <[email protected]>
916    
917            * wptGPG.cpp (set_gnupg_default_key): Allow to remove entry
918            when parameter is NULL.
919            * wptKeyManager.cpp (check_exist_default_key): New.
920            (km_delete_keys): Check if the default key is still valid,
921            if not delete entry.
922            * wptSigTreeDlg.cpp (sigtree_dlg_proc): Forgot to localize
923            button.
924            
925    2006-02-21  Timo Schulz  <[email protected]>
926    
927            * wptClipDecryptDlg.cpp (clip_decrypt_dlg_proc): Minor
928            cleanups.
929            * wptGPGUtil.cpp (file_extract_recipients): New.
930            (clip_extract_recipients): New.
931            (gpg_get_recipients): New.
932            * wptPassphraseCB.cpp (passphrase_callback_proc): Support
933            external recipient listings.
934            
935    2006-02-15  Timo Schulz  <[email protected]>
936    
937            * wptKeysignDlg.cpp (keysign_dlg_proc): Localize new checkbox.
938            * wptFileStatDlg.cpp (get_s2k_algo): New.
939            * wptFileManagerDlg.cpp (update_status_bar): Use human readable
940            formats.
941            
942    2006-02-14  Timo Schulz  <[email protected]>
943    
944            * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Localize 'Cancel'.
945            * wptKeysignDlg.cpp (keysign_dlg_proc): Implement 'Hide Typing'.
946            * wptFileManager.cpp (fm_sym_encrypt): Set cancel.
947            (fm_parse_files): Handle cancel.
948            
949    2006-02-10  Timo Schulz  <[email protected]>
950    
951            * wptKeyPropsDlg.cpp (props_dlg_proc): Removed unused vars.
952            * wptKeyEditDlgs.cpp (do_editkey_check): Use winpt_key_t
953            for the dialog param.
954            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Use new list
955            signature dialog by default.
956            * wptKeysigDlg.cpp (sigprops_dlg_proc): Use directly
957            gpgme_key_sig_t as param.
958            (keysig_dlg_proc): Change param for property dialog.
959            * wptSigTreeDlg.cpp (sigtree_load): Skip revoked user-ids
960            and use icons.
961            (sigtree_dlg_proc): Allow to execute old list dialog to
962            edit the signatures.
963            
964    2006-02-09  Timo Schulz  <[email protected]>
965    
966            * wptRegistry.cpp (set_winpt_reg_prefs): Removed keylist mode.
967            * wptNLS.c (gettext_localize_dialog): New.
968            * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Add 'Cancel' button
969            to avoid to reload the key cache.
970            * wptClipEncryptDlg.cpp (clipenc_dlg_proc): Drop old 'normal'
971            list mode.
972            * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Likewise.
973            * wptPreferencesDlg.cpp (on_init_dialog): New. Move dialog
974            initiation code to this function.
975            (prefs_dlg_proc): Use it here.
976            
977    2006-02-07  Timo Schulz  <[email protected]>
978    
979            * wptKeyEdit.cpp (setNoPassphrase): New.
980            (getValidDays): New.
981            * wptKeysignDlg.cpp (keysign_dlg_proc): Check on init
982            if the key is protected.
983            * wptKeyEditDlgs.cpp (keyedit_addphoto_dlg_proc): Handle
984            keys without a passphrase.
985            (keyedit_addrevoker_dlg_proc): Likewise.
986            
987    2006-02-04  Timo Schulz  <[email protected]>
988    
989            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Check for
990            at least one ultimately trusted key.
991            * wptKeyManager.cpp (km_refresh_key_from_keyserver):
992            Only check inet connection if we refresh all keys.
993            * wptGPGUtil.cpp (gpg_extract_keys): New.
994            * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): Use textmode.
995            * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Likewise.
996            * wptClipSignDlg.cpp (get_selected_key): New.
997            (one_key_proc): Use it here.
998            (count_useable_seckeys): New.
999            * wptSigTreeDlg.cpp (sigtree_dlg_proc): New.
1000            * wptKeyEditDlgs.cpp (diff_time): Removed.
1001            (w32_mktime): New.
1002            (keyedit_addsubkey_dlg_proc): Use it here.
1003            
1004    2006-02-02  Timo Schulz  <[email protected]>
1005    
1006            * wptW32API.cpp (get_temp_name): New.
1007            * wptKeyserver.cpp (ldap_recvkey): Use it here.
1008            * wptKeyPropsDlg.cpp (get_photo_tmpname): Likewise.
1009            * wptGPGUtil.cpp (create_tempfile): Likewise.
1010            * wptImportList.cpp (implist_load): Likewise.
1011            * wptKeyCache.cpp (parse_attr_data): Likewise.
1012            (w32_tempfile): Removed.
1013            * wptGPGME.cpp (check_ultimate_trusted_key): New.
1014            
1015    2006-01-31  Timo Schulz  <[email protected]>
1016    
1017            * wptMainProc.cpp (winpt_main_proc): Fix usage of the
1018            help system.
1019            * wptListView.cpp (listview_set_chkbox_style): New.
1020            (listview_get_item_state): Support new checkbox style.
1021            (listview_new): Reset flag var.
1022            * wptKeylist.cpp (keylist_build): Support new checkbox style.
1023            
1024    2006-01-30  Timo Schulz  <[email protected]>
1025    
1026            * WinPT.cpp (check_readonly_attr): New.
1027            (load_gpg_env): Use it here.
1028            (WinPT): Make the the default key is searched in the
1029            secret key cache.
1030            Change error message.
1031            * wptRegistry.cpp (regist_int_winpt): Make sure
1032            the register extension is only offered once to the user.
1033            * wptKeyPropsDlg.cpp (get_photo_tmpname): Always use
1034            temp directory. Fixed a privilege problem.
1035            
1036    2006-01-29  Timo Schulz  <[email protected]>
1037    
1038            * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Allow to use ESC
1039            to quit dialog.
1040            * wptKeysignDlg.cpp (sig_class_dlg_proc): More space for
1041            translations. Directly return sig class.
1042            (keysign_dlg_proc): Change msgbox title.
1043            * wptKeyEdit.cpp (signUserid): New.
1044            (getUseridIndex): New.
1045            (getKeyIndex): New.
1046            (getSigIndex): New.
1047            (clear): New.
1048            * wptKeyEditCB.cpp (cmd_sign_handler): Allow to select
1049            user-id first.
1050            * wptKeyEditDlgs.cpp (lookup_cmd): New.
1051            (do_editkey_sign_userid): New.
1052            (do_init_cmdlist): Differ between key pairs and public keys
1053            and allowed actions.
1054            (keyedit_change_ownertrust): Show msgbox on success.
1055            (get_default_key): New.
1056            * wptPassphraseDlg.cpp (request_passphrase): Reset @cancel.
1057            
1058    2006-01-27  Timo Schulz  <[email protected]>
1059    
1060            * WinPT.cpp (WinMain): Set minimal list mode as default.
1061            * wptKeyCache.cpp (gpg_keycache_sync): Handle special v3 keys.
1062            
1063    2006-01-25  Timo Schulz  <[email protected]>
1064    
1065            * wptRegistry.cpp (get_reg_entry_gpg): Return NULL if
1066            the key exist with no value.
1067            * wptMDSumDlg.cpp (mdsum_dlg_proc): Translate string.
1068            * wptKeysignDlg.cpp (do_fill_seclist): Select the
1069            default key if possible.
1070            * wptFirstRunDlg.cpp (firstrun_dlg_proc): Directly
1071            return the choice.
1072            * wptKeylist.cpp (get_key_desc): New.
1073            (keylist_upd_key): Free memory.
1074            * wptKeyCache.cpp (gpg_keycache_get_default_key): New.
1075            (gpg_keycache_set_default_key): New.
1076            * WinPT.cpp (gpg_prefs_ok): New.
1077            (WinMain): Only start gpg prefs if needed.
1078            
1079    2006-01-24  Timo Schulz  <[email protected]>
1080    
1081            * wptKeyManager.cpp (km_dropped_file_import): New.
1082            * wptKeyManagerDlg.cpp (keylist_subclass_proc): Allow
1083            to drop files and try to import them.
1084            (keymanager_dlg_proc): Pass kmi as opaque to the subclass
1085            proc.
1086            
1087    2006-01-23  Timo Schulz  <[email protected]>
1088    
1089            * wptMDSumDlg.cpp (mdsum_dlg_proc): Allow to send output
1090            to the clipboard.
1091            * wptKeyEditDlgs.cpp (keyedit_change_ownertrust): New.
1092            (do_editkey_enable_disable): New.
1093            * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Usability fix. Do not
1094            close the dialog if the user cancelled the ownertrust dialog.
1095            * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Return TRUE to indicate
1096            an update of any value.
1097            
1098    2006-01-21  Timo Schulz  <[email protected]>
1099    
1100            * wptKeyCache.cpp (keycache_next_key): Handle the case
1101            that there is a secret key without a public part.
1102            * wptKeyserver.cpp (kserver_save_conf): Save ports.
1103            * wptKeyserverDlg.cpp (keyserver_modify_dlg_proc):
1104            Reset keyserver name.
1105            * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Just indicate
1106            an update, do not update the cache.
1107            * wptFileManagerDlg.cpp (file_import_dlg_proc): Use one
1108            dialog for both clipboard and file imports.
1109            * wptKeyManager.cpp (km_file_import, km_clip_import):
1110            Changes to support new update system.
1111            (gpg_clip_import): New.
1112            * wptKeyManagerDlg.cpp (km_gui_import): New.
1113            (find_keypos): Rewritten.
1114            (refresh_keylist): Improved error checking.
1115            
1116    2006-01-20  Timo Schulz  <[email protected]>
1117    
1118            * wptKeyCache.cpp (w32_tmpfile): New.
1119            (parse_attr_data): Use it here.
1120            * wptGPGUtil.cpp (gpg_get_photoid_data): Reset @ndata var.
1121            
1122    2006-01-19  Timo Schulz  <[email protected]>
1123    
1124            * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Do not
1125            reload the entire cache, just update the key.
1126            * wptFileVerifyDlg.cpp (file_verify_dlg_proc): Likewise.
1127            * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Set update flag.
1128            * wptKeyRevokersDlg.cpp (key_revokers_dlg_proc): Likewise.
1129            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Update key
1130            if need after showing the properties.
1131            * wptGPGMEData.cpp (gpg_data_putc): Fix off-by-one bug.
1132            * wptKeyManager.cpp (km_import_file): New param. Changed
1133            all callers.
1134            (km_import_clip): Likewise.
1135            (delete_keys_from_cache): Delete secret part if available.
1136            * wptClipImportDlg.cpp (print_import_status): If there
1137            are too many new keys, use reload code.
1138            
1139    2006-01-18  Timo Schulz  <[email protected]>
1140    
1141            * wptKeyEditCB.cpp (cmd_delsig_handler): Do not assume
1142            the self sig is always index 0. Noted by Kurt.
1143            * wptPassphraseCB.cpp (passphrase_dlg_proc): Do not assume
1144            the key user-ID contains an email address.
1145            * wptKeyEditDlgs.cpp (do_find_userid): Likewise.
1146            (do_editkey_deluid): Likewise.
1147            (do_editkey_revuid): Likewise.
1148            
1149    2006-01-18  Timo Schulz  <[email protected]>
1150    
1151            * wptListview.cpp (listview_del_sel_items): Fixed index
1152            calculation. This fixed a lot of problems with the KM listview
1153            update.
1154            (listview_del_all): Renamed to...
1155            (listview_del_all_items): ..this. Changed all callers.
1156            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Just refresh
1157            list when file import contained new/updated keys.
1158            * wptKeyManager.cpp (km_file_import): Indicate if the
1159            import contained any new/update keys.
1160            * wptClipImportDlg.cpp (print_import_status): Just mark
1161            keys which actually changed.
1162            
1163    2006-01-17  Timo Schulz  <[email protected]>
1164    
1165            * wptMAPI.cpp (mapi_send_pubkey_ext): New.
1166            * wptKeysigDlg.cpp (do_delsig): Just flag the key, do not
1167            update it.
1168            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Be more
1169            careful about const pointers.
1170            * wptKeyEditDlgs.cpp (get_subkey_fingerprint): Renamed to..
1171            (get_subkey_keyid): ..this. Fix problem that key was updated
1172            twice and this corrupted.
1173            (keyedit_add_subkey): Set @lv item in the callback context.
1174            
1175    2006-01-16  Timo Schulz  <[email protected]>
1176    
1177            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Restore
1178            window if it lost focus during the operation. Thanks to Kurt.
1179            Update keylist when the window is enabled.
1180            (find_keypos): New.
1181            * wptKeyCache.cpp (keycache_next_key): Reset update status.
1182            (gpg_keycache_next_updated_key): New arg @r_status. Change all
1183            callers.
1184            (gpg_keycache_update_key): Different status for new and updated.
1185            Include key signatures.
1186            * wptClipImportDlg.cpp (print_import_status): Mark all
1187            imported keys.
1188            * wptMainProc.cpp (clip_gpg_dlg): On import refresh KM keylist.
1189            Thanks to Kurt.
1190            * wptKeysigDlg.cpp (recv_missing_keys): Mark all received keys.
1191            (do_delsig): Directly reload key. Thanks to Kurt.
1192            * wptGPGME.cpp (keycache_set_reload, keycache_get_reload):
1193            Removed.
1194            * wptKeygenDlg.cpp (keygen_dlg_proc): Use new update system.
1195            * wptClipImportDlg.cpp (clip_import_dlg_proc): Return
1196            FALSE if no keys were updated or operation was cancelled.
1197            * wptCommonDlg.cpp (http_dlg_proc): Fix title selection code.
1198            * wptKeylist.cpp (get_ext_validity): Handle disabled keys.
1199            * wptKeyPropsDlg.cpp (keyprops_dlg_proc):
1200            Do not allow to change ownertrust of invalid keys.
1201            Changed translation.
1202            Slightly different user interface.
1203            
1204    2006-11-14  Timo Schulz  <[email protected]>
1205    
1206            * wptW32API.cpp (make_special_filename): New.
1207            * wptRegistry.cpp (set_winpt_reg_prefs, get_winpt_reg_prefs):
1208            Removed 'KeyServer' item.
1209            * wptPreferencesDlg.cpp (prefs_dlg_proc): Remove keyserver
1210            config item.
1211            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Disable group
1212            window until we really use it.
1213            * wptKeyserver.cpp (kserver_save_conf): New.
1214            (wsock_end): Save keyserver config file.
1215            * wptKeyserverDlg.cpp (keyserver_edit): New.
1216            (keyserver_remove): New.
1217            (keyserver_add): New.
1218            (fill_keyserv_types): New.
1219            (keyserver_modify_dlg_proc): New.
1220            (keyserver_dlg_proc): Provide context menu to modify the
1221            keyserver list.
1222            (keyserver_build_list): Remove 'proto' column because it is
1223            not really useful.
1224            * WinPT.cpp (load_keyserver_conf): Store keyserver.conf at
1225            $APPDATA\winpt. If keyserver.conf exists in the current folder
1226            move it to the new destination.
1227            
1228    2006-11-13  Timo Schulz  <[email protected]>
1229    
1230            * wptPreferencesDlg.cpp (prefs_dlg_proc): Changed translation.
1231            * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Likewise.
1232            * wptAboutDlgs.cpp (about_dlg_proc): Make sure GPG about
1233            dialog isn't shown twice.
1234            * wptKeyCache.cpp (gpg_keycache_next_updated_key): New.
1235            (gpg_keycache_update_key): Set update flag.
1236            * wptKeyManagerDlg.cpp (refresh_keylist): New.
1237            (keymanager_dlg_proc): Use new refresh system for keyservers.
1238            * wptKeyserverSearchDlg.cpp (kserver_search_dlg_proc):
1239            Update keycache.
1240            * wptKeyserverDlg.cpp (hkp_dlg_proc): Likewise.
1241            * wptKeyserver.cpp (socket_read_ext): New.
1242            (kserver_recv_key_ext): New.
1243            (kserver_read_config, kserver_write_config): Removed.
1244            
1245    2006-01-12  Timo Schulz  <[email protected]>
1246    
1247            * wptListView.cpp (listview_set_image_list): Make icons
1248            always transparent.
1249            * wptImageList.cpp (imagelist_load): New icons.
1250            * wptGPGMEData.cpp (gpg_data_putc): New.
1251            * wptKeyManagerDlg.cpp (load_toolbar): Include new icons.
1252            (keymanager_dlg_proc): Add tooltips.
1253            * wptKeyserverDlg.cpp (keyserver_list_build): Use icons.
1254            * wptKeyserver.cpp (URL_encode): New.
1255            (URL_must_encode): New.
1256            (kserver_search_init): Properly encode pattern.
1257            (parse_iso_date): New.
1258            (keyserver_search): Be more strict to prevent buffer overflows.
1259            
1260    2006-01-11  Timo Schulz  <[email protected]>
1261    
1262            * wptKeyManagerDlg.cpp (load_toolbar): 2 new icons.
1263            (keymanager_dlg_proc): Adjust tooltips.
1264            (update_ui_items): Handle new icons.
1265            * wptImageList.cpp (imagelist_load): New icons.
1266            
1267    2006-01-10  Timo Schulz  <[email protected]>
1268    
1269            * wptMainProc.cpp (winpt_main_proc): Restore iconic
1270            File/Key Manager windows if needed.
1271            * wptGPGPrefsDlg.cpp (gpg_prefs_dlg_proc): Disable button.
1272            * wptSiglist.cpp (init_cmp): New.
1273            (siglist_sort): New.
1274            (siglist_cmp_cb): New.
1275            (siglist_add_key): Force NOKEY status when key was not found.
1276            * wptKeysigDlg.cpp (recv_single_key): New.
1277            (recv_missing_keys): Reload entire key when more than one key
1278            was fetched.
1279            (keysig_dlg_proc): Support sorting the listview items.
1280            
1281    2006-01-09  Timo Schulz  <[email protected]>
1282    
1283            * WinPT.cpp (load_gettext): Remove file locking.
1284            (WinMain): Use pre-defined autoconf constants.
1285            * wptW32API.cpp (init_file_lock, release_file_lock): Deleted.
1286            * wptGPG.cpp (check_gnupg_engine): Add param @need_gpg_ver.
1287            Change all callers.
1288            
1289    2006-01-07  Timo Schulz  <[email protected]>
1290    
1291            * wptKeyManager.cpp (km_refresh_from_keyserver): Summarize
1292            import status if just one key was selected.
1293    
1294    2006-01-04  Timo Schulz  <[email protected]>
1295    
1296            * wptGPGMEWrapper.c (setChangeVersion): New.
1297            (exportToBuffer, exportToFile, exportToClipboard): New.
1298            (setArmor, getArmor): New.
1299            * wptKeylist.cpp (get_key_expire_date): Return locale specific
1300            date.
1301            (keylist_get_recipients): Do not fetch the key again.
1302            (keylist_enum_recipients): Likewise.
1303            * wptGPG.cpp (create_empty_keyring): New.
1304            (get_gnupg_keyring): Fixed 'strict' logic.
1305            * wptKeyManagerDlg.cpp (update_ui_items): Disable some buttons
1306            when no secret keys are available.
1307            * wptKeyManager.cpp (km_send_to_mail_recipient): Release key data
1308            before the MAPI call is made.
1309            * WinPT.cpp (check_for_empty_keyrings): New.
1310            
1311    2006-01-03  Timo Schulz  <[email protected]>
1312    
1313            * pubkey.ico, keypair.ico: New.
1314            * wptListview.cpp (listview_add_item_image): New.
1315            (listview_set_image_list): New.
1316            * wptSigList.cpp (siglist_add_key): Correct order of the sigs.
1317            * wptKeyProps.cpp (keyprops_load_photo): Adjusted for new
1318            JPEG data.
1319            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Do not allow to
1320            add items to revoked keys.
1321            * wptKeyManager.cpp (km_delete_keys): Do not use uninitialized
1322            keyid buffer. This fixes a segv.
1323            * wptKeyserver.cpp (spawn_application): New.
1324            (ldap_recv_key): Support recent protocols and several cleanups.
1325            * wptKeylist.cpp (do_addkey): Set image which depends on the
1326            key type.
1327            (keylist_enum_recipients): Cleanups.
1328            (keylist_get_keyflags): Rewritten.
1329            * wptKeyCache.cpp (free_attr_list): New.
1330            (parse_attr_list): New.
1331            (parse_attr_data): New.
1332            (keycache_update_photo): New.
1333            (keycache_update_photos): New.
1334            (gpg_keycache_update_key): Automatically reload photos if needed.
1335            * wptGPGUtil.cpp (create_process): New param @err. Change all
1336            callers.
1337            (map_tmpfile): New param @nread. Change all callers.
1338            (gpg_get_photoid_data): New.
1339            * wptKeyEditDlgs.cpp (keyedit_main_dlg_proc): Do not allow to
1340            add items to revoked keys.
1341            (subkey_init_list): Store gpgme key object.
1342            
1343    2005-12-29  Timo Schulz  <[email protected]>
1344    
1345            * wptKeygenDlg.cpp (keygen_dlg_proc): Request passphrase dynamically.
1346            (gpg_genkey_params): Simplified.
1347            * wptPreferencesDlg.cpp (prefs_dlg_proc): Fix problem with mutal
1348            exclusion of the dialog items.
1349            * wptAboutDlgs.cpp (about_winpt_dlg_proc): Allow to use ESC to
1350            quit the dialog.
1351            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Likewise.
1352            * wptMDSumDlg.cpp (mdsum_dlg_proc): Handle WM_SYSCOMMAND.
1353            (id2algo): New.
1354    
1355    2005-12-28  Timo Schulz  <[email protected]>
1356    
1357            * wptKeyserverDlg.cpp (show_imported_keys): Decode user IDs.
1358            * wptKeyRevokersDlg.cpp (key_revokers_dlg_proc): Likewise.
1359            * wptKeylist.cpp (keylist_udp_key): Likewise.
1360            * wptKeyManager.cpp (key_get_clip_info, key_get_info): Likewise.
1361            * wptClipDecryptDlg.cpp (clip_decrypt_dlg_proc): Fix problem
1362            when no signing key was found.
1363            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Properly decode
1364            user IDs.
1365            (translate_popup_strings): s/Revoke/Revoke Cert.
1366            * wptKeyEditDlgs.cpp (do_init_keylist): Do not assume a
1367            0x prefixed keyid.
1368            * wptKeyEditCB.cpp (editkey_command_handler): Also reset
1369            step in case of a bad passphrase.
1370            
1371    2005-12-27  Timo Schulz  <[email protected]>
1372    
1373            * wptListView.cpp (listview_set_view): New.
1374            (listview_del_column): New.
1375            * wptW32API.cpp (get_locale_date): New.
1376            (get_menu_state): New.
1377            (force_foreground_window): New.
1378            * wptVerifyList.cpp (strtimestamp): Support for
1379            locale date formats.
1380            * wptGPGUtil.cpp (gpg_revoke_cert): Handle bad
1381            passphrases.
1382            * wptKeyEditCB.cpp (editkey_command_handler): Immediately
1383            return when a bad passphrase was submitted.
1384            * wptKeyRevokersDlg.cpp (keyrevokers_dlg_proc): Change
1385            column order.
1386            * wptKeylist.cpp (keylist_upd_col): New.
1387            * wptKeyManagerDlg.cpp (update_ui_items): Deactivate
1388            'Revocation' for public keys.
1389            (translate_menu_strings): s/Revoke/Revoke Cert.
1390            (modify_listview_columns): New.
1391            
1392    2005-12-18  Timo Schulz  <[email protected]>
1393    
1394            * wptKeyManagerDlg.cpp (save_column_size): New.
1395            (restore_column_size): New.
1396            (keymanager_dlg_proc): Save and restore column sizes for
1397            the listview control.
1398            * wptKeyManager.cpp (key_get_info): New.
1399            (km_delete_keys): Use it here to have a consistent message.
1400            Use stored key context and not the column data.
1401            (km_enable_disable_key): Likewise.
1402            (km_send_to_keyserver): Likewise.
1403            (km_set_implicit_trust): Likewise.
1404            * wptKeylist.cpp (get_key_pubalgo2): New.
1405            
1406    2005-12-17  Timo Schulz  <[email protected]>
1407    
1408            * wptUTF8.cpp: Removed unused charset array.
1409            * wptSigList.cpp (siglist_build): Increase size for 'class'
1410            column.
1411            * wptGPG.cpp (get_gnupg_path): Simplified.
1412            * WinPT.cpp (load_gpg_env): New.
1413            (check_crypto_engine): Return type is now bool.
1414            * wptRegistry.cpp (is_gpg4win_installed): New.
1415            * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): More consistent
1416            dialog design.
1417            * wptKeyManagerDlg.cpp (translate_menu_strings): New.
1418            (translate_popupmenu_strings): New.
1419            * wptKeyEditDlgs.cpp (is_jpg_file): New.
1420            
1421    2005-12-13  Timo Schulz  <[email protected]>
1422    
1423            * wptCommonDlg.cpp (http_dlg_proc): Localized missing elements.
1424            * wptKeyManagerDlg.cpp (change_edit_menu): New.
1425            (change_key_menu): Renamed from...
1426            (menu_gpg_readonly): ..this.
1427            (clip_contains_pgpkey): New.
1428            (update_ui_items): Do not allow to sign expired keys.
1429            (keymanager_dlg_proc): Same for popup menu.
1430            * wptKeyPropsDlg.cpp (parse_preflist): Fixed string handling.
1431            * wptKeyCache.cpp (copy_uid_prefs):
1432            (gpg_keycache_sync): Copy uid prefs so the key property
1433            dialog show the correct values. Thanks to Shane.
1434            
1435    2005-12-11  Timo Schulz  <[email protected]>
1436    
1437            * wptW32API.cpp (get_file_version): New.
1438            * wptGPGUtil.cpp (create_process): Always hide window.
1439            * wptClipEditDlg.cpp (clipedit_dlg_proc): Use 'Close'
1440            instead of 'Exit'.
1441            * wptKeyManager.cpp (km_http_import): New filename
1442            generation code.
1443            (km_send_to_mail_recipient): Cleanups.
1444            * wptKeyEditDlg.cpp (showpref_dlg_proc): Localize dialog.
1445            * wptKeyManagerDlg.cpp (update_ui_items): Handle the case
1446            when multiple keys are selected.
1447            (popup_multiple): New.
1448            * WinPT.cpp (WinMain): Check that the PTD.dll and WinPT.exe
1449            file versions are equal. Rewrote --keymanager code.
1450            
1451    2005-12-08  Timo Schulz  <[email protected]>
1452    
1453            * wptKeyserverDlg.cpp (show_imported_keys): Enhanced.
1454            (hkp_recv_key2): Show user-id of the imported key instead
1455            of just the pattern.
1456            * wptFileCBS.cpp (read_cb): Changed to W32 API.
1457            (write_cb): Likewise. Create output file on demand.
1458            (gpg_file_data_new): Adjusted code for new API.
1459            * wptKeyEdit.cpp (cleanKey): New.
1460            * wptKeyEditCB.cpp (cmd_clean_handler): New.
1461            (editkey_command_handler): Call clean handler.
1462            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Sort
1463            keylist after inserting items.
1464            * wptFileManager.cpp (fm_set_status): Take care of
1465            cleartext sigs.
1466            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Make
1467            sure can be closed.
1468            
1469    2005-12-07  Timo Schulz  <[email protected]>
1470    
1471            * wptOwnertrustDlg.cpp (ownertrust_dlg_proc):
1472            Use 'Close' instead of 'Exit'.
1473            * wptKeyEditDlgs.cpp (keyedit_dlg_proc): Likewise.
1474            * wptGPG.cpp (gnupg_backup_keyrings): Use $APPDATA
1475            as the destination dir. Thanks to Werner.
1476            * wptRegistry.cpp (is_gpgee_installed): New.
1477            (regist_inst_winpt): Do not register file extensions
1478            if GPGee is available.
1479            * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Limit
1480            use of local vars.
1481            * wptPreferencesDlg.cpp (prefs_dlg_proc): Make sure
1482            no illegal backup mode is saved.
1483            * wptKeyserverDlg.cpp (show_imported_key): New.
1484            (hkp_recv_key2): Show imported keys if the blob
1485            contained more than one.
1486            
1487    2005-12-06  Timo Schulz  <[email protected]>
1488    
1489            * WinPT.cpp (WinMain): Load the gettext environment soon
1490            as possible so all 'first start' messages are localized.
1491            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): If a single key is
1492            received via the keyserver, return the gpgme key context on
1493            success and add it directly to the list.
1494            * wptKeyserverDlg.cpp (keyserver_dlg_proc): Support a param
1495            to store the key.
1496            (hkp_recv_key2): Add extra param for the fingerprint.
1497            (hkp_recv_key): Call hkp_recv_key2 without fingerprint.
1498            
1499    2005-12-02  Werner Koch  <[email protected]>
1500    
1501            * wptKeyEditDlgs.cpp (subkey_list_init): Avoid trigraphs.
1502    
1503    2005-12-01  Timo Schulz  <[email protected]>
1504    
1505            * wptClipVerifyDlg.cpp (clipverify_dlg_proc): Use new semantic
1506            for get_gpg_sigstat().
1507            * wptGPGME.cpp (get_gpg_sigstat): New. It is now a function.
1508            As a macro strings will not be translated at runtime.
1509            * wptKeyserverDlg.cpp (hkp_recv_key): Properly detect if we
1510            need to update the cache. Thanks to Jan-Oliver.
1511            * wptKeyImportStatusDlg.cpp (import_status_dlg_proc): Localized.
1512            
1513    2005-11-30  Timo Schulz  <[email protected]>
1514    
1515            * wptW32API.cpp (dialog_box_param): Removed LANG_DE code.
1516            * WinPT-en.rc: Removed string list.
1517            * wptFileSaveDlg.cpp (file_save_dlg_proc): Localized
1518            * wptKeylist.cpp (keylist_build): Cannot use global
1519            arrays for the columns due to gettext.
1520            
1521    2005-11-29  Timo Schulz  <[email protected]>
1522    
1523            * WinPT.cpp (WinMain): Modify --keymanager. If an instance
1524            is running, just send the command to open the manager.
1525            
1526    2005-11-25  Timo Schulz  <[email protected]>
1527    
1528            * wptKeyEditCB.cpp (addrev_cmd_handler): Avoid hanging
1529            process when the revoker is already there.
1530            
1531    2005-11-24  Timo Schulz  <[email protected]>
1532    
1533            * wptPassphraseCB.cpp (passphrase_callback_proc): Localize
1534            signing dialog items.
1535            * wptMainProc.cpp (confirm_delclip_dlg): Localize dialog items.
1536            * wptAboutDlgs.cpp (about_winpt_dlg_proc): Disable help for now.
1537            * wptMDSumDlg.cpp (mdsum_dlg_proc): Localize missing items.
1538            * wptKeylist.cpp (key_check_validity): Likewise.
1539            * wptKeyEditDlgs.cpp (keyedit_addsubkey_dlg_proc): Likewise.
1540            
1541    2005-11-22  Timo Schulz  <[email protected]>
1542    
1543            * wptCardEditCB.cpp (gpg_write): Due to removed _DEBUG
1544            macro debug output will be generated in release version.
1545            
1546    2005-11-21  Timo Schulz  <[email protected]>
1547    
1548            * WinPT.cpp (WinMain): Implement --stop switch.
1549            * wptClipEditDlg.cpp (clip_edit_dlg_proc): Localize
1550            missing string.
1551            * wptPreferencesDlg.cpp (prefs_dlg_proc): Likewise.
1552            * wptKeygenDlg.cpp (keygen_dlg_proc): Verify valid context
1553            first. Thanks to Ralf.
1554            * wptFileManagerDlg.cpp (update_ui_items): New.
1555            * wptFileManager.cpp (fm_set_status): New sigmode param.
1556            Changed all callers.
1557            
1558    2005-11-17  Timo Schulz  <[email protected]>
1559    
1560            * wptGPG.cpp (check_last_gnupg_access): Kludge to avoid that
1561            the cache will be loaded twice.
1562            * wptRegistry.cpp (regist_inst_winpt): More comments.
1563            * wptKeyManagerDlg.cpp (do_center_window): Make sure that
1564            neg. coordinates are never used.
1565            * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Localize all
1566            strings.
1567            * wptPassphraseCB.cpp (passphrase_callback_proc): Likewise.
1568            * wptFileManagerDlg.cpp (filemanager_dlg_proc): Localize menu
1569            and save 'AlwaysOnTop' in the registry.
1570            
1571    2005-11-16  Timo Schulz  <[email protected]>
1572    
1573            * WinPT.cpp (check_crypto_engine): Min is now GPG 1.4.2.
1574            * wptKeylist.cpp (keylist_add_key): Add disabled keys in list
1575            mode.
1576            * wptPreferencesDlg.cpp (prefs_dlg_proc): Localize all strings.
1577            * wptRegistry.cpp (regist_inst_winpt): Set install directory.
1578            Useful for other programs to figure out the path to the EXE.
1579            
1580    2005-11-14  Timo Schulz  <[email protected]>
1581    
1582            * wptGPG.cpp (check_gnupg_engine): Fix version check.
1583            * wptMainProc.cpp (winpt_main_proc): Check keyring
1584            file permissions always and do not use interative output
1585            when the windows session ends.
1586            * wptProxySettingsDlg.cpp (proxy_settings_dlg_proc):
1587            Localize all strings.
1588            * wptPassphraseDlg.cpp (passwd_dlg_proc): Likewise.
1589            * wptGPGPrefsDlg.cpp (gpg_prefs_dlg): Likewise.
1590            * wptKeyEditDlgs.cpp (do_init_keylist): Skip all
1591            non-valid keys.
1592            
1593    2005-11-12  Timo Schulz  <[email protected]>
1594    
1595            Fix more GCC warnings.
1596    
1597    2005-11-10  Timo Schulz  <[email protected]>
1598    
1599            * wptClipSignDlg.cpp (one_key_proc): Use
1600            release_gpg_passphrase_cb() to free the context.
1601            * wptListView.cpp (listview_deselect_all): New.
1602            * wptMAPI.cpp (mapi_send_pubkey): Works again.
1603            * wptFileManagerDlg.cpp (file_manager_dlg_proc): Support encrypt &
1604            zip.    
1605            * wptPassphraseCB.cpp (passphrase_callback_proc): Fix passphrase
1606            caching for signing operations.
1607            * wptKeyManager.cpp (km_send_to_mail_recipient): Works again.
1608            * wptFileManager.cpp (fm_send_file): Likewise.
1609            (fm_encrypt_into_zip): New.      
1610            
1611    2005-11-09  Timo Schulz  <[email protected]>
1612    
1613            * wptNLS.c (get_gettext_langid): Map user language id to
1614            printable gettext language strings.
1615            * wptRegistry.cpp (get_reg_entry_mo): Support for the
1616            gettext environment.
1617            * wptFileManager.cpp (fm_encrypt): Close all files before
1618            the wipe procedure is called.
1619            * wptVerlist.cpp (verlist_add_sig): Handle the case the
1620            issuer is not valid but the signature is.
1621            (verlist_add_sig_log): Likewise. Thanks to the folks on
1622            winpt-users.
1623            
1624    2005-11-08  Werner Koch  <[email protected]>
1625    
1626            * SAFE.ICO, SIGN.ICO: Fixed capitalization.
1627            * WinPT-en.rc: Ditto.
1628            * winpt_km.ico:  Moved from ../.
1629    
1630            * Makefile.am (resource_files): Add missing backslash.
1631    
1632    2005-11-08  Timo Schulz  <[email protected]>
1633    
1634            More minor changes to avoid GCC warnings.
1635            
1636            * wptGPG.cpp (check_homedir): Free memory in case of errors.
1637            (multi_gnupg_path): Add strict mode. If non-strict mode return
1638            the folder even if it does not exist.
1639            (check_for_gpgwin): New.
1640            * wptKeyserverDlg.cpp (hkp_recv_key): Make sure import_res is
1641            initialized.
1642            * wptRegistry.cpp (get_reg_entry_gpg4win): New.
1643            (get_reg_entry_mo): Support for gpg4win.
1644            
1645    2005-11-07  Timo Schulz  <[email protected]>
1646    
1647            * wptMainProc.cpp (winpt_main_proc): Disable
1648            some menu items when no secret key is available.
1649            
1650    2005-11-05  Timo Schulz  <[email protected]>
1651    
1652            More minor changes to avoid GCC warnings.
1653            
1654            * wptErrors.cp (winpt_strerror): Return w32
1655            formatted error and do not use 'break'.
1656            
1657    2005-11-04  Werner Koch  <[email protected]>
1658    
1659            * WinPT-en.rc: Fixed locations of icons.
1660    
1661    2005-11-03  Timo Schulz  <[email protected]>
1662    
1663            A lot of minor changes to avoid GCC warnings.
1664    
1665            * wptGPG.cpp (get_gnupg_keyring): Only check size for
1666            public keyring.
1667            * wptKeyManager.cpp (km_update_default_key_str): Do
1668            not issue a bug message when no secret key was found.
1669            * wptGPGPrefsDlg.cpp: Replace "" with NULL in the name struct.
1670            
1671    2005-11-02  Werner Koch  <[email protected]>
1672    
1673            * WinPT.cpp (WinMain): Disabled PTD version tests.
1674            (check_crypto_engine): Fixed version check for scard.
1675    
1676            * wptErrors.cpp (debug_end): Add dummy function.
1677    
1678            * Makefile.am (code_files): Added wptCardEditCB.cpp and
1679            wptKeyEditCB.cpp.
1680    
1681    2005-10-31  Werner Koch  <[email protected]>
1682    
1683            * wptCurrWnd.cpp: Include wptVersion.h to get prototypes of PTD
1684            functions.
1685    
1686            * wptKeyEditDlgs.cpp: Include oleauto.h
1687            * wptKeyEdit.cpp: Include time.h.
1688            * wptRegistry.cpp (gpg_filetypes): New from ../Include/wptGPG.h.
1689            * wptGPGUtil.cpp (gpg_manage_ownertrust): s/export/exportflag/.
1690    
1691            * Makefile.am (code_files): Add wptGPGUtil.cpp, wptCardEdit.cpp,
1692            wptKeyEdit.cpp and wptKeycache.cpp.
1693    
1694            * wptPassphraseCB.cpp: Fixed spelling of wptKeylist.h
1695            * wptImportList.cpp (implist_load): Use remove and not unlink.
1696            * wptGPG.cpp: Fixed spelling of wptGpgCmds.h
1697            * wptImportList.cpp (implist_load): Use remove and not unlink.
1698            * wptKeyManager.cpp (km_http_import): Ditto
1699            * wptMainProc.cpp: Include wptCrypto.h
1700            * wptKeyManager.cpp: Ditto.
1701            * wptFileManager.cpp: Ditto.
1702            * wptImportList.cpp (parse_colon_key): Need to cast argument for
1703            isdigit.  Include ctype.h.
1704            * wptGPG.cpp: Include shlobj.h.
1705    
1706            Fixed double inclusion of windows.h.
1707            
1708            * Makefile.am (bin_PROGRAMS): Don't build KeyManagerExe for now.
1709            * wptKeylist.cpp (get_key_created): Broke up trigraph.
1710            (get_key_status): Removed dangerous use of sprintf.  Still other
1711            flaws present, see comment.
1712    
1713            * wptCardPCSC.c: Don't include winscard.h.
1714            (pcsc_readerstate_t, pcsc_context_t): New.  Changed call users to
1715            use these types.
1716            (PCSC_): Added a lot of constants, all taked from GnuPG 1.9.
1717            (SCARD_S_SUCCESS): Changed all compares to test the value directly
1718            against zero.
1719    
1720            * WinPT.cpp: Include wptCrypto.h.
1721            (WinMain): Don't shard S. Removed usunsed variable SIZE.
1722            * Makefile.am (code_files): Actually add files by adding a first
1723            backslash.
1724            * wptMDSumDlg.cpp: Include wptCrypto.h.
1725            * wptProxySettingsDlg.cpp: Included ctype.h.
1726            * wptKeysigDlg.cpp: Fixed spelling of wptKeylist.h.
1727            * wptKeysignDlg.cpp: Ditto
1728            * wptKeyRevokersDlg.cpp: Ditto. Fixed spelling of wptW32API.h.
1729            * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Replaced unlink by remove.
1730            Removed unused variable.
1731            * wptClipVerifyDlg.cpp (show_notation_data): s/not/nota/ due to
1732            silly c++ operator synonyms.
1733            * wptKeyEditDlgs.cpp: Include time.h.
1734            * wptClipDecryptDlg.cpp: Include wptCrypto.h to define PGP_MESSAGE.
1735            * wptFileManagerDlg.cpp: Ditto.
1736            (space_wipefrees_dlg_proc): Replaced unlink by remove; it doesn't
1737            matter if it does an rmdir for a directory.
1738    
1739            Fixed include of resource.h which is not anymore in the top
1740            directory.
1741    
1742    2005-10-28  Werner Koch  <[email protected]>
1743    
1744            * wptProxySettingsDlg.cpp (check_number): Cast isdigit() arg to
1745            unsigned.  Never ever use a possible signed char as argument for
1746            ctype tests.  An alternative is to first test using isascii ().
1747            (keyserver_proxy_dlg_proc): Removed unused variable.
1748    
1749    2005-10-27  Timo Schulz  <[email protected]>
1750    
1751            * wptKeyPropsDlg.cpp (get_validity): Take care of disabled keys.
1752            * wptKeylist.cpp (keylist_add_key): Check global key flag to
1753            see if the key is disabled and not each subkey.
1754            (seclist_init): Likewise.
1755            * wptClipDecryptDlg.cpp (gpgme_op_clip_decrypt): Use
1756            gpgme_op_decrypt_verify.
1757            (clip_decrypt_dlg_proc): Fixed fingerprint
1758            to keyid conversation. This also fixes a crash.
1759            * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Likewise.
1760            * wptKeyEditDlgs.cpp (do_editkey_expire): Ask if the key
1761            already expired if the user wants to change the date.
1762            * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Replace old
1763            'v3 sig' option with the 'ask cert level' option. Sync
1764            with global preferences.
1765            * wptKeySignDlg.cpp (keysign_dlg_proc): Watch if the
1766            gpg.conf contains 'ask-cert-level'. If not disable button.
1767            * wptKeySigDlg.cpp (keysig_dlg_proc): Automatically disable
1768            the button when the key is available.
1769            Reload key directly, not the entire cache.
1770            
1771    2005-10-26  Timo Schulz  <[email protected]>
1772    
1773            * wptFileManager.cpp (is_floppy_disc): Prevent very unlikely but
1774            possible overflow.
1775            (is_openpgp_ext): Compare case insentensive.
1776            (add_single_file): New.
1777            (fm_add_opened_files): Support multi file selection.
1778            * wptKeyPropsDlg.cpp (do_change_ownertrust): Removed.
1779            * wptKeyManager.cpp (km_enable_disable_key): Do not set cache
1780            reload flag. Just update the single key.
1781            * wptFileManagerDlg.cpp (file_encrypt_dlg_proc): Remove static var
1782            and disable anonymize recipient for now.
1783    
1784            Begin to port code to GCC. Fix all warning issued by the gcc
1785            compiler.
1786    
1787    2005-10-25  Timo Schulz  <[email protected]>
1788    
1789            * wptGPGUtil.cpp (create_process): Hide window.
1790            * wptKeyPropsDlg.cpp (get_photo_tmpname): New.
1791            * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Remove
1792            static var 'enable'.
1793            * wptKeygenDlg.cpp (keygen_dlg_proc): Likewise.
1794            (gpg_genkey_params): Make sure all primary keys are capable
1795            for signing and certification.
1796            * wptKeySigDlg.cpp (is_sig): If no item is selected, return 0.
1797            * wptGPG.cpp (gnupg_access_keyring): Check return value for
1798            NULL. Noted by Ralf.
1799            (get_gnupg_prog): Simplified.
1800            (check_homedir): Fixed. Return 0 when the dir is successfully created.
1801            * wptKeyManagerDlg.cpp (km_file_import): Use the hourglass to
1802            indicate a pending GPG process.
1803            * wptFileManager.cpp (op_begin, op_end): New. Indicate an start
1804            and and of an operation. For now just the cursor changes.
1805            (fm_parse_command_line): Remove debug output. Thanks to Ralf again.
1806            * WinPT.cpp (WinMain): Check if there is already an instance and
1807            set a variable early as possible.
1808            (load_gettext): If a previous instance was found, do not output
1809            any errors. Kudos to Ralf.      
1810    
1811    2005-10-24  Timo Schulz  <[email protected]>
1812    
1813            * wptPassphraseCB.cpp (passphrase_callback_proc): Allow to use
1814            pre-defined recipients.
1815            (release_gpg_passphrase_cb): Release recipients.
1816            * wptKeyPropsDlg.cpp (keyprops_load_photo): Set photo-id
1817            validity if needed.
1818            (keyprops_dlg_proc): Issue a warning if the photo is valid.
1819    
1820    2005-10-23  Timo Schulz  <[email protected]>
1821    
1822            * wptFileManager.cpp (fm_get_file_type): Detect detached sigs.  
1823            * wptKeyList.cpp (keylist_cmp_cb): Take care of expired/revoked keys.
1824            (get_ext_validity): New.
1825            * wptFileVerifyDlg.cpp (file_verify_dlg_proc): Several cleanups.
1826            * wptClipEditDlg.cpp (load_clipboard): Factored out some code into
1827            this function.
1828            (load_clipboard_from_file): Likewise.
1829            (save_clipboard_to_file): New.
1830            * wptKeyManagerDlg.cpp (keyprops_dlg_proc): Fix stack overflow.
1831    
1832    2005-10-22  Timo Schulz  <[email protected]>
1833    
1834            Localized a lot of more strings.
1835    
1836            * wptMainProc.cpp (load_smartcard): New.
1837            * wptFileManager.cpp (fm_parse_command_line): Simplify code.
1838            (fm_check_armor_type): Add new arg. Change all callers.
1839            (fm_get_file_type): Likewise.
1840            * wptKeyPropsDlg.cpp (display_key_info): New.  
1841            (keyprops_show_photo): Factored out some code into..
1842            (keyprops_load_photo): ..this function.
1843    
1844    2005-10-21  Timo Schulz  <[email protected]>
1845    
1846            * wptFileManagerDlg.cpp (file_manager_dlg_proc): Use
1847            WM_INITPOPUPMENU to localize popup menu texts.
1848            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Likewise.
1849            * wptClipSignDlg.cpp (one_key_proc): Use wipememory instead of memset.  
1850    
1851    2005-10-20  Timo Schulz  <[email protected]>
1852    
1853            Now WinPT depends on GPG 1.4.3 and GPGME 1.2.0.
1854    
1855            * wptPassphraseCB.cpp (passphrase_cb): Complete card support.
1856            * wptCardEdit.cpp (genKey): Handle cancel case.
1857            * keycache.c: Renamed into...
1858            * wptKeyCache.cpp: ...this.
1859            * wptW32API.cpp (set_menu_text): Removed unused code.
1860            (set_menu_text_bypos): New.
1861            * wptCrypto.h: New.
1862            * wptMainProc.cpp (winpt_main_proc): Complete localize
1863            menu texts.
1864            * wptErrors.cpp (log_debug): Use a static var so the file
1865            is only opened once.
1866            (debug_end): Cleanup. Currently just close the log file.
1867            * wptErrors.h (wipememory): New.
1868            (sfree_if_alloc): Use it here.
1869            * WinPT.cpp (WinMain): Display the min. GPGME version which
1870            is needed in case of an error.
1871    
1872    2005-10-17  Timo Schulz  <[email protected]>
1873    
1874            Free all memory returned by the GPGME dll with gpgme_free ().
1875    
1876            s/GPG_ERR_CARD_REMOVED/GPG_ERR_CARD_NOT_PRESENT.
1877    
1878            * wptKeyEdit.cpp (getCardStatus): Remove dummy key.
1879            (list_handler): With user interaction to allow to insert
1880            the card into the reader.
1881            * wptKeyEditCB.cpp (gpg_edit_card): Likewise.
1882            (common_card_handler): Fixed incorrect command string.
1883            * wptKeyPropsDlg.cpp (get_card_type): New.
1884            (keyprops_dlg_proc): Show card information if present.
1885            * wptFileManager.cpp (secret_key_available): Make the code faster.
1886            
1887    
1888    2005-10-16  Timo Schulz  <[email protected]>
1889    
1890            * wptPassphraseCB.cpp (passphrase_cb): Fix problem
1891            with hanging GPG process on cancel.
1892            * keycache.c (gpg_keycache_release): Release all objects.
1893    
1894    2005-10-15  Timo Schulz  <[email protected]>
1895    
1896            * wptCardEdit.cpp (setResult, getResult): New.
1897            (reset): New.
1898            (getCardStatus): Check return codes and release all objects
1899            in case of errors.
1900            * wptCardEditCB.cpp (change_pin_handler): Call reset()
1901            before quit.
1902            (editcard_handler): Likewise.
1903            (common_card_handler): New.
1904            * wptCardDlg.cpp (card_changepin_dlg_proc): Also unmask
1905            the old PIN when 'Hide Typing' is disabled.
1906            * wptPassphraseCB.cpp (passphrase_cb): The card detection
1907            works again. Support to re-enter passphrase.
1908    
1909    2005-10-14  Timo Schulz  <[email protected]>
1910    
1911            * wptCardDlg.cpp (card_status): New fields for the
1912            fingerprint creation time. Display card info as title.
1913            (get_printable_version): New.
1914            * wptCardEditCB.cpp (editcard_handler): Fix problem
1915            with the counter comparison.
1916    
1917    2005-10-11  Timo Schulz  <[email protected]>
1918    
1919            Port to GPGME basically finished.
1920    
1921    2005-09-20  Timo Schulz  <[email protected]>
1922    
1923            * wptFileManagerDlg.cpp (file_secdel_confirm_dlg_proc):
1924            Do not use gpgme_recipients_t but the listview directly
1925            to add the selected files.
1926    
1927    2005-09-07  Timo Schulz  <[email protected]>
1928    
1929            * Make sure all GetOpenFileName filters are terminated by \0\0.
1930    
1931    2005-09-01  Timo Schulz  <[email protected]>
1932    
1933            * wptW32API.cpp (center_window): New argument for parent window.
1934            Change all callers.
1935            (center_window2): Likewise.
1936            * GPGME now can read gpgProgram entries with 'REG_EXPAND_SZ'.
1937            * wptGPG.cpp (gnupg_backup_options): Remove param. One backup
1938            file is enough. Changed all callers.
1939    
1940    2005-08-15  Timo Schulz  <[email protected]>
1941    
1942            * wptKeyEditDlgs.cpp (do_editkey_showpref): Take care of v3 keys.
1943            * wptGPGOptDlg.cpp (gpgopt_dlg_proc): Fixed name of title.
1944            * Make sure the passphrase is always overwritten before it is
1945            freed (or the function returns).
1946            * wptKeyPropDlg.cpp (get_pref_cipher): New.
1947            (keyprops_dlg_proc): Use it here.
1948    
1949    2005-08-06  Timo Schulz  <[email protected]>
1950    
1951            * wptGPGME.cpp (keycache_update): Reload OpenPGP parts
1952            of the secret key.
1953            (keycache_init): cache name of secret keyring.
1954            * wptKeyList.cpp (keylist_upd_key): Do not add long keyid.
1955            (get_key_type): Do not assume 'ultimate' means key pair.
1956            * wptKeyEditDlgs.cpp (diff_time): New.
1957            (keyedit_addsubkey_dlg_proc): Changed design and use
1958            diff_time. Drop checks for invalid keylength (< 1024, > 4096)
1959            because the combo box automatically handles this.
1960            * wptKeyManager.cpp (km_set_implicit_trust): Return error code.
1961            * wptGPG.cpp (get_backup_name): New.
1962            (gnupg_backup_keyrings): Rotate backup names, from 0..3.
1963            * wptClipImportDialog.cpp (clip_import_dlg_proc): Free memory.
1964            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Use 0x short keyid and
1965            not the long keyid.
1966    
1967    2005-08-05  Timo Schulz  <[email protected]>
1968    
1969            * wptListView.cpp (listview_set_item2): New.
1970            * wptKeyManager.cpp (km_check_if_protected): Directly
1971            retrieve gpgme_key_t from the list.
1972            (km_check_key_status): Likewise.        
1973            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Also use
1974            a human-readable name for secret key export.
1975            Reload just the keys which were affected by updates
1976            (edit-key).
1977            (update_key): New.
1978            * wptKeyList.cpp ((keylist_upd_key): Stripped down
1979            version of keylist_add_key.
1980            * wptKeyEditDlgs.cpp (keyedit_main_dlg_proc): Do not
1981            reload the keycache here, just flag 'update'. Give the
1982            control to the calling dialog.
1983            * wptKeySignDlg.cpp (keysign_dlg_proc): Use winpt_key_t
1984            as parameter. Changed all callers.
1985            Add date of expiration to the key info.
1986            (get_expire_date): New.
1987            Use a checkbox to allow to ask for the cert level.
1988            * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): Do no reload
1989            the cache.
1990    
1991    2005-08-04  Timo Schulz  <[email protected]>
1992    
1993            * wptListView.cpp (listview_scroll): New.
1994            (listview_get_item2): New.
1995            * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): If the
1996            item was found, make it visible with scrolling.
1997            * wptKeyManager.cpp (km_find_key): New.
1998            (keylist_subclass_proc): Support to handle some acceleators.
1999            Strg+{C, P, F, A}.
2000            (km_get_key_status): Get the gpgme_key_t object directly
2001            from the list.
2002            * wptGPGPRefsDlg.cpp (gpgprefs_dlg_proc): Also try to set
2003            the config file (if it exists).
2004            * wptKeySignDlg.cpp (keysign_dlg_proc): Use easier code
2005            to handle the click->activate situation.
2006            * wptPassphraseCB.cpp (passphrase_callback_proc): Likewise.
2007            Support to check the passphrase quality.
2008            * wptPassphraseDlg.cpp (passwd_dlg_proc): Likewise.
2009            (request_passphrase): Rename 'init' to 'flags' to allow more
2010            options.
2011            * wptMAPI.cpp: Check all *alloc results.
2012            * wptKeyGenDlg.cpp (keygen_dlg_proc): Use a rudimentary
2013            passphrase quality check.
2014            * wptMDSumDlg.cpp (mdsum_dlg_proc): Use md5/sha1sum file
2015            format and allow to save the checksum in a file.
2016            * wptKeyRevokeDlg.cpp (key_revoke_dlg_proc): Issue a warning
2017            when the PGP mode is disabled.
2018            wptKeyEditDlgs.cpp (do_editkey_primary): Return if just
2019            one user-ID exists.
2020            (keyedit_dlg_proc): Fixed index problem.
2021            * wptKeyPropsDlg.cpp (get_validity): New.
2022            (keyprops_dlg_proc): Actually show extended validity if possible.
2023            * wptKeyList.cpp (get_key_fpr): Support for old v3 format.
2024            (do_addkey): Use listview_add_item2 to store key as opaque
2025            param inside the list.
2026            * wptFileStatDlg.cpp (get_digest_algo): Add SHAxxx.
2027            (file_stat_dlg_proc): End dialog if no PGP data was found.
2028            (do_list_packets): Return the number of valid PGP packets
2029            of the file.
2030    
2031    2005-08-02  Timo Schulz  <[email protected]>
2032    
2033            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Instead of
2034            using 'Default Keyserver' add the real keyserver name to
2035            the menu.
2036            The rebuild command does not reload the cache any longer.
2037            Use ATTR_NAME + .asc as the filename and not keyid + .asc.
2038            * wptProxySettingsDlg.cpp (enable_proxy_auth): New.
2039            (keyserver_proxy_dlg_proc): Changed the design a little
2040            and add some additional sanity checks.
2041            * wptGPGParser.cpp (commit_gpg_options): Use W32 line endings.
2042            This fixes the problem that the GPG option dialog does not show
2043            very nice lines.
2044            * wptGPGOptDlg.cpp (gpgopt_dlg_proc): s/options/config.
2045            * wptKeySigDlg.cpp (keysig_dlg_proc): If a single key is selected
2046            check for 'NOKEY' before asking a keyserver.
2047            * wptKeyManager.cpp (km_delete_keys): Do not set 'refresh' flag.
2048            If a lot of keys were selected, ask if the user wants to confirm
2049            each delete procedure or allow to cancel the operation.
2050            * wptFileManagerDlg.cpp (file_import_dlg_proc): Display how much
2051            keys the file contain.
2052            * wptKeyList.cpp (get_key_algo): Beautified.
2053            (get_key_status): Drop the "[XYZ] Unknown" format, it is too
2054            confusing for users.
2055            * wptKeyManager.cpp (km_check_key_status): Adjustments for the
2056            new code.
2057            (km_check_for_seckey): Reset utrust parameter. Return -1 for
2058            invalid (exp+rev+dis) keys.
2059    
2060    2005-08-01  Timo Schulz  <[email protected]>
2061    
2062            * wptKeyserver.cpp (kserver_urlencode): Use unsigned for all given
2063            sizes.
2064            (check_IP_or_hostname): New.
2065            (kserver_load_conf): Correct finger URL parsing problem.
2066            (port_from_proto): New.
2067            (keyserver_load_conf): Guess the port.
2068            (keyserver_set_default): Allocate new buffer.
2069            (kserver_load_conf): Likewise.
2070            * wptHTTP.c (parse_reqline, parse_request): Removed.
2071            Use WinPT error code and remove all unused code.
2072            * wptKeyserverDlg.cpp (keyserver_dlg_proc): Properly handle finger URLs.
2073            * wptProxySettingsDlg.cpp (read_proxy): Simple check for
2074            invalid host/IP addresses.
2075            * wptGPG.cpp (multi_gnupg_path): Return allocated buffer.
2076            Changed all callers.
2077            * wptPreferencesDlg.cpp (prefs_dlg_proc): At the first start,
2078            automatically set 'backup to homedir'.
2079            * WinPT.cpp (WinMain): Use desktop window as the parent window
2080            to load 'first-start' dialogs.
2081            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Do not set 'refresh'
2082            flag after deleting keys.
2083            * wptFirstRunDlg.cpp (first_run_dlg_proc): Use a new structure
2084            for passing the arguments.
2085            * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Do not store "" for
2086            the OptFile. This was responsible for a lot of 'General Errors'
2087            after the first start related to key caching.
2088            Automatically set the gpg binary if possible.
2089    
2090    2005-07-22  Timo Schulz  <[email protected]>
2091    
2092            * wptMainProc.cpp (winpt_main_proc): Take care for shutdown
2093            messages and make sure WinPT make a keyring backup in this case.
2094            * wptGPGME.cpp (keycache_reload): Do not rebuild the signature
2095            cache each time. Just do it on startup.
2096            * wptKeyManager.cpp (km_key_is_v3): Use new ATTR_VERSION.
2097            * wptKeyEditDlgs.cpp (keyedit_main_dlg_proc): Assume the v3 flag
2098            was set by the calling function.
2099            * wptKeyGenDlg.cpp (keygen_wizard_dlg_proc): Ask for backups.
2100            (keygen_dlg_proc): Only add the generated key to the keycache
2101            and do not reload the entire cache.
2102            * wptKeyManager.cpp (km_delete_keys): Store the number of keys
2103            because in each loop iteration it will be new calculated.
2104            * wptListView.cpp (listview_del_items): Likewise.
2105            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Directly add the
2106            generated key to the list instead of reloading the entire cache.
2107            * wptKeyEditDlgs.cpp (parse_preflist): Support fpr SHAnnn.
2108    
2109  2005-05-09  Timo Schulz  <[email protected]>  2005-05-09  Timo Schulz  <[email protected]>
2110    
2111          * wptCommonDlg.cpp (http_file_dlg_proc): Renamed to..          * wptCommonDlg.cpp (http_file_dlg_proc): Renamed to..
# Line 276  Line 2148 
2148          (kserver_sendkey): Likewise.          (kserver_sendkey): Likewise.
2149          * wptProxySettingsDlg.cpp (check_number): New.          * wptProxySettingsDlg.cpp (check_number): New.
2150          (read_proxy): Check the entered port number.          (read_proxy): Check the entered port number.
2151          * wptKeySignDlg.cpp (sig_class_dlg_proc): Check default button.          * wptKeySignDlg.cpp (sig_class_dlg_proc): Check default button.
2152          * wptW32API.cpp (get_folder_dlg): Free memory.          * wptW32API.cpp (get_folder_dlg): Free memory.
2153    
2154  2005-04-11  Timo Schulz  <[email protected]>  2005-04-11  Timo Schulz  <[email protected]>
# Line 621  Line 2493 
2493    
2494          * WinPT.cpp (load_keyserver_conf): New. Factored out some code          * WinPT.cpp (load_keyserver_conf): New. Factored out some code
2495          from WinMain ().          from WinMain ().
2496          (WinMain): Load keyserver config at the begin. Thanks to Bodo A�ner          (WinMain): Load keyserver config at the begin. Thanks to Bodo Aßner
2497          * wptKeyserverDlg.cpp (keyserver_dlg_proc): If there is no keyserver          * wptKeyserverDlg.cpp (keyserver_dlg_proc): If there is no keyserver
2498          in the list control, add at least the internal default HKP server.          in the list control, add at least the internal default HKP server.
2499          * wptKeygenDlg.cpp (keygen_wizard_dlg_proc): NLS support.          * wptKeygenDlg.cpp (keygen_wizard_dlg_proc): NLS support.

Legend:
Removed from v.27  
changed lines
  Added in v.291

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26