* ccid-driver.c (struct ccid_driver_s): Add fields last_progress,
[gnupg.git] / scd / ChangeLog
1 2009-07-13  Werner Koch  <wk@g10code.com>
2
3         * ccid-driver.c (struct ccid_driver_s): Add fields last_progress,
4         progress_cb and progress_cb_arg.
5         (ccid_set_progress_cb): New.
6         (print_progress): New.
7         (ccid_transceive): Call print_progress for wait time extensions.
8         * apdu.c (struct reader_table_s): Add field set_progress_cb.
9         (new_reader_slot): Clear that field.
10         (open_ccid_reader): Set it to ..
11         (set_progress_cb_ccid_reader): ... new fucntion.
12         * app.c (print_progress_line): New.
13         (lock_reader): Add arg CTRL to set a progress callback and
14         change all callers to provide it.
15         (unlock_reader): Remove the progress callback.
16
17 2009-07-10  Werner Koch  <wk@g10code.com>
18
19         * iso7816.c (iso7816_compute_ds): Add args EXTENDED_MODE and LE.
20         Change all callers to use 0.
21         (iso7816_internal_authenticate): Add args EXTENDED_MODE and LE.
22         * app-openpgp.c (do_sign): Take exmode and Le from card
23         capabilities and pass them to iso7816_compute_ds.
24         (do_auth): Ditto for iso7816_internal_authenticate.
25         (change_keyattr): Reset CHV verification status.
26
27 2009-07-09  Werner Koch  <wk@g10code.com>
28
29         * app-openpgp.c (change_keyattr): New.
30         (do_writekey): Call it.
31         
32         * app-openpgp.c (does_key_exist): Add arg GENERATING.  Change
33         callers.
34
35 2009-06-30  Werner Koch  <wk@g10code.com>
36
37         * ccid-driver.c (ccid_transceive): Set RESYNCING flag.
38
39 2009-06-29  Werner Koch  <wk@g10code.com>
40
41         * ccid-driver.c (ccid_transceive): Add a hack to support extended
42         length for Omnikey readers.
43         (is_exlen_apdu): New.
44         (parse_ccid_descriptor): Track short+extended apdu exchange level.
45
46 2009-06-18  Werner Koch  <wk@g10code.com>
47
48         * app-openpgp.c (verify_chv2): Remove special case for v2 cards.
49         (get_public_key): Use extended mode.
50
51 2009-06-17  Werner Koch  <wk@g10code.com>
52
53         * iso7816.c (iso7816_get_data): Add arg EXTENDED_MODE.  Change all
54         callers.
55         * app-openpgp.c (data_objects): Use bit flags.  Add flag
56         TRY_EXTLENGTH.
57         (get_cached_data): Add arg TRY_EXTLEN and use it for iso7816_get_data.
58         (get_one_do): Use extended length APDU if necessary.
59
60 2009-06-10  Werner Koch  <wk@g10code.com>
61
62         * app-openpgp.c (store_fpr): Change first arg to app_t; adjust
63         callers.  Flush the cache.
64
65 2009-06-09  Werner Koch  <wk@g10code.com>
66
67         * app-openpgp.c (do_readcert): Return NOT_FOUND if the retrieved
68         data has a length of zero.
69         (do_getattr): Add EXTCAP subkey "sm".
70
71 2009-05-20  Werner Koch  <wk@g10code.com>
72
73         * app-openpgp.c (verify_chv2): Add case for v2 cards.
74         (verify_chv3): Factor some code out to ..
75         (build_enter_admin_pin_prompt): .. new.
76         (do_change_pin): Properly handle v2 cards.
77
78 2009-05-19  Werner Koch  <wk@g10code.com>
79
80         * scdaemon.c (create_server_socket): Use SUN_LEN.
81         (JNLIB_NEED_AFLOCAL): Define.
82
83 2009-05-13  Werner Koch  <wk@g10code.com>
84
85         * ccid-driver.c (abort_cmd): Add arg SEQNO and change callers.
86         (bulk_in): Retry on seqno mismatch.
87
88         * apdu.c (send_le): Release result_buffer.
89         (apdu_send_direct): Implemend extended length.
90         * command.c (cmd_apdu): Add option "--exlen".
91
92 2009-05-11  Werner Koch  <wk@g10code.com>
93
94         * apdu.c (send_le): Replace log_error by log_info.
95
96 2009-05-08  Werner Koch  <wk@g10code.com>
97
98         * app-openpgp.c (do_genkey): Allow larger key sizes.
99         (do_decipher): Ditto.
100         * iso7816.c (do_generate_keypair): Add arg EXTENDED_MODE an LE.
101         (iso7816_generate_keypair, iso7816_read_public_key): Ditto.
102         Changed all callers.
103         * apdu.c (send_le): Implement extended length return values.
104         
105         * ccid-driver.c (bulk_in): Retry on EAGAIN.
106         (abort_cmd): Change seqno handling.
107
108 2009-04-28  Werner Koch  <wk@g10code.com>
109
110         * app-help.c (app_help_count_bits): New.
111
112         * app-nks.c (switch_application): Detect mass signature cards.
113         Take care of new NEED_APP_SELECT flag.
114         (do_sign): Don't allow mass signature cards.
115         (all_zero_p): New.
116         (do_readkey): New.
117         (app_select_nks): Register do_readkey.
118
119 2009-04-01  Werner Koch  <wk@g10code.com>
120
121         * app-openpgp.c (do_setattr, do_writekey): Prepare for extended
122         length cards.
123
124 2009-03-31  Werner Koch  <wk@g10code.com>
125
126         * command.c (percent_plus_unescape): Remove.
127         (cmd_setattr): Use percent_plus_unescape_inplace.
128
129 2009-03-30  Werner Koch  <wk@g10code.com>
130
131         * app-nks.c (do_decipher): Make it work for TCOS 3.
132         * iso7816.c (iso7816_decipher): Add arg EXTENDED_MODE.
133         * apdu.c (apdu_send): Add arg EXTENDED_MODE and change all callers.
134         (apdu_send_le):  Ditto. 
135         (apdu_send_direct): Ditto, but not yet functional.
136         (send_le): Fix command chaining.  Implement extended length option.
137         * ccid-driver.c (ccid_transceive): Remove restriction on apdu length.
138         (struct ccid_driver_s): Add field IFSC.
139         (ccid_get_atr): Set IFSC.
140         (ccid_transceive): Use negotiated IFSC and support S(IFS) command.
141
142 2009-03-26  Werner Koch  <wk@g10code.com>
143
144         * command.c (cmd_pksign): Allow more hash algorithms.
145
146         * scdaemon.h (MAX_DIGEST_LEN): Change to 64.
147
148         * apdu.c (open_ccid_reader): Clear the is_to flag.
149
150         * app-nks.c (filelist): Add field KID.
151         (do_getattr): Change standard authentication key.
152         (do_sign): Setup a security environment for TCOS 3 cards and support
153         all SHA-2 algorithms.
154
155 2009-03-24  Werner Koch  <wk@g10code.com>
156
157         * command.c (struct server_local_s): Add flag
158         APP_CTX_MARKED_FOR_RELEASE.
159         (do_reset): Set the flag.
160         (open_card): Act on this flag.
161         * app-common.h (struct app_ctx_s): Add flag NO_REUSE.
162         (application_notify_card_reset): Set the flag.
163         * app.c (select_application, release_application): Take care of
164         that flag.
165
166 2009-03-20  Werner Koch  <wk@g10code.com>
167
168         * app-nks.c (keygripstr_from_pk_file): Fix for TCOS 3 cards.
169
170 2009-03-18  Werner Koch  <wk@g10code.com>
171
172         * apdu.c (open_pcsc_reader_wrapped): Use close_all_fds.
173
174         * command.c (cmd_learn): Add option --keypairinfo.
175         * app.c (app_write_learn_status): Add arg FLAGS.
176         * app-common.h (struct app_ctx_s): Add arg FLAGS to LEARN_STATUS.
177         Change all implementors.
178         * app-p15.c (do_learn_status): Take care of flag bit 0.
179         * app-nks.c (do_learn_status, do_learn_status_core): Ditto.
180
181 2009-03-10  Werner Koch  <wk@g10code.com>
182
183         * app-openpgp.c (send_key_attr): New.
184         (do_getattr): New attribute KEY_ATTR.
185         * command.c (send_status_direct): New.
186
187 2009-03-06  Werner Koch  <wk@g10code.com>
188
189         * app-nks.c (do_learn_status): Factor code out to..
190         (do_learn_status_core): .. new.
191         (do_readcert, do_sign, do_decipher): Switch to SigG if needed.
192         (verify_pin): Use DESC also for keypad based verify.
193
194 2009-03-05  Werner Koch  <wk@g10code.com>
195
196         * app-openpgp.c (verify_a_chv): Remove special case for keypads.
197         (verify_chv3): Ditto.
198
199         * app-nks.c (get_chv_status): New.
200         (parse_pwidstr): New.
201         (verify_pin): Add args PWID and DESC and use them.  Remove the
202         CHV1 caching.
203         (do_change_pin): Allow PIN selection and add reset mode.
204         (do_learn_status): Use NKS-NKS3 tag for TCOS 3 cards.
205         (do_readcert, do_sign): Allow NKS-NKS3 tag.
206
207 2009-03-04  Werner Koch  <wk@g10code.com>
208
209         * app-nks.c (do_getattr): New.
210         (app_select_nks): Register it.
211         (verify_pin): Factor some code out to...
212         (basic_pin_checks): New.
213         (do_change_pin): Call the basic check.
214         (app_select_nks): Move AID to ..
215         (aid_nks): .. new.
216         (aid_sigg): New.
217         (switch_application): New.
218         (do_getattr, do_learn_status, do_readcert, do_sign, do_decipher) 
219         (do_change_pin, do_check_pin): Make sure we are in NKS mode.
220
221 2009-03-03  Werner Koch  <wk@g10code.com>
222
223         * command.c (scd_command_handler): Remove dereference of STOPME
224         after free.
225
226 2009-02-27  Werner Koch  <wk@g10code.com>
227
228         * app.c (get_supported_applications): New.
229         * command.c (cmd_getinfo): New subcommand "app_list"
230         (cmd_killscd): New.
231         (register_commands): Register command KILLSCD.
232         (struct server_local_s): Add field STOPME.
233         (scd_command_handler): Act upon this.
234
235 2009-02-25  Werner Koch  <wk@g10code.com>
236
237         * apdu.c (apdu_get_status): Factor all code out to ...
238         (apdu_private_get_status): .. new.  Add arg NO_ATR_RESET.
239         (apdu_connect): Call new function.
240
241         * scdaemon.c: New option --debug-log-tid.
242         (tid_log_callback): New.
243         (main): Move debug-wait code after debug stream init.
244
245 2009-02-24  Werner Koch  <wk@g10code.com>
246
247         * ccid-driver.c (ccid_get_atr): Move debug output to ..
248         (print_r2p_parameters): .. new.
249         (print_r2p_header, print_pr_data, print_r2p_unknown)
250         (print_r2p_datablock, print_r2p_slotstatus, print_r2p_escape) 
251         (print_r2p_datarate): New.
252         (bulk_in): Call parameter printing.
253         (ccid_set_debug_level): Add debug level 3.
254         (convert_le_u16): New.
255         (print_p2r_header, print_p2r_iccpoweron, print_p2r_iccpoweroff) 
256         (print_p2r_getslotstatus, print_p2r_xfrblock) 
257         (print_p2r_getparameters, print_p2r_resetparameters) 
258         (print_p2r_setparameters, print_p2r_escape, print_p2r_iccclock) 
259         (print_p2r_to0apdu, print_p2r_secure, print_p2r_mechanical) 
260         (print_p2r_abort, print_p2r_setdatarate, print_r2p_unknown): New.
261         (bulk_out): Add arg NO_DEBUG and change all callers to pass 0.
262         Call parameter printing.
263         (ccid_slot_status): Call with NO_DEBUG set.
264         (abort_cmd, send_escape_cmd, ccid_get_atr, ccid_get_atr) 
265         (ccid_transceive_apdu_level, ccid_transceive) 
266         (ccid_transceive_secure): Remove old debug print code.
267
268 2009-02-12  Werner Koch  <wk@g10code.com>
269
270         * command.c (cmd_getinfo): Add new subcommand "deny_admin".
271
272 2009-01-28  Werner Koch  <wk@g10code.com>
273
274         * scdaemon.c (main): Make --allow-admin the default and make the
275         option a dummy.
276
277 2009-01-27  Werner Koch  <wk@g10code.com>
278
279         * app-geldkarte.c: Changed to use an AID.
280
281         * app.c (app_munge_serialno): Add case for no serialno.
282         (app_get_serial_and_stamp): Ditto.
283
284 2009-01-26  Werner Koch  <wk@g10code.com>
285
286         * app-geldkarte.c: New.
287         * Makefile.am (card_apps): Add new file.
288         * app.c (select_application): Test for geldkarte.
289
290 2009-01-12  Werner Koch  <wk@g10code.com>
291
292         * command.c (send_client_notifications) [HAVE_W32_SYSTEM]: Fix
293         brackets.
294
295 2009-01-08  Werner Koch  <wk@g10code.com>
296
297         * iso7816.c (iso7816_read_record, iso7816_read_binary): Pass 0 for
298         L_e because the problem with the CCID driver has gone.
299         (iso7816_apdu_direct): New.
300
301         * app-nks.c (filelist): Add NKS_VER field.  Add NKS 3 specific
302         entries.
303         (app_local_s, do_deinit): New.
304         (get_nks_version): New.
305         (app_select_nks): Setup local data.
306         (keygripstr_from_pk_file): Replace SLOT by APP and take care of
307         NKS version > 2.
308         (do_learn_status): Take care of NKS version.
309
310 2009-01-05  Werner Koch  <wk@g10code.com>
311
312         * apdu.c (apdu_get_status): Save the last status.
313
314 2008-12-18  Werner Koch  <wk@g10code.com>
315
316         * ccid-driver.c (abort_cmd): New. 
317         (bulk_in): Call abort_cmd after severe errors.
318
319         * apdu.c (reader_table_s): Add field ANY_STATUS.
320         (new_reader_slot): Clear it.
321         (apdu_get_status): Use ANY_STATUS to update the change counter.
322         Remove the use of the flag bit from LAST_STATUS everywhere.
323         * command.c (update_reader_status_file): Factor code out to ...
324         (send_client_notifications): New.  Track signals already sent.
325         (update_reader_status_file): Shutdown the reader  after a failed
326         apdu_get_status.
327
328 2008-12-09  Werner Koch  <wk@g10code.com>
329
330         * scdaemon.c (main): Call i18n_init before init_common_subsystems.
331
332 2008-12-08  Werner Koch  <wk@g10code.com>
333
334         * scdaemon.c (handle_connections): Sync ticker to the next full
335         interval.
336         (TIMERTICK_INTERVAL_USEC): Change to 500ms.
337
338 2008-12-05  Werner Koch  <wk@g10code.com>
339
340         * app-openpgp.c (app_local_s): Add field ALGO_ATTR_CHANGE.
341         (app_select_openpgp): Parse new capability.
342         (show_caps): Show new capability.
343
344 2008-12-03  Werner Koch  <wk@g10code.com>
345
346         * scdaemon.c (opts): Use ARGPARSE_ macros.  Add option
347         --card-timeout.
348         * command.c (update_reader_status_file): Implement it.
349
350 2008-11-18  Werner Koch  <wk@g10code.com>
351
352         * scdaemon.c (make_libversion): New.
353         (my_strusage): Print libgcrypt and libksba version.
354
355 2008-11-03  Werner Koch  <wk@g10code.com>
356
357         * command.c (server_local_s): Add field DISCONNECT_ALLOWED.
358         (cmd_disconnect): Implement command.
359         (open_card): Reset disconnect flag.
360         (update_reader_status_file): Disconnect if allowed.
361
362         * app-common.h (app_ctx_s): Remove INITIALIZED.  Make REF_COUNT
363         unsigned. 
364         * app.c (select_application): Remove INITIALIZED.
365         (app_write_learn_status, app_readcert, app_readkey, app_getattr)
366         (app_setattr, app_sign, app_decipher, app_writecert)
367         (app_writekey, app_get_challenge, app_change_pin, app_check_pin):
368         Replace INITIALIZED by REF_COUNT check.
369         (application_notify_card_removed): Rename to ..
370         (application_notify_card_reset): .. this.  Change all callers.
371         * command.c (do_reset): Call application_notify_card_reset after
372         sending a reset.
373         (update_reader_status_file): Add arg SET_CARD_REMOVED.
374         (scd_update_reader_status_file): Pass true for new flag.
375         (do_reset): Pass false for new flag.
376
377         * app.c (app_get_serial_and_stamp): Use bin2hex.
378         * app-help.c (app_help_get_keygrip_string): Ditto.
379         * app-p15.c (send_certinfo, send_keypairinfo, do_getattr): Ditto.
380         * app-openpgp.c (send_fpr_if_not_null, send_key_data) 
381         (retrieve_fpr_from_card, send_keypair_info): Ditto.
382         * app-nks.c (keygripstr_from_pk_file): Ditto.
383         * command.c (cmd_apdu): Ditto.
384
385 2008-10-21  Marcus Brinkmann  <marcus@g10code.com>
386
387         * command.c (open_card): If connect error is SW_HOST_NO_CARD,
388         return a more descriptive error.
389
390 2008-10-20  Werner Koch  <wk@g10code.com>
391
392         * pcsc-wrapper.c (read_32): Use provided arg and not stdin.  Is
393         called with stdin, though.
394         (handle_close): Mark unused arg.
395         (handle_status, handle_reset): Ditto.
396
397         * ccid-driver.c (ccid_check_card_presence): Mark not yet used arg.
398
399         * scdaemon.c (scd_deinit_default_ctrl): Mark unused arg.
400         * command.c (cmd_unlock, cmd_restart, cmd_disconnect): Ditto.
401         * apdu.c (ct_get_status): Ditto.
402         (ct_send_apdu, pcsc_send_apdu_wrapped)
403         (apdu_open_remote_reader): Ditto.
404         * app.c (select_application): Ditto.
405         * app-openpgp.c (do_writecert, do_change_pin, do_writekey): Ditto.
406         * app-nks.c (do_change_pin, do_check_pin): Ditto.
407
408 2008-10-16  Werner Koch  <wk@g10code.com>
409
410         * command.c (cmd_disconnect): New dummy command.
411         (register_commands): Register command.
412
413 2008-10-15  Werner Koch  <wk@g10code.com>
414
415         * command.c (scd_command_handler): Return true if there is no more
416         active session.
417         * scdaemon.c (start_connection_thread): Set shutdown flag if
418         requested by command handler.
419         (main): Make PIPE_SERVER module global.
420         (handle_connections): Disable listen_fd if a shutdown is pending.
421
422 2008-10-14  Werner Koch  <wk@g10code.com>
423
424         * apdu.c (reader_table_s): Add fields connect_card and
425         disconnect_card.
426         (new_reader_slot): Set them to NULL.
427         (apdu_connect, apdu_disconnect): New.
428         (apdu_close_reader, apdu_shutdown_reader): Call apdu_disconnect.
429         (connect_pcsc_card, disconnect_pcsc_card): new.
430         (reset_pcsc_reader_direct): Implement in terms of
431         disconnect_pcsc_card and connect_pcsc_card.
432         (apdu_get_atr): Return NULL if there is no ATR.
433         * sc-copykeys.c (main): Add call to apdu_connect.
434         * command.c (open_card): Ditto.
435
436         * apdu.h (SW_HOST_ALREADY_CONNECTED): New.
437         (APDU_CARD_USABLE, APDU_CARD_PRESENT, APDU_CARD_ACTIVE): New.
438         * apdu.c: Replace constants by the new macros.
439         (open_pcsc_reader): Factor  code out to ...
440         (open_pcsc_reader_direct, open_pcsc_reader_wrapped): New.
441         (reset_pcsc_reader): Factor code out to ...
442         (reset_pcsc_reader_direct, reset_pcsc_reader_wrapped): New.
443         (pcsc_get_status): Factor code out to ...
444         (pcsc_get_status_direct, pcsc_get_status_wrapped): New.
445         (pcsc_send_apdu): Factor code out to ...
446         (pcsc_send_apdu_direct, pcsc_send_apdu_wrapped): New.
447         (close_pcsc_reader): Factor code out to ...
448         (close_pcsc_reader_direct, close_pcsc_reader_wrapped): New.
449
450         * command.c (update_reader_status_file): Open the reader if not
451         yet done.
452
453         * scdaemon.c (TIMERTICK_INTERVAL_SEC, TIMERTICK_INTERVAL_USEC):
454         New to replace TIMERTICK_INTERVAL.  Chnage from 2s (4 under W32)
455         to 250ms.
456
457 2008-10-13  Werner Koch  <wk@g10code.com>
458
459         * command.c (option_handler) [W32]: Use strtoul with base 16.
460         (update_reader_status_file) [W32]: Set Event.
461         (scd_command_handler): Use INT2FD to silent warning.
462
463 2008-09-29  Werner Koch  <wk@g10code.com>
464
465         * scdaemon.h (GCRY_MD_USER): Rename to GCRY_MODULE_ID_USER.
466         (GCRY_MD_USER_TLS_MD5SHA1): Rename to MD_USER_TLS_MD5SHA1 and
467         change all users.
468
469 2008-09-28  Marcus Brinkmann  <marcus@g10code.com>
470
471         * apdu.c (pcsc_get_status): Fix last change.
472
473 2008-09-25  Werner Koch  <wk@g10code.com>
474
475         * app-openpgp.c (do_setattr): Do not allow setting of the reset
476         code.
477         (do_change_pin): Allow setting of the reset code.
478
479 2008-09-24  Werner Koch  <wk@g10code.com>
480
481         * app-openpgp.c (verify_chv3): Set the did_chv3 flag which was
482         accidently removed on 2008-03-26.
483         (verify_chv2): Revert last change.
484         (do_change_pin): Do not change CHV2. Add reset code logic for v2
485         cards.
486         * iso7816.c (iso7816_reset_retry_counter_with_rc): New.
487         
488         * app-openpgp.c (add_tlv, build_privkey_template): New.
489         (do_writekey): Support v2 keys and other key lengths than 1024.
490         * iso7816.c (iso7816_put_data_odd): New.
491
492 2008-09-23  Werner Koch  <wk@g10code.com>
493
494         * app-openpgp.c (do_sign): Support SHA-2 digests.
495         (verify_chv2): No CHV auto-sync for v2 cards.
496         (do_auth): Allow 2048 bit keys.
497         (parse_algorithm_attribute): New.
498         (rsa_key_format_t): New.
499         (struct app_local_s): Add struct KEYATTR.
500
501 2008-09-23  Marcus Brinkmann  <marcus@g10code.com>
502
503         * apdu.c (pcsc_get_status): Be more relaxed with the usable flag
504         under Windows.
505
506 2008-09-23  Werner Koch  <wk@g10code.com>
507
508         * app-openpgp.c (do_setattr): Use command chaining for long
509         values.
510         * iso7816.c (iso7816_put_data): Add arg EXTENDED_MODE. Change all
511         callers.
512         * apdu.c (apdu_send_simple): Add arg EXTENDED_MODE. Change all
513         callers.
514         (send_le): Implement command chaining.
515         * ccid-driver.c (ccid_transceive_apdu_level): Increase allowed
516         APDU size.
517         (ccid_transceive): Alow for APDUS of up to 259 bytes.
518         * apdu.h: Add new SW_ codes.
519
520 2008-09-16  Werner Koch  <wk@g10code.com>
521
522         * command.c (cmd_writecert): New.
523         (register_commands): Register it.
524         * app-common.h (app_ctx_s): Add member WRITECERT.
525         * app.c (app_writecert): New.
526         * app-openpgp.c (do_writecert): New.
527         (parse_historical): New.
528         (show_extcap): New.
529         (dump_all_do): Print only the length of longs DOs.
530         * command.c (cmd_writekey, cmd_apdu, cmd_pksign)
531         (cmd_passwd): Replace open coding by skip_options.
532
533 2008-08-30  Moritz  <moritz@gnu.org>
534
535         * scdaemon.c (main): Use estream_asprintf instead of asprintf.
536         * command.c (update_reader_status_file): Likewise.
537         (cmd_serialno): Use estream_asprintf instead of asprintf
538         and xfree instead of free to release memory allocated
539         through (estream_)asprintf.
540         (cmd_learn): Likewise.
541         (pin_cb): Likewise.
542         * app-openpgp.c (get_public_key): Likewise.
543
544 2008-08-18  Werner Koch  <wk@g10code.com>
545
546         * app-openpgp.c (do_setattr): Fix test for v2 cards.
547
548 2008-08-11  Werner Koch  <wk@g10code.com>
549
550         * apdu.c (reset_pcsc_reader, open_pcsc_reader)
551         (reset_rapdu_reader, open_rapdu_reader): Allow ATRs of up to 33
552         bytes.  Provide maximum size of ATR buffer using DIM.  Such long
553         ATR are never seen in reality but the PC/SC library of MAC OS X is
554         just too buggy.  Reported by Ludovic Rousseau.  Fixes bug #948.
555
556 2008-07-30  Werner Koch  <wk@g10code.com>
557
558         * app-openpgp.c (verify_a_chv): Use xtrymalloc and make the prompt
559         for CHV2 more user friendly.
560
561 2008-07-03  Werner Koch  <wk@g10code.com>
562
563         * app-openpgp.c (do_readcert): New.
564         (app_local_s): Add fields IS_V2 and MAX_CERTLEN_3.
565         (app_select_openpgp): Set them and register do_readcert.
566         (do_setattr): Allow storing of the certificate.
567
568 2008-06-25  Werner Koch  <wk@g10code.com>
569
570         * app-dinsig.c (do_sign): Allow for SHA256.
571
572 2008-06-24  Werner Koch  <wk@g10code.com>
573
574         * app-common.h (app_ctx_s): Renamed reset_mode parameter of
575         change_pin to mode_Flags and make it an unsigned int.
576         (APP_CHANGE_FLAG_RESET, APP_CHANGE_FLAG_NULLPIN): New.
577         * app-openpgp.c (do_change_pin): Adjust for that.
578
579         * command.c (cmd_passwd): Add option --nullpin.
580         * app-nks.c (do_check_pin, do_change_pin): New.
581         (app_select_nks): Register new functions.
582
583 2008-04-21  Moritz Schulte  <mo@g10code.com>  (wk)
584
585         * app-openpgp.c (verify_a_chv): Make use of the default CHV flag.
586
587 2008-03-26  Werner Koch  <wk@g10code.com>
588
589         * app-openpgp.c (verify_chv3): Support the keypad.
590
591 2008-02-09  Marcus Brinkmann  <marcus@g10code.de>
592
593         * scdaemon.c (main): Use CONFIG_FILENAME as filename if it is set
594         in gpgconf-list output.
595
596 2007-12-10  Werner Koch  <wk@g10code.com>
597
598         * app-openpgp.c (do_decipher): Take care of cryptograms shorter
599         that 128 bytes.  Fixes bug#851.
600
601 2007-11-14  Werner Koch  <wk@g10code.com>
602
603         * scdaemon.c (main): Pass STANDARD_SOCKET flag to
604         create_server_socket.
605         
606 2007-11-13  Werner Koch  <wk@g10code.com>
607
608         * scdaemon.c (start_connection_thread): Do not call
609         assuan_sock_check_nonce if we are running in --server mode.
610
611 2007-11-07  Werner Koch  <wk@g10code.com>
612
613         * scdaemon.h: Remove errors.h.
614
615 2007-10-02  Werner Koch  <wk@g10code.com>
616
617         * command.c (cmd_getinfo): Add "pid" subcommand.
618
619 2007-10-01  Werner Koch  <wk@g10code.com>
620
621         * scdaemon.c (create_server_socket): Use Assuan socket wrappers
622         and remove Windows specific code.
623         (socket_nonce): New.
624         (start_connection_thread): Check nonce.
625
626 2007-09-14  Marcus Brinkmann  <marcus@g10code.de>
627
628         * scdaemon.c (main): New variable STANDARD_SOCKET, which is 1 for
629         W32 targets.  Use it for create_socket_name.
630
631 2007-08-07  Werner Koch  <wk@g10code.com>
632
633         * tlv.c, tlv.h:  Move to ../common/.
634
635 2007-08-02  Werner Koch  <wk@g10code.com>
636
637         * scdaemon.c: Include gc-opt-flags.h and remove their definition
638         here.
639
640 2007-08-01  Werner Koch  <wk@g10code.com>
641
642         * apdu.c (send_le): Implement exact length hack.  Suggested by
643         Sten Lindgren.
644
645 2007-07-05  Werner Koch  <wk@g10code.com>
646
647         * command.c (has_option_name, skip_options): New.
648         (cmd_genkey): Add option --timestamp.
649         (cmd_writekey): Enter confidential mode while inquiring the key data.
650
651         * app.c (app_genkey): Add arg CREATETIME.
652         * app-common.h (app_ctx_s): Likewise
653         * app-openpgp.c (do_genkey): Ditto.  Use it.
654
655
656 2007-07-04  Werner Koch  <wk@g10code.com>
657
658         * command.c (cmd_getinfo): New subcommand "version".
659
660         * scdaemon.c (TIMERTICK_INTERVAL): New.
661         (handle_connections) [W32]: Enable a dummy sigs event.
662         (handle_connections): Use a proper count for select and not
663         FD_SETSIZE.
664         (fixed_gcry_pth_init, main): Kludge to fix pth initialization.
665
666 2007-06-21  Werner Koch  <wk@g10code.com>
667
668         * scdaemon.h (ctrl_t): Remove.  It is now declared in ../common/util.h.
669
670 2007-06-18  Marcus Brinkmann  <marcus@g10code.de>
671
672         * scdaemon.c (main): Percent escape output of --gpgconf-list.
673
674 2007-06-12  Werner Koch  <wk@g10code.com>
675
676         * scdaemon.c (main): Replace some calls by init_common_subsystems.
677
678 2007-06-11  Werner Koch  <wk@g10code.com>
679
680         * Makefile.am (scdaemon_LDADD): Use libcommonpth macro.
681
682         * command.c (initialize_module_command): New.
683         * scdaemon.c (main) [W32]: Do not use sigpipe code.
684         (main): Call initialize_module_command.
685
686 2007-06-06  Werner Koch  <wk@g10code.com>
687
688         * app-openpgp.c (do_sign): Fix arithmetic on void*.
689
690         * app.c (dump_mutex_state) [W32]: Handle the W32Pth case.
691
692         * apdu.c: Remove dynload.h.
693
694         * scdaemon.c (i18n_init): Remove.
695
696 2007-04-20  Werner Koch  <wk@g10code.com>
697
698         * sc-copykeys.c (my_gcry_logger): Removed.
699         (main): Call setup_libgcrypt_logging helper.
700         * scdaemon.c (my_gcry_logger): Removed.
701         (main): Call setup_libgcrypt_logging helper.
702
703 2007-04-03  Werner Koch  <wk@g10code.com>
704
705         * command.c (cmd_getinfo): New subcommand "reader_list".
706         * ccid-driver.c (scan_or_find_devices): Ignore EBUSY in scan mode
707         for special transports.
708
709 2007-03-07  Werner Koch  <wk@g10code.com>
710
711         * app-dinsig.c: Include i18n.h.
712         (verify_pin): Support PIN pads.
713         * app-nks.c (verify_pin): Ditto.
714
715         * ccid-driver.c (bulk_in): Handle time extension before checking
716         the message type.
717         (ccid_transceive_secure): Support the Cherry XX44 keyboard.
718         Kudos to the nice folks at Cherry for helping with that.
719
720 2007-02-18  Werner Koch  <wk@g10code.com>
721
722         * scdaemon.c (DEFAULT_PCSC_DRIVER): Add a default for OS X.
723
724 2007-01-25  Werner Koch  <wk@g10code.com>
725
726         * Makefile.am (scdaemon_LDADD): Added LIBICONV.  Noted by Billy
727         Halsey.
728
729 2006-12-21  Werner Koch  <wk@g10code.com>
730
731         * app-openpgp.c (verify_chv2): Factored most code out into...
732         (verify_a_chv): ... new.
733         (do_sign): Factored verification code out to new function and
734         take care of a keypad entered PIN.
735         (compare_fingerprint): Print an additional diagnostic.
736
737 2006-11-28  Werner Koch  <wk@g10code.com>
738
739         * apdu.c (send_le, apdu_send_direct): Increase RESULTLEN to 258 to
740         allow for full 256 byte and the status word.  This might break
741         some old PC/SC drivers or cards, but we will see.  Suggested by
742         Kenneth Wang.
743
744 2006-11-23  Werner Koch  <wk@g10code.com>
745
746         * command.c (scd_command_handler): Fixed use of CTRL.
747
748 2006-11-21  Werner Koch  <wk@g10code.com>
749
750         * Makefile.am (libexec_PROGRAMS): Put pscs-wrapper into libexec.
751         Renamed to gnupg-pcsc-wrapper.
752         * apdu.c (open_pcsc_reader): Use GNUPG_LIBEXECDIR to accces the
753         wrapper.  Suggested by Eric Dorland.
754
755 2006-11-20  Werner Koch  <wk@g10code.com>
756
757         * app-openpgp.c (verify_chv2): Support for keypads (only CHV2).
758
759         * ccid-driver.c (ccid_transceive_secure): Made it work for Kaan
760         and SCM.
761
762 2006-11-17  Werner Koch  <wk@g10code.com>
763
764         * ccid-driver.c (scan_or_find_devices): Use DEBUGOUT_2 instead of
765         log_debug.  Removed few other log_debug.
766
767         * iso7816.c (iso7816_check_keypad): Allow for a SW of 0.
768
769         * command.c (pin_cb): New mode to prompt for a keypad entry.
770
771         * scdaemon.c (main) <gpgconf-list>: Add disable-keypad.
772
773 2006-11-15  Werner Koch  <wk@g10code.com>
774
775         * app-p15.c (read_ef_odf): Cast one printf arg.
776
777         * scdaemon.h (struct server_control_s): Add field THREAD_STARTUP.
778         * command.c (scd_command_handler): Add new arg CTRL.
779         * scdaemon.c (scd_init_default_ctrl): Made static.
780         (scd_deinit_default_ctrl): New.
781         (start_connection_thread): Call init/deinit of ctrl.
782         (handle_connections): Allocate CTRL.
783
784         * apdu.c (PCSC_ERR_MASK): New.
785         (reset_pcsc_reader, pcsc_get_status, pcsc_send_apdu)
786         (close_pcsc_reader, open_pcsc_reader): Use it after shifting error
787         values.  Reported by Henrik Nordstrom.  Fixes bug #724.
788
789 2006-10-24  Werner Koch  <wk@g10code.com>
790
791         * scdaemon.h (GCRY_MD_USER_TLS_MD5SHA1): New.
792         (MAX_DIGEST_LEN): Increased to 36.
793         * app-p15.c (do_sign): Support for TLS_MD5SHA1.
794         (do_auth): Detect TLS_MD5SHA1.
795         (do_sign): Tweaks for that digest.
796
797 2006-10-23  Werner Koch  <wk@g10code.com>
798
799         * scdaemon.c (main): New command --gpgconf-test.
800
801 2006-10-17  Werner Koch  <wk@g10code.com>
802
803         * Makefile.am (scdaemon_LDADD): Link against libcommonpth.
804
805 2006-10-12  Werner Koch  <wk@g10code.com>
806
807         * apdu.c: Include pth.h after unistd.h for the sake of newer Pth
808         versions.
809
810 2006-10-11  Werner Koch  <wk@g10code.com>
811
812         * app-openpgp.c (do_sign): Redirect to do_auth for OpenPGP.3.
813
814 2006-10-06  Werner Koch  <wk@g10code.com>
815
816         * Makefile.am (AM_CFLAGS): Use PTH version of libassuan.
817         (scdaemon_LDADD): Ditto.
818
819         * scdaemon.h (send_status_info): Mark with sentinel attribute.
820
821 2006-10-02  Marcus Brinkmann  <marcus@g10code.de>
822
823         * command.c (update_reader_status_file): Increase buffer of
824         NUMBUF2 (fixing typo).
825
826 2006-09-24  Marcus Brinkmann  <marcus@g10code.de>
827
828         * app-openpgp.c (do_sign): Advance INDATA by the SHA1 resp. RMD160
829         prefix length.
830
831 2006-09-14  Werner Koch  <wk@g10code.com>
832
833         Replaced all call gpg_error_from_errno(errno) by
834         gpg_error_from_syserror().
835
836         * command.c (scd_command_handler): Replaced
837         init_connected_socket_server by init_socket_server_ext.
838
839 2006-09-07  Werner Koch  <wk@g10code.com>
840
841         * command.c (update_reader_status_file): Execute an event handler
842         if available.
843
844 2006-09-06  Werner Koch  <wk@g10code.com>
845
846         * apdu.c (pcsc_end_transaction): 
847         * pcsc-wrapper.c (pcsc_end_transaction: Fixed dclaration.
848         Reported by Bob Dunlop.
849
850         * scdaemon.h (CTRL,APP): Removed and changed everywhere to
851         ctrl_t/app_t.
852
853         Replaced all Assuan error codes by libgpg-error codes.  Removed
854         all map_to_assuan_status and map_assuan_err.
855         
856         * scdaemon.c (main): Call assuan_set_assuan_err_source to have Assuan
857         switch to gpg-error codes.
858         * command.c (set_error): Adjusted.
859
860 2006-09-02  Marcus Brinkmann  <marcus@g10code.de>
861
862         * command.c (get_reader_slot): Return the slot_table index, not
863         the APDU slot number.
864         (update_reader_status_file): Use the slot_table index in the
865         update_card_removed invocation.
866
867 2006-09-01  Marcus Brinkmann  <marcus@g10code.de>
868
869         * command.c (cmd_getinfo): Handle status command.
870
871 2006-08-30  Marcus Brinkmann  <marcus@g10code.de>
872
873         * command.c (do_reset): Delay resetting CTRL->reader_slot until
874         after update_card_removed invocation.
875
876 2006-08-28  Marcus Brinkmann  <marcus@g10code.de>
877
878         * app-openpgp.c (do_decipher, do_sign): Allow "OPENPGP.2"
879         resp. "OPENPGP.1" for KEYIDSTR.
880
881 2006-08-21  Werner Koch  <wk@g10code.com>
882
883         * pcsc-wrapper.c (handle_open, handle_close): Reset card and
884         protocol on error/close.
885         (handle_status): Don't set the state if the state is unknown.
886         (handle_reset): Ignore an error if already disconnected.  May
887         happen due to system wake-up after hibernation.  Suggested by Bob
888         Dunlop.
889
890 2006-06-28  Werner Koch  <wk@g10code.com>
891
892         * app-openpgp.c (do_writekey): Fixed computation of memmove
893         length.  This led to garbled keys if E was larger than one byte.
894         Thanks to Achim Pietig for hinting at the garbled E.
895
896 2006-06-09  Marcus Brinkmann  <marcus@g10code.de>
897
898         * Makefile.am (scdaemon_LDADD): Add $(NETLIBS).
899
900 2006-04-14  Marcus Brinkmann  <marcus@g10code.de>
901
902         * app.c (select_application): Cover up a slot mismatch error in
903         case it happens (it shouldn't happen).
904         (release_application): Use APP->slot.  Lock the reader.
905         (application_notify_card_removed): Lock the reader.
906
907 2006-04-11  Werner Koch  <wk@g10code.com>
908
909         * command.c (hex_to_buffer): New.
910         (cmd_apdu): New.
911
912 2006-04-03  Werner Koch  <wk@g10code.com>
913
914         * scdaemon.c [__GLIBC__]: Default to libpcsclite.so.1.
915
916 2006-03-21  Werner Koch  <wk@g10code.com>
917
918         * command.c (cmd_pksign): Add --hash option.
919
920 2006-03-01  Werner Koch  <wk@g10code.com>
921
922         * command.c (status_file_update_lock): New.
923         (scd_update_reader_status_file): Use lock and factor existing code
924         out to ..
925         (update_reader_status_file): .. this.
926         (do_reset): Use the lock and call update_reader_status_file.
927
928 2006-02-20  Werner Koch  <wk@g10code.com>
929
930         * apdu.c (open_pcsc_reader): Fixed double free.  Thanks to Moritz.
931
932 2006-02-09  Werner Koch  <wk@g10code.com>
933
934         * command.c (get_reader_slot, do_reset) 
935         (scd_update_reader_status_file): Rewrote.
936
937         * app.c (release_application): Factored code out to ..
938         (deallocate_app): new function.
939         (select_application): Introduce new saved application stuff.
940         (application_notify_card_removed): New.
941         * command.c (update_card_removed): Call it here.
942         (do_reset): And here.
943
944         * app.c (check_application_conflict): New.
945         * command.c (open_card): Use it here.
946         (cmd_restart): New command.
947
948         * command.c (cmd_lock): Fixed --wait option to actually terminate.
949
950 2006-02-08  Werner Koch  <wk@g10code.com>
951
952         * ccid-driver.c (ccid_get_atr): Read Parameter and select T=1
953         using these parameters.
954         (scan_or_find_devices): Check for NULL r_fd.
955
956 2006-02-02  Werner Koch  <wk@g10code.com>
957
958         * ccid-driver.c (special_transport): New
959         (ccid_open_reader, do_close_reader, ccid_shutdown_reader)
960         (bulk_out, bulk_in): Add support for CardMan 4040 reader.
961
962         * ccid-driver.c (scan_or_find_devices): Factored most code out to
963         (scan_or_find_usb_device): .. new.
964         (make_reader_id): Fixed vendor mask.
965
966 2006-01-01  Werner Koch  <wk@g10code.com>
967
968         * app-openpgp.c (do_sign): Give user error if hash algorithm is
969         not supported by the card.
970
971 2005-12-06  Werner Koch  <wk@g10code.com>
972
973         * apdu.c (open_pcsc_reader): Check that pcsc-wrapper is actually
974         installed.
975
976 2005-11-23  Werner Koch  <wk@g10code.com>
977
978         * app-nks.c (verify_pin): Give a special error message for a Nullpin.
979
980 2005-10-29  Werner Koch  <wk@g10code.com>
981
982         * ccid-driver.c (send_escape_cmd): New args RESULT, RESULTLEN and
983         RESULTMAX.  Changed all callers.
984         (ccid_transceive_escape): New.
985
986 2005-10-27  Werner Koch  <wk@g10code.com>
987
988         * apdu.c [__CYGWIN__]: Make cygwin environment similar to _WIN32.
989         Suggested by John P. Clizbe.
990         * scdaemon.c [__CYGWIN__]: Set default PC/SC driver to winscard.dll.
991
992 2005-10-19  Werner Koch  <wk@g10code.com>
993
994         * ccid-driver.h (CCID_DRIVER_ERR_NO_KEYPAD): New.
995         * apdu.h (SW_HOST_NO_KEYPAD): New.
996         * iso7816.h (struct iso7816_pininfo_s): New.
997         * iso7816.c (map_sw): Support new code.
998         (iso7816_check_keypad): New.
999         (iso7816_verify_kp, iso7816_change_reference_data_kp) 
1000         (iso7816_reset_retry_counter_kp): New.  Extended versions of the
1001         original functions.
1002         * apdu.c (host_sw_string): Support new code. 
1003         (reader_table_s): New field CHECK_KEYPAD.
1004         (new_reader_slot, open_ct_reader, open_pcsc_reader) 
1005         (open_ccid_reader, open_rapdu_reader): Initialize it.
1006         (check_ccid_keypad): New.
1007         (apdu_check_keypad): New.
1008         (apdu_send_le): Factored all code out to ...
1009         (send_le): .. new.  Takes an additional arg; changed all callers
1010         of the orginal function to use this one with a NULL for the new
1011         arg.
1012         (apdu_send_simple_kp): New.
1013         (ct_send_apdu, pcsc_send_apdu, my_rapdu_send_apdu) 
1014         (send_apdu_ccid): New arg PININFO.
1015         (send_apdu_ccid): Use the new arg.
1016
1017         * scdaemon.c: New option --disable-keypad.
1018
1019 2005-10-08  Marcus Brinkmann  <marcus@g10code.de>
1020
1021         * Makefile.am (scdaemon_LDADD): Add ../gl/libgnu.a after
1022         ../common/libcommon.a.
1023
1024 2005-09-20  Werner Koch  <wk@g10code.com>
1025
1026         * app-dinsig.c (verify_pin): Try ISO 9564 BCD encoding.
1027
1028         * iso7816.c (iso7816_select_application): Add arg FLAGS.  Changed
1029         all callers to pass 0.
1030         * app-openpgp.c (app_select_openpgp): But this one requires a
1031         special flag.
1032
1033         * app-p15.c (app_select_p15): Don't use select application for the
1034         BELPIC.
1035
1036 2005-09-09  Werner Koch  <wk@g10code.com>
1037
1038         * pcsc-wrapper.c (main): Removed bogus free.
1039
1040         * app-p15.c (do_auth): New.
1041         (do_getattr): New attribs $AUTHKEYID and $DISPSERIALNO.
1042         * app-openpgp.c (do_getattr): Ditto.
1043
1044 2005-09-08  Werner Koch  <wk@g10code.com>
1045
1046         * app-openpgp.c (do_getattr): New key $AUTHKEYID.
1047
1048 2005-09-06  Werner Koch  <wk@g10code.com>
1049
1050         * app-p15.c (do_sign): Tweaked for BELPIC cards.
1051         (read_home_df): New arg R_BELPIC.
1052         (app_select_p15): Set card type for BELPIC.
1053
1054 2005-09-05  Werner Koch  <wk@g10code.com>
1055
1056         * iso7816.c (iso7816_select_path): New.
1057         * app-p15.c (select_ef_by_path): Allow for direct path selection.
1058         (app_select_p15): Try using the Belgian variant of pkcs#15.
1059         (read_home_df): New.
1060         (read_ef_odf): Generalized.
1061         (read_ef_tokeninfo): New.
1062         (read_p15_info): Set serialnumber from TokenInfo.
1063         (app_select_p15): Don't munge serialNumber - that must be done
1064         only once.
1065
1066         * iso7816.c (iso7816_read_binary): Use Le=0 when reading all
1067         data.  Handle 6C00 error and take 6B00 as indication for EOF.
1068         * apdu.h (SW_EXACT_LENGTH_P): New.
1069         * apdu.c (new_reader_slot, reset_pcsc_reader, pcsc_get_status) 
1070         (open_pcsc_reader): Set new reader state IS_T0.
1071         (apdu_send_le): When doing T=0 make sure not to send Lc and Le.
1072         Problem reported by Carl Meijer.
1073         (apdu_send_direct): Initialize RESULTLEN.
1074         * pcsc-wrapper.c (handle_status): Return the current protocol as
1075         a new third word.
1076
1077 2005-08-05  Werner Koch  <wk@g10code.com>
1078
1079         * apdu.c (open_rapdu_reader): Set the reader number.
1080
1081 2005-07-05  Werner Koch  <wk@g10code.com>
1082
1083         * app-openpgp.c (do_readkey): Return a mallcoed copy of the key as
1084         required by the description.  Thanks to Moritz for tracking this
1085         problem down.
1086
1087 2005-06-21  Werner Koch  <wk@g10code.com>
1088
1089         * scdaemon.c (main): ifdef call to ccid_set_debug_level.
1090
1091         * apdu.c (reset_pcsc_reader, open_pcsc_reader): Cast size_t to
1092         ulong for printf.
1093
1094 2005-06-06  Werner Koch  <wk@g10code.com>
1095
1096         * scdaemon.c (main): New option --debug-allow-core-dump. 
1097
1098 2005-06-03  Werner Koch  <wk@g10code.com>
1099
1100         * scdaemon.c (handle_connections): Make sure that the signals we
1101         are handling are not blocked.Block signals while creating new
1102         threads.
1103         (handle_connections): Include the file descriptor into the name of
1104         the thread.
1105
1106 2005-06-02  Werner Koch  <wk@g10code.com>
1107
1108         * app.c (app_dump_state, dump_mutex_state): New.
1109         * scdaemon.c (handle_signal): Print it on SIGUSR1.
1110
1111         * app-openpgp.c (do_writekey): Typo fix.
1112
1113         * command.c (open_card): Check for locked state even if an
1114         application context is available.
1115
1116         * app-common.h: Add REF_COUNT field.
1117         * app.c (release_application, select_application): Implement
1118         reference counting to share the context beween connections.
1119
1120         * app.c (lock_reader, unlock_reader): Take SLOT instead of APP as
1121         argument.  Changed all callers.
1122         (select_application): Unlock the reader on error.  This should fix
1123         the hangs I noticed last week.
1124
1125         * scdaemon.h: Removed card_ctx_t cruft.
1126
1127 2005-06-01  Werner Koch  <wk@g10code.com>
1128
1129         * scdaemon.c: Include mkdtemp.h.
1130
1131 2005-05-31  Werner Koch  <wk@g10code.com>
1132
1133         * tlv.c [GNUPG_MAJOR_VERSION==1]: Define constants instead of
1134         including a gnupg 1.4 header.
1135
1136 2005-05-30  Werner Koch  <wk@g10code.com>
1137
1138         * tlv.c: Add hack to compile without gpg-error.h when used with
1139         GnuPG 1.4.
1140
1141 2005-05-23  Werner Koch  <wk@g10code.com>
1142
1143         * Makefile.am: Do not build sc-copykeys anymore.
1144
1145         * app-openpgp.c (app_openpgp_storekey, app_openpgp_readkey)
1146         (app_openpgp_cardinfo): Removed.
1147
1148         * ccid-driver.c (parse_ccid_descriptor): SCR335 FW version 5.14 is
1149         good.
1150         (do_close_reader): Never do a reset. The caller should instead
1151         make sure that the reader has been closed properly.  The new retry
1152         code in ccid_slot_status will make sure that the readersatrts up
1153         fine even if the last process didn't closed the USB connection
1154         properly.
1155         (ccid_get_atr): For certain readers try switching to ISO mode.
1156         Thanks to Ludovic Rousseau for this hint and the magic numbers.
1157         (print_command_failed): New.
1158         (bulk_in): Use it here. Add new arg NO_DEBUG.
1159         (ccid_slot_status): Disabled debugging.
1160
1161 2005-05-21  Werner Koch  <wk@g10code.com>
1162
1163         * scdaemon.c (handle_signal): Print thread info on SIGUSR1.
1164
1165 2005-05-20  Werner Koch  <wk@g10code.com>
1166
1167         * ccid-driver.c: Replaced macro DEBUG_T1 by a new debug level.
1168         (parse_ccid_descriptor): Mark SCR335 firmware version 5.18 good.
1169         (ccid_transceive): Arghhh.  The seqno is another bit in the
1170         R-block than in the I block, this was wrong at one place.
1171
1172         * scdaemon.c: New options --debug-ccid-driver and
1173         --debug-disable-ticker.
1174
1175         * app-openpgp.c (do_genkey, do_writekey): Factored code to check
1176         for existing key out into ..
1177         (does_key_exist): .. New function.
1178
1179 2005-05-19  Werner Koch  <wk@g10code.com>
1180
1181         * tlv.c (parse_sexp): New.
1182
1183         * command.c (cmd_writekey): New.
1184         * app.c (app_writekey): New.
1185         * app-common.c (app_t): Add function ptr WRITEKEY.
1186         * app-openpgp.c (do_writekey): New.
1187
1188         * app-openpgp.c (do_readkey) [GNUPG_MAJOR_VERSION==1]: Return error.
1189         * app-common.h (app_t) [GNUPG_MAJOR_VERSION==1]: Add a field to
1190         store the Assuan context.
1191
1192 2005-05-17  Werner Koch  <wk@g10code.com>
1193
1194         * scdaemon.c: Removed non-pth code paths.
1195         (create_socket_name, create_server_socket): New.  Taken from
1196         ../agent/gpg-agent.
1197         (cleanup): Changed to adjust for SOCKET_NAME now being malloced.
1198         (ticker_thread): Always use pth_event_occurred; it is again
1199         defined for all decent PTH versions.
1200         (handle_connections): New. Based on the gpg-agent code.
1201         (start_connection_thread): Ditto.
1202         (ticker_thread): Removed.
1203         (cleanup_sh): Removed.
1204         (main): Run the handler for the pipe server in a separate
1205         thread.  This replaces the old ticker thread.
1206         (scd_get_socket_name): New.
1207         * command.c (cmd_getinfo): New command GETINFO.
1208         (scd_command_handler): Renamed argument and changed code to use an
1209         already connected FD.
1210
1211 2005-05-15  Werner Koch  <wk@g10code.com>
1212
1213         * app.c, app-common.h, app-nks.c, app-p15.c, app-dinsig.c
1214         * app-openpgp.c: Change most function return types from int to
1215         gpg_error_t.
1216         * command.c (pin_cb): Ditto.
1217         * sc-copykeys.c (pincb): Ditto.
1218
1219         * app.c (lock_reader, unlock_reader): New.  Changed call handler
1220         wrappers to make use of these functions.
1221
1222 2005-05-07  Werner Koch  <wk@g10code.com>
1223
1224         * ccid-driver.c (do_close_reader): Don't do a reset before close.
1225         Some folks reported that it makes the SCR335 hang less often.
1226         Look at the source on how to re-enable it.
1227
1228 2005-04-27  Werner Koch  <wk@g10code.com>
1229
1230         * app-p15.c (micardo_mse): New.
1231         (do_sign): Call it.
1232         * iso7816.c (iso7816_manage_security_env): Allow passing DATA as
1233         NULL to indicate an empty Lc.
1234         * tlv.c (find_tlv): Check that a found object fits into the
1235         buffer.
1236         (find_tlv_unchecked): New as replacement for the old non-checking
1237         variant.
1238         * app.c (select_application): Keep on using the non-checking
1239         variant.
1240         * app-openpgp.c (get_one_do, dump_all_do): Ditto.
1241
1242         
1243         Removal of the old OpenSC based code.
1244         
1245         * app-p15.c: New.  Basic support for pkcs15 cards without OpenSC.
1246         There are quite a couple of things missing but at least I can use
1247         my old TCOS cards from the Aegypten-1 development for signing.
1248         * app.c (select_application): Detect pkcs15 applications.
1249         * Makefile.am (scdaemon_SOURCES): Removed card.c, card-common.h
1250         and card-p15.c because they are now obsolete. Added app-p15.c.
1251         Removed all OpenSC stuff.
1252         * command.c (do_reset, open_card, cmd_serialno, cmd_learn) 
1253         (cmd_readcert, cmd_readkey, cmd_pksign, cmd_pkdecrypt): Removed
1254         all special cases for the old card.c based mechanisms.
1255         * scdaemon.c, apdu.c: Removed all special cases for OpenSC.
1256
1257 2005-04-20  Werner Koch  <wk@g10code.com>
1258
1259         * command.c: Use GPG_ERR_LOCKED instead of EBUSY.
1260
1261 2005-04-14  Werner Koch  <wk@g10code.com>
1262
1263         * app-openpgp.c (retrieve_key_material): Rewritten.  Return a
1264         proper error code.
1265         (retrieve_next_token): Removed.
1266         (retrieve_fpr_from_card): Rewritten to make use of DO caching and
1267         to take the KEYNO as arg.
1268         (get_public_key): Renamed variable for clarity.
1269
1270 2005-04-12  Werner Koch  <wk@g10code.com>
1271
1272         Basic support for several sessions.
1273         
1274         * command.c (scd_command_handler): Replace the primary_connection
1275         stuff by a real connection list.  Release the local context on
1276         exit.
1277         (scd_update_reader_status_file): Update accordingly.  Send signal
1278         to all connections who registered an event signal.
1279         (cmd_lock, cmd_unlock, register_commands): New commands LOCK and
1280         UNLOCK.
1281         (cmd_setdata, cmd_pksign, cmd_pkauth, cmd_pkdecrypt, cmd_setattr) 
1282         (cmd_genkey, cmd_passwd, cmd_checkpin): Return an error if reader
1283         is locked.
1284         (do_reset): Handle locking.
1285         (open_card): Ditto.  Share the reader slot with other sessions.
1286         (get_reader_slot): New.
1287         (update_card_removed): New.  Use it in the TEST_CARD_REMOVAL macro.
1288
1289 2005-04-07  Werner Koch  <wk@g10code.com>
1290
1291         * app-openpgp.c (do_check_pin): Add hack to allow verification of
1292         CHV3.
1293         (get_public_key): Don't use gcry functions to create S-expressions.
1294         (do_deinit, do_readkey, do_genkey, send_keypair_info): Adjust for
1295         above change.
1296
1297 2005-03-29  Moritz Schulte  <moritz@g10code.com>
1298
1299         * app-openpgp.c (retrieve_fpr_from_card): New function.
1300         (retrieve_next_token): New function.
1301         (retrieve_key_material): New function.
1302         (get_public_key): Implement retrival of key through expernal
1303         helper (gpg) in case the openpgp card is not cooperative enough.
1304
1305 2005-03-16  Werner Koch  <wk@g10code.com>
1306
1307         * ccid-driver.c (parse_ccid_descriptor): Make SCM workaround
1308         reader type specific.
1309         (scan_or_find_devices): Do not check the interface subclass in the
1310         SPR532 kludge, as this depends on the firmware version.
1311         (ccid_get_atr): Get the Slot status first.  This solves the
1312         problem with readers hanging on recent Linux 2.6.x.
1313         (bulk_in): Add argument TIMEOUT and changed all callers to pass an
1314         appropriate one.  Change the standard timeout from 10 to 5 seconds.
1315         (ccid_slot_status): Add a retry code with an initial short timeout.
1316         (do_close_reader): Do an usb_reset before closing the reader.
1317
1318 2005-02-25  Werner Koch  <wk@g10code.com>
1319
1320         * app-openpgp.c (get_public_key): Make sure not to return negative
1321         numbers.
1322         (do_sign): Allow passing of indata with algorithm prefix.
1323         (do_auth): Allow OPENPGP.3 as an alternative ID.
1324
1325         * app.c (app_getattr): Return just the S/N but not the timestamp.
1326
1327 2005-02-24  Werner Koch  <wk@g10code.com>
1328
1329         * app.c (app_getattr): Return APPTYPE or SERIALNO type even if the
1330         application does dot support the getattr call.
1331
1332         * app-openpgp.c (get_one_do): Never try to get a non cacheable
1333         object from the cache.
1334         (get_one_do): Add new arg to return an error code.  Changed all
1335         callers.
1336         (do_getattr): Let it return a proper error code.
1337
1338         * app.c (select_application): Return an error code and the
1339         application context in an new arg.
1340         * command.c (open_card): Adjusted for that.  Don't use the
1341         fallback if no card is present.  Return an error if the card has
1342         been removed without a reset.
1343         (do_reset, cmd_serialno): Clear that error flag.
1344         (TEST_CARD_REMOVAL): New. Use it with all command handlers.
1345         (scd_update_reader_status_file): Set the error flag on all changes.
1346
1347         * scdaemon.c (ticker_thread): Termintate if a shutdown is pending.
1348
1349         * apdu.c: Added some PCSC error codes.
1350         (pcsc_error_to_sw): New.
1351         (reset_pcsc_reader, pcsc_get_status, pcsc_send_apdu) 
1352         (open_pcsc_reader): Do proper error code mapping.
1353
1354 2005-03-16  Werner Koch  <wk@g10code.com>
1355
1356         * ccid-driver.c (parse_ccid_descriptor): Make SCM workaround
1357         reader type specific.
1358         (scan_or_find_devices): Do not check the interface subclass in the
1359         SPR532 kludge, as this depends on the firmware version.
1360         (ccid_get_atr): Get the Slot status first.  This solves the
1361         problem with readers hanging on recent Linux 2.6.x.
1362
1363 2005-02-22  Werner Koch  <wk@g10code.com>
1364
1365         * app-openpgp.c (app_local_s): New field PK.
1366         (do_deinit, do_genkey, app_openpgp_storekey): Clear it.
1367         (get_public_key, send_keypair_info): New.
1368         (do_learn_status): Send KEYPAIR info
1369
1370         * app-common.h (app_ctx_t): Add function pointer READKEY.
1371         * app.c (app_readkey): New.
1372         * command.c (cmd_readkey): Use READKEY function if possible.
1373
1374 2005-01-26  Werner Koch  <wk@g10code.com>
1375
1376         * ccid-driver.c (parse_ccid_descriptor): Need the CSM workaround
1377         also for newer firmware versions.  Need to get a list of fixed
1378         firmware versions and use that.
1379
1380 2005-01-25  Werner Koch  <wk@g10code.com>
1381
1382         * apdu.c (apdu_send_le, apdu_send_direct): Fix some compiler
1383         warnings.
1384
1385         * app-openpgp.c (get_cached_data): New arg GET_IMMEDIATE to bypass
1386         the cache.  Changed all callers.
1387         (get_one_do): Bypass the cache if the value would have been read
1388         directly for v1.1 cards.It makes things a bit slower but obnly for
1389         1.0 cards and there are not that many cards out in the wild.  This
1390         is required to fix a caching bug when generating new keys; as a
1391         side effect of the retrieval of the the C4 DO from the 6E DO the
1392         cached fingerprint will get updated to the old value and later
1393         when signing the generated key the checking of the fingerprint
1394         fails because it won't match the new one.  Thanks to Moritz for
1395         analyzing this problem.
1396         (verify_chv3): Removed the CHV status reread logic because we
1397         won't cache the C4 DO anymore.
1398
1399 2004-12-28  Werner Koch  <wk@g10code.com>
1400
1401         * ccid-driver.c (find_endpoint): New.
1402         (scan_or_find_devices): Add new args to return endpoint info and
1403         interface number.
1404         (ccid_open_reader, ccid_shutdown_reader): Take care of these new
1405         args.
1406         (bulk_in, bulk_out): Use the correct endpoints.
1407         (ccid_transceive_apdu_level): New.
1408         (ccid_transceive): Divert to above.
1409         (parse_ccid_descriptor): Allow APDU level exchange mode.
1410         (do_close_reader): Pass the interface number to usb_release_interface.
1411
1412 2004-12-21  Werner Koch  <wk@g10code.com>
1413
1414         * scdaemon.c (main): Use default_homedir().
1415
1416 2004-12-18  Werner Koch  <wk@g10code.com>
1417
1418         * scdaemon.c (main) [W32]: Remove special Pth initialize..
1419
1420         * scdaemon.h (map_assuan_err): Define in terms of
1421         map_assuan_err_with_source.
1422
1423 2004-12-15  Werner Koch  <wk@g10code.com>
1424
1425         * scdaemon.c [W32]: Various hacks to make it run under W32.
1426
1427         * command.c (scd_update_reader_status_file) [W32]: Don't use kill.
1428
1429         * apdu.c [W32]: Disable use of pcsc_wrapper.
1430
1431         * Makefile.am (scdaemon_LDADD): Reorder libs.
1432         (sc_copykeys_LDADD): Add libassuan because it is needed for W32. 
1433
1434 2004-12-06  Werner Koch  <wk@g10code.com>
1435
1436         * Makefile.am (pkglib_PROGRAMS): Build only for W32.
1437
1438 2004-10-22  Werner Koch  <wk@g10code.com>
1439
1440         * app-openpgp.c (verify_chv3): The minium length for CHV3 is
1441         8. Changed string to match the other ones.
1442
1443 2004-10-21  Werner Koch  <wk@g10code.com>
1444
1445         * app-openpgp.c (do_sign): Replace asprintf by direct allocation.
1446         This avoids problems with missing vasprintf implementations in
1447         gnupg 1.4.
1448
1449         * app-common.h (app_openpgp_storekey: Add prototype. 
1450
1451 2004-10-20  Werner Koch  <wk@g10code.com>
1452
1453         * sc-investigate: Removed.
1454         * Makefile.am (sc_investigate): Removed.
1455         
1456         * pcsc-wrapper.c (load_pcsc_driver): Load get_status_change func.
1457         (handle_open): Succeed even without a present card.
1458         (handle_status, handle_reset): New.
1459         
1460         * apdu.c (apdu_open_reader): Load pcsc_get_status_change fucntion.
1461         (pcsc_get_status): Implemented.
1462         (reset_pcsc_reader): Implemented.
1463         (open_pcsc_reader): Succeed even with no card inserted.
1464         (open_ccid_reader): Set LAST_STATUS.
1465
1466         * iso7816.c (iso7816_select_application): Always use 0 for P1.
1467
1468 2004-10-18  Werner Koch  <wk@g10code.com>
1469
1470         * ccid-driver.c (ccid_get_atr): Reset T=1 state info.
1471
1472 2004-10-14  Werner Koch  <wk@g10code.com>
1473
1474         * app-openpgp.c (parse_login_data): New. 
1475         (app_select_openpgp): Call it.
1476         (do_setattr): Reparse it after change.
1477
1478 2004-10-06  Werner Koch  <wk@g10code.de>
1479
1480         * ccid-driver.c (ccid_open_reader): Store the vendor ID.
1481         (ccid_transceive_secure): New.
1482         (parse_ccid_descriptor): Workaround for an SCM reader problem.
1483
1484 2004-10-04  Werner Koch  <wk@g10code.de>
1485
1486         * ccid-driver.c (send_escape_cmd): New.
1487
1488 2004-09-30  Werner Koch  <wk@g10code.com>
1489
1490         * Makefile.am: Adjusted for gettext 0.14.
1491
1492         * app-openpgp.c (do_sign): Add the error string to the verify
1493         failed messages.
1494
1495 2004-09-27  Werner Koch  <wk@g10code.com>
1496
1497         From gnupg 1.3
1498
1499         * app-openpgp.c: Made all strings translatable.
1500         (verify_chv3) [GNUPG_MAJOR_VERSION]: Make opt.allow_admin
1501         available for use in gnupg 2. 
1502         (verify_chv3): Reimplemented countdown showing to use only
1503         functions from this module.  Flush the CVH status cache on a
1504         successful read.
1505         (get_one_do): Hack to bypass the cache for cards versions > 1.0.
1506         (store_fpr): Store the creation date for card version > 1.0.
1507
1508         * app-openpgp.c (app_openpgp_storekey): Call flush_cache.
1509         (get_cached_data): Move local data initialization to ..
1510         (app_select_openpgp): .. here. Read some flags for later use.
1511         (do_getattr): New read-only attribute EXTCAP.
1512         
1513         * apdu.c (open_pcsc_reader): Do not print empty reader string.
1514
1515         * ccid-driver.c (do_close_reader): Factored some code out from ...
1516         (ccid_close_reader): ..here.
1517         (ccid_shutdown_reader): New.
1518
1519         * apdu.c (apdu_shutdown_reader): New.
1520         (shutdown_ccid_reader): New.
1521
1522         * apdu.c (open_ccid_reader): New arg PORTSTR.  Pass it to
1523         ccid_open_reader.
1524         (apdu_open_reader): Pass portstr to open_ccid_reader.
1525         (apdu_open_reader): No fallback if a full CCID reader id has been
1526         given.
1527
1528         * ccid-driver.c (ccid_get_reader_list): New.
1529         (ccid_open_reader): Changed API to take a string for the reader.
1530         Removed al the cruft for the libusb development vesion which seems
1531         not to be maintained anymore and there are no packages anyway.
1532         The stable library works just fine.
1533         (struct ccid_reader_id_s): Deleted and replaced everywhere by a
1534         simple string.
1535         (usb_get_string_simple): Removed.
1536         (bulk_in): Do valgrind hack here and not just everywhere.
1537
1538         * ccid-driver.c (read_device_info): Removed.
1539         (make_reader_id, scan_or_find_devices): New.
1540         (ccid_open_reader): Simplified by make use of the new functions.
1541         (ccid_set_debug_level): New.  Changed the macros to make use of
1542         it.  It has turned out that it is often useful to enable debugging
1543         at runtime so I added this option.
1544
1545         From gnupg 1.3 - David Shaw  <dshaw@jabberwocky.com>
1546
1547         * app-openpgp.c (verify_chv3): Show a countdown of how many wrong
1548         admin PINs can be entered before the card is locked.
1549
1550         * app-openpgp.c (get_cached_data): Avoid mallocing zero since it
1551         breaks us when using --enable-m-guard.
1552
1553         * ccid-driver.c (usb_get_string_simple): Replacement function to
1554         work with older libusb.
1555
1556         * ccid-driver.c (read_device_info): Fix segfault when usb device
1557         is not accessible.
1558         (ccid_open_reader): Allow working with an even older version of
1559         libusb (usb_busses global instead of usb_get_busses()).
1560
1561 2004-09-11  Werner Koch  <wk@g10code.com>
1562
1563         * app-openpgp.c (app_select_openpgp): Its app_munge_serialno and
1564         not app_number_serialno.
1565
1566 2004-08-20  Werner Koch  <wk@g10code.de>
1567
1568         * app.c (select_application): Fixed serial number extraction and
1569         added the BMI card workaround.
1570         (app_munge_serialno): New.
1571         * app-openpgp.c (app_select_openpgp): Try munging serialno.
1572
1573 2004-08-05  Werner Koch  <wk@g10code.de>
1574
1575         * scdaemon.c (main): New option --disable-application.
1576         * app.c (is_app_allowed): New.
1577         (select_application): Use it to check for disabled applications.
1578
1579         * ccid-driver.h (CCID_DRIVER_ERR_ABORTED): New.
1580         * ccid-driver.c (ccid_open_reader): Support the stable 0.1 version
1581         of libusb.
1582         (ccid_get_atr): Handle short messages.
1583
1584         * apdu.c (my_rapdu_get_status): Implemented.
1585
1586 2004-07-27  Moritz Schulte  <moritz@g10code.com>
1587
1588         * apdu.c: Include <signal.h>.
1589
1590         * Makefile.am: Use @DL_LIBS@ instead of -ldl.
1591
1592 2004-07-22  Werner Koch  <wk@g10code.de>
1593
1594         * Makefile.am: Make OpenSC lib link after libgcrypt. Do not link
1595         to pth.
1596         * apdu.c: Don't use Pth if we use OpenSC.
1597         * sc-investigate.c, scdaemon.c: Disable use of pth if OpenSC is used. 
1598
1599         * scdaemon.c (main): Bumbed thread stack size up to 512k.
1600
1601 2004-07-16  Werner Koch  <wk@gnupg.org>
1602
1603         * apdu.c (reader_table_s):  Add function pointers for the backends.
1604         (apdu_close_reader, apdu_get_status, apdu_activate) 
1605         (send_apdu): Make use of them.
1606         (new_reader_slot): Intialize them to NULL.
1607         (dump_ccid_reader_status, ct_dump_reader_status): New.
1608         (dump_pcsc_reader_status): New.
1609         (open_ct_reader, open_pcsc_reader, open_ccid_reader) 
1610         (open_osc_reader, open_rapdu_reader): Intialize function pointers.
1611         (ct_activate_card, ct_send_apdu, pcsc_send_apdu, osc_send_apdu) 
1612         (error_string): Removed.  Replaced by apdu_strerror.
1613         (get_ccid_error_string): Removed.
1614         (ct_activate_card): Remove the unused loop.
1615         (reset_ct_reader): Implemented.
1616         (ct_send_apdu): Activate the card if not yet done.
1617         (pcsc_send_apdu): Ditto.
1618
1619 2004-07-15  Werner Koch  <wk@gnupg.org>
1620
1621         * ccid-driver.h: Add error codes.
1622         * ccid-driver.c: Implement more or less proper error codes all
1623         over the place.
1624
1625         * apdu.c (apdu_send_direct): New.
1626         (get_ccid_error_string): Add some error code mappings.
1627         (send_apdu): Pass error codes along for drivers already supporting
1628         them.
1629         (host_sw_string): New.
1630         (get_ccid_error_string): Use above.
1631         (send_apdu_ccid): Reset the reader if it has not yet been done.
1632         (open_ccid_reader): Don't care if the ATR can't be read.
1633         (apdu_activate_card): New.
1634         (apdu_strerror): New.
1635         (dump_reader_status): Only enable it with opt.VERBOSE.
1636         * iso7816.c (map_sw): Add mappings for the new error codes.
1637
1638 2004-07-02  Werner Koch  <wk@gnupg.org>
1639
1640         * apdu.c (open_ct_reader, open_pcsc_reader, open_ccid_reader)
1641         (reset_ccid_reader, open_osc_reader): Call dump_reader_status only
1642         in verbose mode.
1643
1644 2004-07-01  Werner Koch  <wk@gnupg.org>
1645
1646         * sc-investigate.c: Initialize Pth which is now required.
1647         (interactive_shell): New command "readpk".
1648
1649         * app-openpgp.c (do_getattr): Fix for sending CA-FPR.
1650
1651 2004-06-30  Werner Koch  <wk@gnupg.org>
1652
1653         * app-openpgp.c (app_openpgp_readkey): Fixed check for valid
1654         exponent.
1655
1656 2004-06-18  Werner Koch  <wk@g10code.com>
1657
1658         * sc-investigate.c (my_read_line): Renamed from read_line.
1659
1660 2004-06-16  Werner Koch  <wk@gnupg.org>
1661
1662         * apdu.c (osc_get_status): Fixed type in function name. Noted by
1663         Axel Thimm.  Yes, I didn't tested it with OpenSC :-(.
1664
1665 2004-04-28  Werner Koch  <wk@gnupg.org>
1666
1667         * app-openpgp.c (do_setattr): Sync FORCE_CHV1.
1668
1669 2004-04-27  Werner Koch  <wk@gnupg.org>
1670
1671         * app-common.h: Do not include ksba.h for gnupg 1.
1672
1673 2004-04-26  Werner Koch  <wk@gnupg.org>
1674
1675         * app-common.h: New members FNC.DEINIT and APP_LOCAL.
1676         * app.c (release_application): Call new deconstructor.
1677         * app-openpgp.c (do_deinit): New.
1678         (get_cached_data, flush_cache_item, flush_cache_after_error)
1679         (flush_cache): New.
1680         (get_one_do): Replaced arg SLOT by APP.  Make used of cached data.
1681         (verify_chv2, verify_chv3): Flush some cache item after error.
1682         (do_change_pin): Ditto.
1683         (do_sign): Ditto.
1684         (do_setattr): Flush cache item.
1685         (do_genkey): Flush the entire cache.
1686         (compare_fingerprint): Use cached data.
1687
1688         * scdaemon.c (main): Do the last change the usual way. This is so
1689         that we can easily test for versioned config files above.
1690
1691 2004-04-26  Marcus Brinkmann  <marcus@g10code.de>
1692
1693         * scdaemon.c (main): For now, always print default filename for
1694         --gpgconf-list, and never /dev/null.
1695
1696 2004-04-21  Werner Koch  <wk@gnupg.org>
1697
1698         * command.c (scd_update_reader_status_file): Send a signal back to
1699         the client.
1700         (option_handler): Parse the new event-signal option.
1701
1702         * scdaemon.c (handle_signal): Do not use SIGUSR{1,2} anymore for
1703         changing the verbosity.
1704
1705 2004-04-20  Werner Koch  <wk@gnupg.org>
1706
1707         * command.c (scd_update_reader_status_file): Write status files.
1708
1709         * app-help.c (app_help_read_length_of_cert): Fixed calculation of
1710         R_CERTOFF.
1711
1712         * pcsc-wrapper.c: New.
1713         * Makefile.am (pkglib_PROGRAMS): Install it here.
1714         * apdu.c (writen, readn): New.
1715         (open_pcsc_reader, pcsc_send_apdu, close_pcsc_reader): Use the
1716         pcsc-wrapper if we are using Pth.
1717         (apdu_send_le): Reinitialize RESULTLEN.  Handle SW_EOF_REACHED
1718         like SW_SUCCESS.
1719
1720 2004-04-19  Werner Koch  <wk@gnupg.org>
1721
1722         * ccid-driver.c (parse_ccid_descriptor): Store some of the reader
1723         features away.  New arg HANDLE
1724         (read_device_info): New arg HANDLE. Changed caller.
1725         (bulk_in): Handle time extension requests.
1726         (ccid_get_atr): Setup parameters and the IFSD.
1727         (compute_edc): New. Factored out code.
1728         (ccid_transceive): Use default NADs when required.
1729
1730 2004-04-14  Werner Koch  <wk@gnupg.org>
1731
1732         * scdaemon.h (server_control_s): Add member READER_SLOT.
1733         * scdaemon.c (scd_init_default_ctrl): Initialize READER_SLOT to -1.
1734         * command.c (open_card): Reuse an open slot.
1735         (reset_notify): Just reset the slot if supported by the reader.
1736         (do_reset): Factored code from above out.
1737         (scd_command_handler): Use it for cleanup.
1738
1739         * apdu.h: New pseudo stati SW_HOST_NOT_SUPPORTED,
1740         SW_HOST_LOCKING_FAILED and SW_HOST_BUSY.
1741         * iso7816.c (map_sw): Map it.
1742         
1743         * ccid-driver.c (ccid_slot_status): Add arg STATUSBITS.
1744         * apdu.c (apdu_get_status): New.
1745         (ct_get_status, pcsc_get_status, ocsc_get_status): New stubs.
1746         (get_status_ccid): New.
1747         (apdu_reset): New.
1748         (reset_ct_reader, reset_pcsc_reader, reset_osc_reader): New stubs.
1749         (reset_ccid_reader): New.
1750         (apdu_enum_reader): New.
1751         
1752         * apdu.c (lock_slot, trylock_slot, unlock_slot): New helpers.
1753         (new_reader_slot) [USE_GNU_PTH]: Init mutex.
1754         (apdu_reset, apdu_get_status, apdu_send_le): Run functions
1755         in locked mode.
1756
1757         * command.c (scd_update_reader_status_file): New.
1758         * scdaemon.c (handle_tick): Call it.
1759
1760 2004-04-13  Werner Koch  <wk@gnupg.org>
1761
1762         * scdaemon.c: Convert to a Pth application.
1763         (handle_signal, ticker_thread, handle_tick): New.
1764         (main): Fire up the ticker thread in server mode.
1765
1766 2004-03-23  Werner Koch  <wk@gnupg.org>
1767
1768         * scdaemon.c (main) <gpgconf_list>: Fixed output for pcsc_driver.
1769
1770 2004-03-17  Werner Koch  <wk@gnupg.org>
1771
1772         * tlv.c (parse_ber_header): Do not check for tag overflow - it
1773         does not make sense.  Simplified the check for length overflow.
1774
1775         * scdaemon.c (main) <gpgconf>: Fixed default value quoting.
1776
1777 2004-03-16  Werner Koch  <wk@gnupg.org>
1778
1779         * app-dinsig.c: Implemented. Based on app-nks.c and card-dinsig.c
1780         * app-nks.c (get_length_of_cert): Removed.
1781         * app-help.c: New.
1782         (app_help_read_length_of_cert): New.  Code taken from above.  New
1783         optional arg R_CERTOFF.
1784
1785         * card-dinsig.c: Removed.
1786         * card.c (card_get_serial_and_stamp): Do not bind to the old and
1787         never finsiged card-dinsig.c.
1788
1789         * iso7816.c (iso7816_read_binary): Allow for an NMAX > 254.
1790
1791 2004-03-11  Werner Koch  <wk@gnupg.org>
1792
1793         * scdaemon.h (out_of_core): Removed.  Replaced callers by standard
1794         gpg_error function.
1795
1796         * apdu.c, iso7816.c, ccid-driver.c [GNUPG_SCD_MAIN_HEADER]: Allow
1797         to include a header defined by the compiler.  This helps us to
1798         reuse the source in other software.
1799
1800 2004-03-10  Werner Koch  <wk@gnupg.org>
1801
1802         * iso7816.c (iso7816_read_record): New arg SHORT_EF.  Changed all
1803         callers.
1804
1805 2004-02-18  Werner Koch  <wk@gnupg.org>
1806
1807         * sc-investigate.c (main): Setup the used character set.
1808         * scdaemon.c (main): Ditto.
1809
1810         * scdaemon.c (set_debug): New.  Add option --debug-level.
1811         (main): Add option --gpgconf-list.
1812
1813 2004-02-12  Werner Koch  <wk@gnupg.org>
1814
1815         * Makefile.am: Include cmacros.am for common flags.
1816
1817 2004-01-29  Werner Koch  <wk@gnupg.org>
1818
1819         * command.c (reset_notify): Release the application context and
1820         close the reader.
1821
1822 2004-01-28  Werner Koch  <wk@gnupg.org>
1823
1824         * iso7816.c (iso7816_manage_security_env): New.
1825         (iso7816_decipher): Add PADIND argument.
1826
1827 2004-01-27  Werner Koch  <wk@gnupg.org>
1828
1829         * command.c (cmd_readcert, cmd_readkey): Work on a copy of LINE.
1830
1831         * app-common.h (app_ctx_s): Added readcert field.
1832         * app.c (app_readcert): New.
1833         * tlv.c (parse_ber_header): Added; taken from libksba.
1834
1835 2004-01-26  Werner Koch  <wk@gnupg.org>
1836
1837         * card.c (map_sc_err): Use SCD as the error source.
1838
1839         * command.c (open_card): ADD arg NAME to allow requesting a
1840         specific application.  Changed all callers.
1841         (cmd_serialno): Allow optional argument to select the desired
1842         application.
1843
1844         * app-nks.c: New. 
1845
1846         * scdaemon.h (opt): Add READER_PORT.
1847         * scdaemon.c (main): Set it here.
1848         * app.c (app_set_default_reader_port): Removed.
1849         (select_application): Add NAME arg and figure out a
1850         default serial number from the GDO. Add SLOT arg and remove all
1851         reader management.
1852         (release_application): New.
1853         (app_write_learn_status): Output an APPTYPE status line.
1854         * command.c (open_card): Adapt for select_application change.
1855         * app-openpgp.c (app_select_openpgp): Removed SN and SNLEN args
1856         and set it directly.  Changed all callers.
1857
1858 2004-01-25  Werner Koch  <wk@gnupg.org>
1859
1860         * iso7816.c (iso7816_select_application): P1 kludge for OpenPGP
1861         card.
1862         * app-openpgp.c (find_tlv): Factor out this function to ..
1863         * tlv.c, tlv.h: .. new.
1864
1865         * scdaemon.h: Introduced app_t and ctrl_t as the new types for APP
1866         and CTRL.
1867
1868 2004-01-21  Werner Koch  <wk@gnupg.org>
1869
1870         * apdu.c (apdu_send_le): Treat SW_EOF_REACHED as a warning.
1871
1872 2004-01-20  Werner Koch  <wk@gnupg.org>
1873
1874         * iso7816.c (iso7816_read_binary): New.
1875         (iso7816_select_file): New.
1876         (iso7816_list_directory): New.
1877
1878         * sc-investigate.c: Add option -i.
1879         (select_app, read_line, interactive_shell): New.
1880
1881 2004-01-16  Werner Koch  <wk@gnupg.org>
1882
1883         * apdu.h: Add SW_FILE_NOT_FOUND.
1884         * iso7816.c (map_sw): Map it to GPG_ERR_ENOENT.
1885         * iso7816.c (iso7816_select_file): New.
1886
1887         * app-dinsig.c: New file w/o any real code yet.
1888         * Makefile.am (scdaemon_SOURCES,sc_investigate_SOURCES): Add file.
1889
1890         * sc-investigate.c: Add option --disable-ccid.
1891
1892 2003-12-19  Werner Koch  <wk@gnupg.org>
1893
1894         * apdu.c (apdu_send_le): Send a get_response with the indicated
1895         length and not the 64 bytes we used for testing.
1896
1897         * app-openpgp.c (verify_chv2, verify_chv3, do_sign): Check the
1898         minimum length of the passphrase, so that we don't need to
1899         decrement the retry counter.
1900
1901 2003-12-17  Werner Koch  <wk@gnupg.org>
1902
1903         * card-p15.c (p15_enum_keypairs): Replaced KRC by RC.
1904         * card-dinsig.c (dinsig_enum_keypairs): Ditto.
1905
1906 2003-12-16  Werner Koch  <wk@gnupg.org>
1907
1908         * scdaemon.c (main): Set the prefixes for assuan logging.
1909
1910 2003-11-17  Werner Koch  <wk@gnupg.org>
1911
1912         * scdaemon.c, scdaemon.h: New options --allow-admin and --deny-admin.
1913         * app-openpgp.c (verify_chv3): Check it here.
1914
1915 2003-11-12  Werner Koch  <wk@gnupg.org>
1916
1917         Adjusted for API changes in Libksba.
1918
1919 2003-10-30  Werner Koch  <wk@gnupg.org>
1920
1921         * apdu.c (close_ct_reader, close_pcsc_reader): Implemented.
1922         (get_ccid_error_string): New.  Not very useful messages, though.
1923
1924 2003-10-25  Werner Koch  <wk@gnupg.org>
1925
1926         * ccid-driver.c (ccid_open_reader): Return an error if no USB
1927         devices are found.
1928
1929         * command.c (cmd_genkey, cmd_passwd): Fixed faulty use of
1930         !spacep().
1931
1932         * apdu.c (apdu_open_reader): Hacks for PC/SC under Windows.
1933
1934 2003-10-20  Werner Koch  <wk@gnupg.org>
1935
1936         * command.c (cmd_checkpin): New.
1937         (register_commands): Add command CHECKPIN.
1938         * app.c (app_check_pin): New.
1939         * app-openpgp.c (check_against_given_fingerprint): New. Factored
1940         out that code elsewhere.
1941         (do_check_pin): New.
1942
1943 2003-10-10  Werner Koch  <wk@gnupg.org>
1944
1945         * ccid-driver.c (ccid_close_reader): New.
1946
1947         * apdu.c (close_ccid_reader, close_ct_reader, close_csc_reader)
1948         (close_osc_reader, apdu_close_reader): New.  Not all are properly
1949         implemented yet.
1950
1951 2003-10-09  Werner Koch  <wk@gnupg.org>
1952
1953         * ccid-driver.c (ccid_transceive): Add T=1 chaining for sending.
1954
1955 2003-10-08  Werner Koch  <wk@gnupg.org>
1956
1957         * app-openpgp.c (do_getattr): Support SERIALNO and AID.
1958
1959 2003-10-01  Werner Koch  <wk@gnupg.org>
1960
1961         * ccid-driver.c: Detect GnuPG 1.3 and include appropriate files.
1962         * apdu.c: Ditto.
1963         * app-openpgp.c: Ditto.
1964         * iso7816.c: Ditto.
1965         (generate_keypair): Renamed to ..
1966         (do_generate_keypair): .. this.
1967         * app-common.h [GNUPG_MAJOR_VERSION]: New.
1968         * iso7816.h [GNUPG_MAJOR_VERSION]: Include cardglue.h
1969
1970 2003-09-30  Werner Koch  <wk@gnupg.org>
1971
1972         * command.c (cmd_getattr): New command GETATTR.
1973         * app.c (app_setattr): New.
1974         (do_getattr): New.
1975         (do_learn_status): Reimplemented in terms of do_getattr.
1976
1977         * app-openpgp.c (do_change_pin): Make sure CVH1 and CHV2 are
1978         always synced.
1979         (verify_chv2, verify_chv3): New. Factored out common code.
1980         (do_setattr, do_sign, do_auth, do_decipher): Change the names of
1981         the prompts to match that we have only 2 different PINs.
1982         (app_select_openpgp): Check whether the card enforced CHV1.
1983         (convert_sig_counter_value): New. Factor out code from
1984         get_sig_counter.
1985
1986 2003-09-28  Werner Koch  <wk@gnupg.org>
1987
1988         * app-openpgp.c (dump_all_do): Use gpg_err_code and not gpg_error.
1989
1990 2003-09-19  Werner Koch  <wk@gnupg.org>
1991
1992         * ccid-driver.c (parse_ccid_descriptor): New.
1993         (read_device_info): New.
1994         (ccid_open_reader): Check that the device has all required features.
1995
1996 2003-09-06  Werner Koch  <wk@gnupg.org>
1997
1998         * scdaemon.c (main): --pcsc-driver again defaults to pcsclite.
1999         David Corcoran was so kind to remove the GPL incompatible
2000         advertisng clause from pcsclite.
2001         * apdu.c (apdu_open_reader): Actually make pcsc-driver option work.
2002
2003 2003-09-05  Werner Koch  <wk@gnupg.org>
2004
2005         * ccid-driver.c: More work, data can now actually be retrieved.
2006         * ccid-driver.c, ccid-driver.h: Alternativley allow use under BSD
2007         conditions.
2008
2009 2003-09-02  Werner Koch  <wk@gnupg.org>
2010
2011         * scdaemon.c, scdaemon.h: New option --pcsc-ccid.
2012         * ccid-driver.c, ccid-driver.h: New but far from being useful.
2013         * Makefile.am: Add above.
2014         * apdu.c: Add support for that ccid driver.
2015         
2016 2003-08-26  Timo Schulz  <twoaday@freakmail.de>
2017
2018         * apdu.c (new_reader_slot): Only set 'is_osc' when OpenSC
2019         is used.
2020         
2021 2003-08-25  Werner Koch  <wk@gnupg.org>
2022
2023         * command.c (cmd_setattr): Use a copy of LINE.
2024         (cmd_genkey): Use a copy of KEYNO.
2025         (cmd_passwd): Use a copy of CHVNOSTR.
2026         (cmd_pksign, cmd_pkauth, cmd_pkdecrypt): s/strdup/xtrystrdup/.
2027
2028 2003-08-19  Werner Koch  <wk@gnupg.org>
2029
2030         * scdaemon.c, scdaemon.h: New option --pcsc-driver.
2031         * apdu.c (apdu_open_reader): Use that option here instead of a
2032         hardcoded one.
2033
2034 2003-08-18  Werner Koch  <wk@gnupg.org>
2035
2036         * Makefile.am: Add OPENSC_LIBS to all programs. 
2037
2038         * scdaemon.c, scdaemon.h: New option --disable-opensc.
2039         * card.c (card_open): Implement it.
2040         * apdu.c (open_osc_reader, osc_send_apdu): New.
2041         (apdu_open_reader) [HAVE_OPENSC]: Use the opensc driver if not
2042         disabled.
2043         (error_string) [HAVE_OPENSC]: Use sc_strerror.
2044         (send_apdu) [HAVE_OPENSC]: Call osc_apdu_send.
2045
2046         * card-p15.c (p15_enum_keypairs, p15_prepare_key): Adjusted for
2047         libgpg-error.
2048
2049 2003-08-14  Timo Schulz  <twoaday@freakmail.de>
2050
2051         * apdu.c (ct_activate_card): Change the code a little to avoid
2052         problems with other readers.
2053         * Always use 'dynload.h' instead of 'dlfcn.h'.
2054
2055 2003-08-05  Werner Koch  <wk@gnupg.org>
2056
2057         * app-openpgp.c (dump_all_do): Don't analyze constructed DOs after
2058         an error.
2059
2060 2003-08-04  Werner Koch  <wk@gnupg.org>
2061
2062         * app.c (app_set_default_reader_port): New.
2063         (select_application): Use it here.
2064         * scdaemon.c (main): and here.
2065         * sc-copykeys.c: --reader-port does now take a string.
2066         * sc-investigate.c, scdaemon.c: Ditto.
2067         * apdu.c (apdu_open_reader): Ditto.  Load pcsclite if no ctapi
2068         driver is configured.  Always include code for ctapi.
2069         (new_reader_slot): Don't test for already used ports and remove
2070         port arg.
2071         (open_pcsc_reader, pcsc_send_apdu, pcsc_error_string): New.
2072         (apdu_send_le): Changed RC to long to cope with PC/SC.
2073
2074         * scdaemon.c, scdaemon.h: New option --ctapi-driver.
2075         * sc-investigate.c, sc-copykeys.c: Ditto.
2076         
2077 2003-07-31  Werner Koch  <wk@gnupg.org>
2078
2079         * Makefile.am (scdaemon_LDADD): Added INTLLIBS.
2080
2081 2003-07-28  Werner Koch  <wk@gnupg.org>
2082
2083         * app-openpgp.c (do_setattr): Change implementation.  Allow all
2084         useful DOs.
2085
2086 2003-07-27  Werner Koch  <wk@gnupg.org>
2087
2088         Adjusted for gcry_mpi_print and gcry_mpi_scan API change.
2089
2090 2003-07-24  Werner Koch  <wk@gnupg.org>
2091
2092         * app-openpgp.c (do_learn_status): Print more status information.
2093         (app_select_openpgp): Store the card version.
2094         (store_fpr): Add argument card_version and fix DOs for old cards.
2095         (app_openpgp_storekey): Likewise.
2096
2097 2003-07-23  Werner Koch  <wk@gnupg.org>
2098
2099         * command.c (cmd_pkauth): New.
2100         (cmd_setdata): Check whether data was given at all to avoid
2101         passing 0 to malloc.
2102
2103         * app.c (app_auth): New.
2104         * app-openpgp.c (do_auth): New.
2105
2106 2003-07-22  Werner Koch  <wk@gnupg.org>
2107
2108         * command.c (cmd_passwd): New.
2109         * app.c (app_change_pin): New.
2110         * app-openpgp.c (do_change_pin): New.
2111         * iso7816.c (iso7816_reset_retry_counter): Implemented.
2112
2113         * sc-investigate.c (main): New option --gen-random.
2114         * iso7816.c (iso7816_get_challenge): Don't create APDUs with a
2115         length larger than 255.
2116
2117 2003-07-17  Werner Koch  <wk@gnupg.org>
2118
2119         * command.c (cmd_random): New command RANDOM.
2120
2121         * iso7816.c (map_sw): New. Use it in this file to return
2122         meaningful error messages.  Changed all public fucntions to return
2123         a gpg_error_t.
2124         (iso7816_change_reference_data): New.
2125         * apdu.c (apdu_open_reader): Use faked status words for soem
2126         system errors.
2127
2128 2003-07-16  Werner Koch  <wk@gnupg.org>
2129
2130         * apdu.c (apdu_send_simple): Use apdu_send_le so that we can
2131         specify not to send Le as it should be.
2132
2133 2003-07-15  Werner Koch  <wk@gnupg.org>
2134
2135         * Makefile.am: Add sc-copykeys program.
2136         * sc-copykeys.c: New.
2137         * app-openpgp.c (app_openpgp_storekey): New.
2138         (app_openpgp_cardinfo): New.
2139         (count_bits): New.
2140         (store_fpr): And use it here to get the actual length in bit.
2141
2142 2003-07-03  Werner Koch  <wk@gnupg.org>
2143
2144         * app-openpgp.c (do_setattr): Add setting of the URL.
2145         (app_select_openpgp): Dump card data only in very verbose mode.
2146         (do_decipher): New.
2147
2148 2003-07-02  Werner Koch  <wk@gnupg.org>
2149
2150         * app-openpgp.c (get_sig_counter): New.
2151         (do_sign): Print the signature counter and enable the PIN callback.
2152         (do_genkey): Implement the PIN callback. 
2153
2154 2003-07-01  Werner Koch  <wk@gnupg.org>
2155
2156         * app-openpgp.c (store_fpr): Fixed fingerprint calculation.
2157
2158 2003-06-26  Werner Koch  <wk@gnupg.org>
2159
2160         * app-openpgp.c (find_tlv): Fixed length header parsing.
2161
2162         * app.c (app_genkey): New.
2163         * command.c (cmd_genkey): New.
2164
2165 2003-06-25  Werner Koch  <wk@gnupg.org>
2166
2167         * command.c (percent_plus_unescape): New.
2168         (cmd_setattr): New.
2169
2170 2003-06-24  Werner Koch  <wk@gnupg.org>
2171
2172         * command.c (send_status_info): New.
2173
2174         * app-openpgp.c (app_select_openpgp): Replace SLOT arg by APP arg
2175         and setup the function pointers in APP on success. Changed callers.
2176         * app.c: New.
2177         * app-common.h: New.
2178         * scdaemon.h (APP): New type to handle applications.
2179         (server_control_s): Add an APP context field.
2180
2181         * command.c (cmd_serialno): Handle applications.
2182         (cmd_pksign): Ditto.
2183         (cmd_pkdecrypt): Ditto.
2184         (reset_notify): Ditto.
2185         (cmd_learn): For now return error for application contexts.
2186         (cmd_readcert): Ditto.
2187         (cmd_readkey): Ditto.
2188
2189 2003-06-04  Werner Koch  <wk@gnupg.org>
2190
2191         * card.c (map_sc_err): Renamed gpg_make_err to gpg_err_make.
2192
2193         Renamed error codes from INVALID to INV and removed _ERROR suffixes.
2194
2195 2003-06-03  Werner Koch  <wk@gnupg.org>
2196
2197         Changed all error codes in all files to the new libgpg-error scheme.
2198
2199         * scdaemon.h: Include gpg-error.h and errno.h
2200         * card.c (map_sc_err): Use unknown for the error source.
2201         * Makefile.am: Link with libgpg-error
2202
2203 2003-05-14  Werner Koch  <wk@gnupg.org>
2204
2205         * atr.c, atr.h: New.
2206         * sc-investigate.c: Dump the ATR in a human readable format.
2207
2208 2003-05-08  Werner Koch  <wk@gnupg.org>
2209
2210         * scdaemon.h (DBG_CARD_IO_VALUE): New.
2211
2212         * sc-investigate.c: New.
2213         * scdaemon.c (main): Removed --print-atr option.
2214
2215         * iso7816.c, iso7816.h, app-openpgp.c: New.
2216
2217 2003-04-29  Werner Koch  <wk@gnupg.org>
2218
2219         * scdaemon.c: New options --print-atr and --reader-port
2220         * apdu.c, apdu.h: New
2221
2222         * card.c, card-p15.c, card-dinsig.c: Allow build without OpenSC.
2223         
2224         * Makefile.am (LDFLAGS): Removed.
2225
2226         * command.c (register_commands): Adjusted for new Assuan semantics.
2227
2228 2002-08-21  Werner Koch  <wk@gnupg.org>
2229
2230         * scdaemon.c (main): New option --daemon so that the program is
2231         not accidently started in the background.
2232
2233 2002-08-16  Werner Koch  <wk@gnupg.org>
2234
2235         * scdaemon.c: Include i18n.h.
2236
2237         * card-common.h (struct p15_private_s): Forward declaration.  Add
2238         it to card_ctx_s.
2239         * card.c (card_close): Make sure private data is released.
2240         (card_enum_certs): New.
2241         * card-p15.c (p15_release_private_data): New.
2242         (init_private_data): New to work around an OpenSC weirdness.
2243         (p15_enum_keypairs): Do an OpenSC get_objects only once.
2244         (p15_enum_certs): New.
2245         (card_p15_bind): Bind new function.
2246         * command.c (cmd_learn): Return information about the certificates.
2247
2248 2002-08-09  Werner Koch  <wk@gnupg.org>
2249
2250         * card.c (card_get_serial_and_stamp): Use the tokeinfo serial
2251         number as a fallback. Add a special prefix for serial numbers.
2252
2253 2002-07-30  Werner Koch  <wk@gnupg.org>
2254
2255         Changes to cope with OpenSC 0.7.0:
2256         
2257         * card.c: Removed the check for the packed opensc version.
2258         Changed include file names of opensc.
2259         (map_sc_err): Adjusted error codes for new opensc version.
2260         * card-p15.c: Changed include filename of opensc.
2261         * card-dinsig.c: Ditto.
2262
2263         * card-p15.c (p15_decipher): Add flags argument to OpenSC call.
2264         
2265 2002-07-24  Werner Koch  <wk@gnupg.org>
2266
2267         * card.c (find_simple_tlv, find_iccsn): New.
2268         (card_get_serial_and_stamp): Improved serial number parser.
2269
2270 2002-06-27  Werner Koch  <wk@gnupg.org>
2271
2272         * scdaemon.c (main): Use GNUPG_DEFAULT_HOMEDIR constant.
2273
2274 2002-06-15  Werner Koch  <wk@gnupg.org>
2275
2276         * card-dinsig.c: Documented some stuff from the DIN norm.
2277
2278 2002-04-15  Werner Koch  <wk@gnupg.org>
2279
2280         * command.c (cmd_pksign, cmd_pkdecrypt): Use a copy of the key ID.
2281
2282 2002-04-12  Werner Koch  <wk@gnupg.org>
2283
2284         * scdaemon.c: New option --debug-sc N.
2285         * card.c (card_open): set it here.
2286
2287         * card-p15.c (p15_prepare_key): Factored out common code from ...
2288         (p15_sign, p15_decipher): here and made the decryption work the
2289         regular way.
2290
2291 2002-04-10  Werner Koch  <wk@gnupg.org>
2292
2293         * card.c (card_open): Return immediately when no reader is available.
2294
2295 2002-03-27  Werner Koch  <wk@gnupg.org>
2296
2297         * card.c (card_open, card_close): Adjusted for changes in OpenSC.
2298
2299 2002-03-10  Werner Koch  <wk@gnupg.org>
2300
2301         * card-p15.c, card-dinsig.c, card-common.h: New.
2302         * card.c: Factored most code out to the new modules, so that we
2303         can better support different types of card applications.
2304
2305 2002-01-26  Werner Koch  <wk@gnupg.org>
2306
2307         * scdaemon.c scdaemon.h, command.c: New. Based on the code from
2308         the gpg-agent.
2309
2310         
2311  Copyright 2002, 2003, 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
2312
2313  This file is free software; as a special exception the author gives
2314  unlimited permission to copy and/or distribute it, with or without
2315  modifications, as long as this notice is preserved.
2316
2317  This file is distributed in the hope that it will be useful, but
2318  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
2319  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.