(ccid_open_reader): Store the vendor ID.
[gnupg.git] / scd / ChangeLog
1 2004-10-06  Werner Koch  <wk@g10code.de>
2
3         * ccid-driver.c (ccid_open_reader): Store the vendor ID.
4         (ccid_transceive_secure): New.
5         (parse_ccid_descriptor): Workaround for an SCM reader problem.
6
7 2004-10-04  Werner Koch  <wk@g10code.de>
8
9         * ccid-driver.c (send_escape_cmd): New.
10
11 2004-09-30  Werner Koch  <wk@g10code.com>
12
13         * Makefile.am: Adjusted for gettext 0.14.
14
15         * app-openpgp.c (do_sign): Add the error string to the verify
16         failed messages.
17
18 2004-09-27  Werner Koch  <wk@g10code.com>
19
20         From gnupg 1.3
21
22         * app-openpgp.c: Made all strings translatable.
23         (verify_chv3) [GNUPG_MAJOR_VERSION]: Make opt.allow_admin
24         available for use in gnupg 2. 
25         (verify_chv3): Reimplemented countdown showing to use only
26         functions from this module.  Flush the CVH status cache on a
27         successful read.
28         (get_one_do): Hack to bypass the cache for cards versions > 1.0.
29         (store_fpr): Store the creation date for card version > 1.0.
30
31         * app-openpgp.c (app_openpgp_storekey): Call flush_cache.
32         (get_cached_data): Move local data initialization to ..
33         (app_select_openpgp): .. here. Read some flags for later use.
34         (do_getattr): New read-only attribute EXTCAP.
35         
36         * apdu.c (open_pcsc_reader): Do not print empty reader string.
37
38         * ccid-driver.c (do_close_reader): Factored some code out from ...
39         (ccid_close_reader): ..here.
40         (ccid_shutdown_reader): New.
41
42         * apdu.c (apdu_shutdown_reader): New.
43         (shutdown_ccid_reader): New.
44
45         * apdu.c (open_ccid_reader): New arg PORTSTR.  Pass it to
46         ccid_open_reader.
47         (apdu_open_reader): Pass portstr to open_ccid_reader.
48         (apdu_open_reader): No fallback if a full CCID reader id has been
49         given.
50
51         * ccid-driver.c (ccid_get_reader_list): New.
52         (ccid_open_reader): Changed API to take a string for the reader.
53         Removed al the cruft for the libusb development vesion which seems
54         not to be maintained anymore and there are no packages anyway.
55         The stable library works just fine.
56         (struct ccid_reader_id_s): Deleted and replaced everywhere by a
57         simple string.
58         (usb_get_string_simple): Removed.
59         (bulk_in): Do valgrind hack here and not just everywhere.
60
61         * ccid-driver.c (read_device_info): Removed.
62         (make_reader_id, scan_or_find_devices): New.
63         (ccid_open_reader): Simplified by make use of the new functions.
64         (ccid_set_debug_level): New.  Changed the macros to make use of
65         it.  It has turned out that it is often useful to enable debugging
66         at runtime so I added this option.
67
68         From gnupg 1.3 - David Shaw  <dshaw@jabberwocky.com>
69
70         * app-openpgp.c (verify_chv3): Show a countdown of how many wrong
71         admin PINs can be entered before the card is locked.
72
73         * app-openpgp.c (get_cached_data): Avoid mallocing zero since it
74         breaks us when using --enable-m-guard.
75
76         * ccid-driver.c (usb_get_string_simple): Replacement function to
77         work with older libusb.
78
79         * ccid-driver.c (read_device_info): Fix segfault when usb device
80         is not accessible.
81         (ccid_open_reader): Allow working with an even older version of
82         libusb (usb_busses global instead of usb_get_busses()).
83
84 2004-09-11  Werner Koch  <wk@g10code.com>
85
86         * app-openpgp.c (app_select_openpgp): Its app_munge_serialno and
87         not app_number_serialno.
88
89 2004-08-20  Werner Koch  <wk@g10code.de>
90
91         * app.c (select_application): Fixed serial number extraction and
92         added the BMI card workaround.
93         (app_munge_serialno): New.
94         * app-openpgp.c (app_select_openpgp): Try munging serialno.
95
96 2004-08-05  Werner Koch  <wk@g10code.de>
97
98         * scdaemon.c (main): New option --disable-application.
99         * app.c (is_app_allowed): New.
100         (select_application): Use it to check for disabled applications.
101
102         * ccid-driver.h (CCID_DRIVER_ERR_ABORTED): New.
103         * ccid-driver.c (ccid_open_reader): Support the stable 0.1 version
104         of libusb.
105         (ccid_get_atr): Handle short messages.
106
107         * apdu.c (my_rapdu_get_status): Implemented.
108
109 2004-07-27  Moritz Schulte  <moritz@g10code.com>
110
111         * apdu.c: Include <signal.h>.
112
113         * Makefile.am: Use @DL_LIBS@ instead of -ldl.
114
115 2004-07-22  Werner Koch  <wk@g10code.de>
116
117         * Makefile.am: Make OpenSC lib link after libgcrypt. Do not link
118         to pth.
119         * apdu.c: Don't use Pth if we use OpenSC.
120         * sc-investigate.c, scdaemon.c: Disable use of pth if OpenSC is used. 
121
122         * scdaemon.c (main): Bumbed thread stack size up to 512k.
123
124 2004-07-16  Werner Koch  <wk@gnupg.org>
125
126         * apdu.c (reader_table_s):  Add function pointers for the backends.
127         (apdu_close_reader, apdu_get_status, apdu_activate) 
128         (send_apdu): Make use of them.
129         (new_reader_slot): Intialize them to NULL.
130         (dump_ccid_reader_status, ct_dump_reader_status): New.
131         (dump_pcsc_reader_status): New.
132         (open_ct_reader, open_pcsc_reader, open_ccid_reader) 
133         (open_osc_reader, open_rapdu_reader): Intialize function pointers.
134         (ct_activate_card, ct_send_apdu, pcsc_send_apdu, osc_send_apdu) 
135         (error_string): Removed.  Replaced by apdu_strerror.
136         (get_ccid_error_string): Removed.
137         (ct_activate_card): Remove the unused loop.
138         (reset_ct_reader): Implemented.
139         (ct_send_apdu): Activate the card if not yet done.
140         (pcsc_send_apdu): Ditto.
141
142 2004-07-15  Werner Koch  <wk@gnupg.org>
143
144         * ccid-driver.h: Add error codes.
145         * ccid-driver.c: Implement more or less proper error codes all
146         over the place.
147
148         * apdu.c (apdu_send_direct): New.
149         (get_ccid_error_string): Add some error code mappings.
150         (send_apdu): Pass error codes along for drivers already supporting
151         them.
152         (host_sw_string): New.
153         (get_ccid_error_string): Use above.
154         (send_apdu_ccid): Reset the reader if it has not yet been done.
155         (open_ccid_reader): Don't care if the ATR can't be read.
156         (apdu_activate_card): New.
157         (apdu_strerror): New.
158         (dump_reader_status): Only enable it with opt.VERBOSE.
159         * iso7816.c (map_sw): Add mappings for the new error codes.
160
161 2004-07-02  Werner Koch  <wk@gnupg.org>
162
163         * apdu.c (open_ct_reader, open_pcsc_reader, open_ccid_reader)
164         (reset_ccid_reader, open_osc_reader): Call dump_reader_status only
165         in verbose mode.
166
167 2004-07-01  Werner Koch  <wk@gnupg.org>
168
169         * sc-investigate.c: Initialize Pth which is now required.
170         (interactive_shell): New command "readpk".
171
172         * app-openpgp.c (do_getattr): Fix for sending CA-FPR.
173
174 2004-06-30  Werner Koch  <wk@gnupg.org>
175
176         * app-openpgp.c (app_openpgp_readkey): Fixed check for valid
177         exponent.
178
179 2004-06-18  Werner Koch  <wk@g10code.com>
180
181         * sc-investigate.c (my_read_line): Renamed from read_line.
182
183 2004-06-16  Werner Koch  <wk@gnupg.org>
184
185         * apdu.c (osc_get_status): Fixed type in function name. Noted by
186         Axel Thimm.  Yes, I didn't tested it with OpenSC :-(.
187
188 2004-04-28  Werner Koch  <wk@gnupg.org>
189
190         * app-openpgp.c (do_setattr): Sync FORCE_CHV1.
191
192 2004-04-27  Werner Koch  <wk@gnupg.org>
193
194         * app-common.h: Do not include ksba.h for gnupg 1.
195
196 2004-04-26  Werner Koch  <wk@gnupg.org>
197
198         * app-common.h: New members FNC.DEINIT and APP_LOCAL.
199         * app.c (release_application): Call new deconstructor.
200         * app-openpgp.c (do_deinit): New.
201         (get_cached_data, flush_cache_item, flush_cache_after_error)
202         (flush_cache): New.
203         (get_one_do): Replaced arg SLOT by APP.  Make used of cached data.
204         (verify_chv2, verify_chv3): Flush some cache item after error.
205         (do_change_pin): Ditto.
206         (do_sign): Ditto.
207         (do_setattr): Flush cache item.
208         (do_genkey): Flush the entire cache.
209         (compare_fingerprint): Use cached data.
210
211         * scdaemon.c (main): Do the last change the usual way. This is so
212         that we can easily test for versioned config files above.
213
214 2004-04-26  Marcus Brinkmann  <marcus@g10code.de>
215
216         * scdaemon.c (main): For now, always print default filename for
217         --gpgconf-list, and never /dev/null.
218
219 2004-04-21  Werner Koch  <wk@gnupg.org>
220
221         * command.c (scd_update_reader_status_file): Send a signal back to
222         the client.
223         (option_handler): Parse the new event-signal option.
224
225         * scdaemon.c (handle_signal): Do not use SIGUSR{1,2} anymore for
226         changing the verbosity.
227
228 2004-04-20  Werner Koch  <wk@gnupg.org>
229
230         * command.c (scd_update_reader_status_file): Write status files.
231
232         * app-help.c (app_help_read_length_of_cert): Fixed calculation of
233         R_CERTOFF.
234
235         * pcsc-wrapper.c: New.
236         * Makefile.am (pkglib_PROGRAMS): Install it here.
237         * apdu.c (writen, readn): New.
238         (open_pcsc_reader, pcsc_send_apdu, close_pcsc_reader): Use the
239         pcsc-wrapper if we are using Pth.
240         (apdu_send_le): Reinitialize RESULTLEN.  Handle SW_EOF_REACHED
241         like SW_SUCCESS.
242
243 2004-04-19  Werner Koch  <wk@gnupg.org>
244
245         * ccid-driver.c (parse_ccid_descriptor): Store some of the reader
246         features away.  New arg HANDLE
247         (read_device_info): New arg HANDLE. Changed caller.
248         (bulk_in): Handle time extension requests.
249         (ccid_get_atr): Setup parameters and the IFSD.
250         (compute_edc): New. Factored out code.
251         (ccid_transceive): Use default NADs when required.
252
253 2004-04-14  Werner Koch  <wk@gnupg.org>
254
255         * scdaemon.h (server_control_s): Add member READER_SLOT.
256         * scdaemon.c (scd_init_default_ctrl): Initialize READER_SLOT to -1.
257         * command.c (open_card): Reuse an open slot.
258         (reset_notify): Just reset the slot if supported by the reader.
259         (do_reset): Factored code from above out.
260         (scd_command_handler): Use it for cleanup.
261
262         * apdu.h: New pseudo stati SW_HOST_NOT_SUPPORTED,
263         SW_HOST_LOCKING_FAILED and SW_HOST_BUSY.
264         * iso7816.c (map_sw): Map it.
265         
266         * ccid-driver.c (ccid_slot_status): Add arg STATUSBITS.
267         * apdu.c (apdu_get_status): New.
268         (ct_get_status, pcsc_get_status, ocsc_get_status): New stubs.
269         (get_status_ccid): New.
270         (apdu_reset): New.
271         (reset_ct_reader, reset_pcsc_reader, reset_osc_reader): New stubs.
272         (reset_ccid_reader): New.
273         (apdu_enum_reader): New.
274         
275         * apdu.c (lock_slot, trylock_slot, unlock_slot): New helpers.
276         (new_reader_slot) [USE_GNU_PTH]: Init mutex.
277         (apdu_reset, apdu_get_status, apdu_send_le): Run functions
278         in locked mode.
279
280         * command.c (scd_update_reader_status_file): New.
281         * scdaemon.c (handle_tick): Call it.
282
283 2004-04-13  Werner Koch  <wk@gnupg.org>
284
285         * scdaemon.c: Convert to a Pth application.
286         (handle_signal, ticker_thread, handle_tick): New.
287         (main): Fire up the ticker thread in server mode.
288
289 2004-03-23  Werner Koch  <wk@gnupg.org>
290
291         * scdaemon.c (main) <gpgconf_list>: Fixed output for pcsc_driver.
292
293 2004-03-17  Werner Koch  <wk@gnupg.org>
294
295         * tlv.c (parse_ber_header): Do not check for tag overflow - it
296         does not make sense.  Simplified the check for length overflow.
297
298         * scdaemon.c (main) <gpgconf>: Fixed default value quoting.
299
300 2004-03-16  Werner Koch  <wk@gnupg.org>
301
302         * app-dinsig.c: Implemented. Based on app-nks.c and card-dinsig.c
303         * app-nks.c (get_length_of_cert): Removed.
304         * app-help.c: New.
305         (app_help_read_length_of_cert): New.  Code taken from above.  New
306         optional arg R_CERTOFF.
307
308         * card-dinsig.c: Removed.
309         * card.c (card_get_serial_and_stamp): Do not bind to the old and
310         never finsiged card-dinsig.c.
311
312         * iso7816.c (iso7816_read_binary): Allow for an NMAX > 254.
313
314 2004-03-11  Werner Koch  <wk@gnupg.org>
315
316         * scdaemon.h (out_of_core): Removed.  Replaced callers by standard
317         gpg_error function.
318
319         * apdu.c, iso7816.c, ccid-driver.c [GNUPG_SCD_MAIN_HEADER]: Allow
320         to include a header defined by the compiler.  This helps us to
321         reuse the source in other software.
322
323 2004-03-10  Werner Koch  <wk@gnupg.org>
324
325         * iso7816.c (iso7816_read_record): New arg SHORT_EF.  Changed all
326         callers.
327
328 2004-02-18  Werner Koch  <wk@gnupg.org>
329
330         * sc-investigate.c (main): Setup the used character set.
331         * scdaemon.c (main): Ditto.
332
333         * scdaemon.c (set_debug): New.  Add option --debug-level.
334         (main): Add option --gpgconf-list.
335
336 2004-02-12  Werner Koch  <wk@gnupg.org>
337
338         * Makefile.am: Include cmacros.am for common flags.
339
340 2004-01-29  Werner Koch  <wk@gnupg.org>
341
342         * command.c (reset_notify): Release the application context and
343         close the reader.
344
345 2004-01-28  Werner Koch  <wk@gnupg.org>
346
347         * iso7816.c (iso7816_manage_security_env): New.
348         (iso7816_decipher): Add PADIND argument.
349
350 2004-01-27  Werner Koch  <wk@gnupg.org>
351
352         * command.c (cmd_readcert, cmd_readkey): Work on a copy of LINE.
353
354         * app-common.h (app_ctx_s): Added readcert field.
355         * app.c (app_readcert): New.
356         * tlv.c (parse_ber_header): Added; taken from libksba.
357
358 2004-01-26  Werner Koch  <wk@gnupg.org>
359
360         * card.c (map_sc_err): Use SCD as the error source.
361
362         * command.c (open_card): ADD arg NAME to allow requesting a
363         specific application.  Changed all callers.
364         (cmd_serialno): Allow optional argument to select the desired
365         application.
366
367         * app-nks.c: New. 
368
369         * scdaemon.h (opt): Add READER_PORT.
370         * scdaemon.c (main): Set it here.
371         * app.c (app_set_default_reader_port): Removed.
372         (select_application): Add NAME arg and figure out a
373         default serial number from the GDO. Add SLOT arg and remove all
374         reader management.
375         (release_application): New.
376         (app_write_learn_status): Output an APPTYPE status line.
377         * command.c (open_card): Adapt for select_application change.
378         * app-openpgp.c (app_select_openpgp): Removed SN and SNLEN args
379         and set it directly.  Changed all callers.
380
381 2004-01-25  Werner Koch  <wk@gnupg.org>
382
383         * iso7816.c (iso7816_select_application): P1 kludge for OpenPGP
384         card.
385         * app-openpgp.c (find_tlv): Factor out this function to ..
386         * tlv.c, tlv.h: .. new.
387
388         * scdaemon.h: Introduced app_t and ctrl_t as the new types for APP
389         and CTRL.
390
391 2004-01-21  Werner Koch  <wk@gnupg.org>
392
393         * apdu.c (apdu_send_le): Treat SW_EOF_REACHED as a warning.
394
395 2004-01-20  Werner Koch  <wk@gnupg.org>
396
397         * iso7816.c (iso7816_read_binary): New.
398         (iso7816_select_file): New.
399         (iso7816_list_directory): New.
400
401         * sc-investigate.c: Add option -i.
402         (select_app, read_line, interactive_shell): New.
403
404 2004-01-16  Werner Koch  <wk@gnupg.org>
405
406         * apdu.h: Add SW_FILE_NOT_FOUND.
407         * iso7816.c (map_sw): Map it to GPG_ERR_ENOENT.
408         * iso7816.c (iso7816_select_file): New.
409
410         * app-dinsig.c: New file w/o any real code yet.
411         * Makefile.am (scdaemon_SOURCES,sc_investigate_SOURCES): Add file.
412
413         * sc-investigate.c: Add option --disable-ccid.
414
415 2003-12-19  Werner Koch  <wk@gnupg.org>
416
417         * apdu.c (apdu_send_le): Send a get_response with the indicated
418         length and not the 64 bytes we used for testing.
419
420         * app-openpgp.c (verify_chv2, verify_chv3, do_sign): Check the
421         minimum length of the passphrase, so that we don't need to
422         decrement the retry counter.
423
424 2003-12-17  Werner Koch  <wk@gnupg.org>
425
426         * card-p15.c (p15_enum_keypairs): Replaced KRC by RC.
427         * card-dinsig.c (dinsig_enum_keypairs): Ditto.
428
429 2003-12-16  Werner Koch  <wk@gnupg.org>
430
431         * scdaemon.c (main): Set the prefixes for assuan logging.
432
433 2003-11-17  Werner Koch  <wk@gnupg.org>
434
435         * scdaemon.c, scdaemon.h: New options --allow-admin and --deny-admin.
436         * app-openpgp.c (verify_chv3): Check it here.
437
438 2003-11-12  Werner Koch  <wk@gnupg.org>
439
440         Adjusted for API changes in Libksba.
441
442 2003-10-30  Werner Koch  <wk@gnupg.org>
443
444         * apdu.c (close_ct_reader, close_pcsc_reader): Implemented.
445         (get_ccid_error_string): New.  Not very useful messages, though.
446
447 2003-10-25  Werner Koch  <wk@gnupg.org>
448
449         * ccid-driver.c (ccid_open_reader): Return an error if no USB
450         devices are found.
451
452         * command.c (cmd_genkey, cmd_passwd): Fixed faulty use of
453         !spacep().
454
455         * apdu.c (apdu_open_reader): Hacks for PC/SC under Windows.
456
457 2003-10-20  Werner Koch  <wk@gnupg.org>
458
459         * command.c (cmd_checkpin): New.
460         (register_commands): Add command CHECKPIN.
461         * app.c (app_check_pin): New.
462         * app-openpgp.c (check_against_given_fingerprint): New. Factored
463         out that code elsewhere.
464         (do_check_pin): New.
465
466 2003-10-10  Werner Koch  <wk@gnupg.org>
467
468         * ccid-driver.c (ccid_close_reader): New.
469
470         * apdu.c (close_ccid_reader, close_ct_reader, close_csc_reader)
471         (close_osc_reader, apdu_close_reader): New.  Not all are properly
472         implemented yet.
473
474 2003-10-09  Werner Koch  <wk@gnupg.org>
475
476         * ccid-driver.c (ccid_transceive): Add T=1 chaining for sending.
477
478 2003-10-08  Werner Koch  <wk@gnupg.org>
479
480         * app-openpgp.c (do_getattr): Support SERIALNO and AID.
481
482 2003-10-01  Werner Koch  <wk@gnupg.org>
483
484         * ccid-driver.c: Detect GnuPG 1.3 and include appropriate files.
485         * apdu.c: Ditto.
486         * app-openpgp.c: Ditto.
487         * iso7816.c: Ditto.
488         (generate_keypair): Renamed to ..
489         (do_generate_keypair): .. this.
490         * app-common.h [GNUPG_MAJOR_VERSION]: New.
491         * iso7816.h [GNUPG_MAJOR_VERSION]: Include cardglue.h
492
493 2003-09-30  Werner Koch  <wk@gnupg.org>
494
495         * command.c (cmd_getattr): New command GETATTR.
496         * app.c (app_setattr): New.
497         (do_getattr): New.
498         (do_learn_status): Reimplemented in terms of do_getattr.
499
500         * app-openpgp.c (do_change_pin): Make sure CVH1 and CHV2 are
501         always synced.
502         (verify_chv2, verify_chv3): New. Factored out common code.
503         (do_setattr, do_sign, do_auth, do_decipher): Change the names of
504         the prompts to match that we have only 2 different PINs.
505         (app_select_openpgp): Check whether the card enforced CHV1.
506         (convert_sig_counter_value): New. Factor out code from
507         get_sig_counter.
508
509 2003-09-28  Werner Koch  <wk@gnupg.org>
510
511         * app-openpgp.c (dump_all_do): Use gpg_err_code and not gpg_error.
512
513 2003-09-19  Werner Koch  <wk@gnupg.org>
514
515         * ccid-driver.c (parse_ccid_descriptor): New.
516         (read_device_info): New.
517         (ccid_open_reader): Check that the device has all required features.
518
519 2003-09-06  Werner Koch  <wk@gnupg.org>
520
521         * scdaemon.c (main): --pcsc-driver again defaults to pcsclite.
522         David Corcoran was so kind to remove the GPL incompatible
523         advertisng clause from pcsclite.
524         * apdu.c (apdu_open_reader): Actually make pcsc-driver option work.
525
526 2003-09-05  Werner Koch  <wk@gnupg.org>
527
528         * ccid-driver.c: More work, data can now actually be retrieved.
529         * ccid-driver.c, ccid-driver.h: Alternativley allow use under BSD
530         conditions.
531
532 2003-09-02  Werner Koch  <wk@gnupg.org>
533
534         * scdaemon.c, scdaemon.h: New option --pcsc-ccid.
535         * ccid-driver.c, ccid-driver.h: New but far from being useful.
536         * Makefile.am: Add above.
537         * apdu.c: Add support for that ccid driver.
538         
539 2003-08-26  Timo Schulz  <twoaday@freakmail.de>
540
541         * apdu.c (new_reader_slot): Only set 'is_osc' when OpenSC
542         is used.
543         
544 2003-08-25  Werner Koch  <wk@gnupg.org>
545
546         * command.c (cmd_setattr): Use a copy of LINE.
547         (cmd_genkey): Use a copy of KEYNO.
548         (cmd_passwd): Use a copy of CHVNOSTR.
549         (cmd_pksign, cmd_pkauth, cmd_pkdecrypt): s/strdup/xtrystrdup/.
550
551 2003-08-19  Werner Koch  <wk@gnupg.org>
552
553         * scdaemon.c, scdaemon.h: New option --pcsc-driver.
554         * apdu.c (apdu_open_reader): Use that option here instead of a
555         hardcoded one.
556
557 2003-08-18  Werner Koch  <wk@gnupg.org>
558
559         * Makefile.am: Add OPENSC_LIBS to all programs. 
560
561         * scdaemon.c, scdaemon.h: New option --disable-opensc.
562         * card.c (card_open): Implement it.
563         * apdu.c (open_osc_reader, osc_send_apdu): New.
564         (apdu_open_reader) [HAVE_OPENSC]: Use the opensc driver if not
565         disabled.
566         (error_string) [HAVE_OPENSC]: Use sc_strerror.
567         (send_apdu) [HAVE_OPENSC]: Call osc_apdu_send.
568
569         * card-p15.c (p15_enum_keypairs, p15_prepare_key): Adjusted for
570         libgpg-error.
571
572 2003-08-14  Timo Schulz  <twoaday@freakmail.de>
573
574         * apdu.c (ct_activate_card): Change the code a little to avoid
575         problems with other readers.
576         * Always use 'dynload.h' instead of 'dlfcn.h'.
577
578 2003-08-05  Werner Koch  <wk@gnupg.org>
579
580         * app-openpgp.c (dump_all_do): Don't analyze constructed DOs after
581         an error.
582
583 2003-08-04  Werner Koch  <wk@gnupg.org>
584
585         * app.c (app_set_default_reader_port): New.
586         (select_application): Use it here.
587         * scdaemon.c (main): and here.
588         * sc-copykeys.c: --reader-port does now take a string.
589         * sc-investigate.c, scdaemon.c: Ditto.
590         * apdu.c (apdu_open_reader): Ditto.  Load pcsclite if no ctapi
591         driver is configured.  Always include code for ctapi.
592         (new_reader_slot): Don't test for already used ports and remove
593         port arg.
594         (open_pcsc_reader, pcsc_send_apdu, pcsc_error_string): New.
595         (apdu_send_le): Changed RC to long to cope with PC/SC.
596
597         * scdaemon.c, scdaemon.h: New option --ctapi-driver.
598         * sc-investigate.c, sc-copykeys.c: Ditto.
599         
600 2003-07-31  Werner Koch  <wk@gnupg.org>
601
602         * Makefile.am (scdaemon_LDADD): Added INTLLIBS.
603
604 2003-07-28  Werner Koch  <wk@gnupg.org>
605
606         * app-openpgp.c (do_setattr): Change implementation.  Allow all
607         useful DOs.
608
609 2003-07-27  Werner Koch  <wk@gnupg.org>
610
611         Adjusted for gcry_mpi_print and gcry_mpi_scan API change.
612
613 2003-07-24  Werner Koch  <wk@gnupg.org>
614
615         * app-openpgp.c (do_learn_status): Print more status information.
616         (app_select_openpgp): Store the card version.
617         (store_fpr): Add argument card_version and fix DOs for old cards.
618         (app_openpgp_storekey): Likewise.
619
620 2003-07-23  Werner Koch  <wk@gnupg.org>
621
622         * command.c (cmd_pkauth): New.
623         (cmd_setdata): Check whether data was given at all to avoid
624         passing 0 to malloc.
625
626         * app.c (app_auth): New.
627         * app-openpgp.c (do_auth): New.
628
629 2003-07-22  Werner Koch  <wk@gnupg.org>
630
631         * command.c (cmd_passwd): New.
632         * app.c (app_change_pin): New.
633         * app-openpgp.c (do_change_pin): New.
634         * iso7816.c (iso7816_reset_retry_counter): Implemented.
635
636         * sc-investigate.c (main): New option --gen-random.
637         * iso7816.c (iso7816_get_challenge): Don't create APDUs with a
638         length larger than 255.
639
640 2003-07-17  Werner Koch  <wk@gnupg.org>
641
642         * command.c (cmd_random): New command RANDOM.
643
644         * iso7816.c (map_sw): New. Use it in this file to return
645         meaningful error messages.  Changed all public fucntions to return
646         a gpg_error_t.
647         (iso7816_change_reference_data): New.
648         * apdu.c (apdu_open_reader): Use faked status words for soem
649         system errors.
650
651 2003-07-16  Werner Koch  <wk@gnupg.org>
652
653         * apdu.c (apdu_send_simple): Use apdu_send_le so that we can
654         specify not to send Le as it should be.
655
656 2003-07-15  Werner Koch  <wk@gnupg.org>
657
658         * Makefile.am: Add sc-copykeys program.
659         * sc-copykeys.c: New.
660         * app-openpgp.c (app_openpgp_storekey): New.
661         (app_openpgp_cardinfo): New.
662         (count_bits): New.
663         (store_fpr): And use it here to get the actual length in bit.
664
665 2003-07-03  Werner Koch  <wk@gnupg.org>
666
667         * app-openpgp.c (do_setattr): Add setting of the URL.
668         (app_select_openpgp): Dump card data only in very verbose mode.
669         (do_decipher): New.
670
671 2003-07-02  Werner Koch  <wk@gnupg.org>
672
673         * app-openpgp.c (get_sig_counter): New.
674         (do_sign): Print the signature counter and enable the PIN callback.
675         (do_genkey): Implement the PIN callback. 
676
677 2003-07-01  Werner Koch  <wk@gnupg.org>
678
679         * app-openpgp.c (store_fpr): Fixed fingerprint calculation.
680
681 2003-06-26  Werner Koch  <wk@gnupg.org>
682
683         * app-openpgp.c (find_tlv): Fixed length header parsing.
684
685         * app.c (app_genkey): New.
686         * command.c (cmd_genkey): New.
687
688 2003-06-25  Werner Koch  <wk@gnupg.org>
689
690         * command.c (percent_plus_unescape): New.
691         (cmd_setattr): New.
692
693 2003-06-24  Werner Koch  <wk@gnupg.org>
694
695         * command.c (send_status_info): New.
696
697         * app-openpgp.c (app_select_openpgp): Replace SLOT arg by APP arg
698         and setup the function pointers in APP on success. Changed callers.
699         * app.c: New.
700         * app-common.h: New.
701         * scdaemon.h (APP): New type to handle applications.
702         (server_control_s): Add an APP context field.
703
704         * command.c (cmd_serialno): Handle applications.
705         (cmd_pksign): Ditto.
706         (cmd_pkdecrypt): Ditto.
707         (reset_notify): Ditto.
708         (cmd_learn): For now return error for application contexts.
709         (cmd_readcert): Ditto.
710         (cmd_readkey): Ditto.
711
712 2003-06-04  Werner Koch  <wk@gnupg.org>
713
714         * card.c (map_sc_err): Renamed gpg_make_err to gpg_err_make.
715
716         Renamed error codes from INVALID to INV and removed _ERROR suffixes.
717
718 2003-06-03  Werner Koch  <wk@gnupg.org>
719
720         Changed all error codes in all files to the new libgpg-error scheme.
721
722         * scdaemon.h: Include gpg-error.h and errno.h
723         * card.c (map_sc_err): Use unknown for the error source.
724         * Makefile.am: Link with libgpg-error
725
726 2003-05-14  Werner Koch  <wk@gnupg.org>
727
728         * atr.c, atr.h: New.
729         * sc-investigate.c: Dump the ATR in a human readable format.
730
731 2003-05-08  Werner Koch  <wk@gnupg.org>
732
733         * scdaemon.h (DBG_CARD_IO_VALUE): New.
734
735         * sc-investigate.c: New.
736         * scdaemon.c (main): Removed --print-atr option.
737
738         * iso7816.c, iso7816.h, app-openpgp.c: New.
739
740 2003-04-29  Werner Koch  <wk@gnupg.org>
741
742         * scdaemon.c: New options --print-atr and --reader-port
743         * apdu.c, apdu.h: New
744
745         * card.c, card-p15.c, card-dinsig.c: Allow build without OpenSC.
746         
747         * Makefile.am (LDFLAGS): Removed.
748
749         * command.c (register_commands): Adjusted for new Assuan semantics.
750
751 2002-08-21  Werner Koch  <wk@gnupg.org>
752
753         * scdaemon.c (main): New option --daemon so that the program is
754         not accidently started in the background.
755
756 2002-08-16  Werner Koch  <wk@gnupg.org>
757
758         * scdaemon.c: Include i18n.h.
759
760         * card-common.h (struct p15_private_s): Forward declaration.  Add
761         it to card_ctx_s.
762         * card.c (card_close): Make sure private data is released.
763         (card_enum_certs): New.
764         * card-p15.c (p15_release_private_data): New.
765         (init_private_data): New to work around an OpenSC weirdness.
766         (p15_enum_keypairs): Do an OpenSC get_objects only once.
767         (p15_enum_certs): New.
768         (card_p15_bind): Bind new function.
769         * command.c (cmd_learn): Return information about the certificates.
770
771 2002-08-09  Werner Koch  <wk@gnupg.org>
772
773         * card.c (card_get_serial_and_stamp): Use the tokeinfo serial
774         number as a fallback. Add a special prefix for serial numbers.
775
776 2002-07-30  Werner Koch  <wk@gnupg.org>
777
778         Changes to cope with OpenSC 0.7.0:
779         
780         * card.c: Removed the check for the packed opensc version.
781         Changed include file names of opensc.
782         (map_sc_err): Adjusted error codes for new opensc version.
783         * card-p15.c: Changed include filename of opensc.
784         * card-dinsig.c: Ditto.
785
786         * card-p15.c (p15_decipher): Add flags argument to OpenSC call.
787         
788 2002-07-24  Werner Koch  <wk@gnupg.org>
789
790         * card.c (find_simple_tlv, find_iccsn): New.
791         (card_get_serial_and_stamp): Improved serial number parser.
792
793 2002-06-27  Werner Koch  <wk@gnupg.org>
794
795         * scdaemon.c (main): Use GNUPG_DEFAULT_HOMEDIR constant.
796
797 2002-06-15  Werner Koch  <wk@gnupg.org>
798
799         * card-dinsig.c: Documented some stuff from the DIN norm.
800
801 2002-04-15  Werner Koch  <wk@gnupg.org>
802
803         * command.c (cmd_pksign, cmd_pkdecrypt): Use a copy of the key ID.
804
805 2002-04-12  Werner Koch  <wk@gnupg.org>
806
807         * scdaemon.c: New option --debug-sc N.
808         * card.c (card_open): set it here.
809
810         * card-p15.c (p15_prepare_key): Factored out common code from ...
811         (p15_sign, p15_decipher): here and made the decryption work the
812         regular way.
813
814 2002-04-10  Werner Koch  <wk@gnupg.org>
815
816         * card.c (card_open): Return immediately when no reader is available.
817
818 2002-03-27  Werner Koch  <wk@gnupg.org>
819
820         * card.c (card_open, card_close): Adjusted for changes in OpenSC.
821
822 2002-03-10  Werner Koch  <wk@gnupg.org>
823
824         * card-p15.c, card-dinsig.c, card-common.h: New.
825         * card.c: Factored most code out to the new modules, so that we
826         can better support different types of card applications.
827
828 2002-01-26  Werner Koch  <wk@gnupg.org>
829
830         * scdaemon.c scdaemon.h, command.c: New. Based on the code from
831         the gpg-agent.
832
833  Copyright 2002 Free Software Foundation, Inc.
834
835  This file is free software; as a special exception the author gives
836  unlimited permission to copy and/or distribute it, with or without
837  modifications, as long as this notice is preserved.
838
839  This file is distributed in the hope that it will be useful, but
840  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
841  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.