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