New debugging optionhs, updates to the manual.
[gnupg.git] / scd / ChangeLog
1 2005-06-06  Werner Koch  <wk@g10code.com>
2
3         * scdaemon.c (main): New option --debug-allow-core-dump. 
4
5 2005-06-03  Werner Koch  <wk@g10code.com>
6
7         * scdaemon.c (handle_connections): Make sure that the signals we
8         are handling are not blocked.Block signals while creating new
9         threads.
10         (handle_connections): Include the file descriptor into the name of
11         the thread.
12
13 2005-06-02  Werner Koch  <wk@g10code.com>
14
15         * app.c (app_dump_state, dump_mutex_state): New.
16         * scdaemon.c (handle_signal): Print it on SIGUSR1.
17
18         * app-openpgp.c (do_writekey): Typo fix.
19
20         * command.c (open_card): Check for locked state even if an
21         application context is available.
22
23         * app-common.h: Add REF_COUNT field.
24         * app.c (release_application, select_application): Implement
25         reference counting to share the context beween connections.
26
27         * app.c (lock_reader, unlock_reader): Take SLOT instead of APP as
28         argument.  Changed all callers.
29         (select_application): Unlock the reader on error.  This should fix
30         the hangs I noticed last week.
31
32         * scdaemon.h: Removed card_ctx_t cruft.
33
34 2005-06-01  Werner Koch  <wk@g10code.com>
35
36         * scdaemon.c: Include mkdtemp.h.
37
38 2005-05-31  Werner Koch  <wk@g10code.com>
39
40         * tlv.c [GNUPG_MAJOR_VERSION==1]: Define constants instead of
41         including a gnupg 1.4 header.
42
43 2005-05-30  Werner Koch  <wk@g10code.com>
44
45         * tlv.c: Add hack to compile without gpg-error.h when used with
46         GnuPG 1.4.
47
48 2005-05-23  Werner Koch  <wk@g10code.com>
49
50         * Makefile.am: Do not build sc-copykeys anymore.
51
52         * app-openpgp.c (app_openpgp_storekey, app_openpgp_readkey)
53         (app_openpgp_cardinfo): Removed.
54
55         * ccid-driver.c (parse_ccid_descriptor): SCR335 FW version 5.14 is
56         good.
57         (do_close_reader): Never do a reset. The caller should instead
58         make sure that the reader has been closed properly.  The new retry
59         code in ccid_slot_status will make sure that the readersatrts up
60         fine even if the last process didn't closed the USB connection
61         properly.
62         (ccid_get_atr): For certain readers try switching to ISO mode.
63         Thanks to Ludovic Rousseau for this hint and the magic numbers.
64         (print_command_failed): New.
65         (bulk_in): Use it here. Add new arg NO_DEBUG.
66         (ccid_slot_status): Disabled debugging.
67
68 2005-05-21  Werner Koch  <wk@g10code.com>
69
70         * scdaemon.c (handle_signal): Print thread info on SIGUSR1.
71
72 2005-05-20  Werner Koch  <wk@g10code.com>
73
74         * ccid-driver.c: Replaced macro DEBUG_T1 by a new debug level.
75         (parse_ccid_descriptor): Mark SCR335 firmware version 5.18 good.
76         (ccid_transceive): Arghhh.  The seqno is another bit in the
77         R-block than in the I block, this was wrong at one place.
78
79         * scdaemon.c: New options --debug-ccid-driver and
80         --debug-disable-ticker.
81
82         * app-openpgp.c (do_genkey, do_writekey): Factored code to check
83         for existing key out into ..
84         (does_key_exist): .. New function.
85
86 2005-05-19  Werner Koch  <wk@g10code.com>
87
88         * tlv.c (parse_sexp): New.
89
90         * command.c (cmd_writekey): New.
91         * app.c (app_writekey): New.
92         * app-common.c (app_t): Add function ptr WRITEKEY.
93         * app-openpgp.c (do_writekey): New.
94
95         * app-openpgp.c (do_readkey) [GNUPG_MAJOR_VERSION==1]: Return error.
96         * app-common.h (app_t) [GNUPG_MAJOR_VERSION==1]: Add a field to
97         store the Assuan context.
98
99 2005-05-17  Werner Koch  <wk@g10code.com>
100
101         * scdaemon.c: Removed non-pth code paths.
102         (create_socket_name, create_server_socket): New.  Taken from
103         ../agent/gpg-agent.
104         (cleanup): Changed to adjust for SOCKET_NAME now being malloced.
105         (ticker_thread): Always use pth_event_occurred; it is again
106         defined for all decent PTH versions.
107         (handle_connections): New. Based on the gpg-agent code.
108         (start_connection_thread): Ditto.
109         (ticker_thread): Removed.
110         (cleanup_sh): Removed.
111         (main): Run the handler for the pipe server in a separate
112         thread.  This replaces the old ticker thread.
113         (scd_get_socket_name): New.
114         * command.c (cmd_getinfo): New command GETINFO.
115         (scd_command_handler): Renamed argument and changed code to use an
116         already connected FD.
117
118 2005-05-15  Werner Koch  <wk@g10code.com>
119
120         * app.c, app-common.h, app-nks.c, app-p15.c, app-dinsig.c
121         * app-openpgp.c: Change most function return types from int to
122         gpg_error_t.
123         * command.c (pin_cb): Ditto.
124         * sc-copykeys.c (pincb): Ditto.
125
126         * app.c (lock_reader, unlock_reader): New.  Changed call handler
127         wrappers to make use of these functions.
128
129 2005-05-07  Werner Koch  <wk@g10code.com>
130
131         * ccid-driver.c (do_close_reader): Don't do a reset before close.
132         Some folks reported that it makes the SCR335 hang less often.
133         Look at the source on how to re-enable it.
134
135 2005-04-27  Werner Koch  <wk@g10code.com>
136
137         * app-p15.c (micardo_mse): New.
138         (do_sign): Call it.
139         * iso7816.c (iso7816_manage_security_env): Allow passing DATA as
140         NULL to indicate an empty Lc.
141         * tlv.c (find_tlv): Check that a found object fits into the
142         buffer.
143         (find_tlv_unchecked): New as replacement for the old non-checking
144         variant.
145         * app.c (select_application): Keep on using the non-checking
146         variant.
147         * app-openpgp.c (get_one_do, dump_all_do): Ditto.
148
149         
150         Removal of the old OpenSC based code.
151         
152         * app-p15.c: New.  Basic support for pkcs15 cards without OpenSC.
153         There are quite a couple of things missing but at least I can use
154         my old TCOS cards from the Aegypten-1 development for signing.
155         * app.c (select_application): Detect pkcs15 applications.
156         * Makefile.am (scdaemon_SOURCES): Removed card.c, card-common.h
157         and card-p15.c because they are now obsolete. Added app-p15.c.
158         Removed all OpenSC stuff.
159         * command.c (do_reset, open_card, cmd_serialno, cmd_learn) 
160         (cmd_readcert, cmd_readkey, cmd_pksign, cmd_pkdecrypt): Removed
161         all special cases for the old card.c based mechanisms.
162         * scdaemon.c, apdu.c: Removed all special cases for OpenSC.
163
164 2005-04-20  Werner Koch  <wk@g10code.com>
165
166         * command.c: Use GPG_ERR_LOCKED instead of EBUSY.
167
168 2005-04-14  Werner Koch  <wk@g10code.com>
169
170         * app-openpgp.c (retrieve_key_material): Rewritten.  Return a
171         proper error code.
172         (retrieve_next_token): Removed.
173         (retrieve_fpr_from_card): Rewritten to make use of DO caching and
174         to take the KEYNO as arg.
175         (get_public_key): Renamed variable for clarity.
176
177 2005-04-12  Werner Koch  <wk@g10code.com>
178
179         Basic support for several sessions.
180         
181         * command.c (scd_command_handler): Replace the primary_connection
182         stuff by a real connection list.  Release the local context on
183         exit.
184         (scd_update_reader_status_file): Update accordingly.  Send signal
185         to all connections who registered an event signal.
186         (cmd_lock, cmd_unlock, register_commands): New commands LOCK and
187         UNLOCK.
188         (cmd_setdata, cmd_pksign, cmd_pkauth, cmd_pkdecrypt, cmd_setattr) 
189         (cmd_genkey, cmd_passwd, cmd_checkpin): Return an error if reader
190         is locked.
191         (do_reset): Handle locking.
192         (open_card): Ditto.  Share the reader slot with other sessions.
193         (get_reader_slot): New.
194         (update_card_removed): New.  Use it in the TEST_CARD_REMOVAL macro.
195
196 2005-04-07  Werner Koch  <wk@g10code.com>
197
198         * app-openpgp.c (do_check_pin): Add hack to allow verification of
199         CHV3.
200         (get_public_key): Don't use gcry functions to create S-expressions.
201         (do_deinit, do_readkey, do_genkey, send_keypair_info): Adjust for
202         above change.
203
204 2005-03-29  Moritz Schulte  <moritz@g10code.com>
205
206         * app-openpgp.c (retrieve_fpr_from_card): New function.
207         (retrieve_next_token): New function.
208         (retrieve_key_material): New function.
209         (get_public_key): Implement retrival of key through expernal
210         helper (gpg) in case the openpgp card is not cooperative enough.
211
212 2005-03-16  Werner Koch  <wk@g10code.com>
213
214         * ccid-driver.c (parse_ccid_descriptor): Make SCM workaround
215         reader type specific.
216         (scan_or_find_devices): Do not check the interface subclass in the
217         SPR532 kludge, as this depends on the firmware version.
218         (ccid_get_atr): Get the Slot status first.  This solves the
219         problem with readers hanging on recent Linux 2.6.x.
220         (bulk_in): Add argument TIMEOUT and changed all callers to pass an
221         appropriate one.  Change the standard timeout from 10 to 5 seconds.
222         (ccid_slot_status): Add a retry code with an initial short timeout.
223         (do_close_reader): Do an usb_reset before closing the reader.
224
225 2005-02-25  Werner Koch  <wk@g10code.com>
226
227         * app-openpgp.c (get_public_key): Make sure not to return negative
228         numbers.
229         (do_sign): Allow passing of indata with algorithm prefix.
230         (do_auth): Allow OPENPGP.3 as an alternative ID.
231
232         * app.c (app_getattr): Return just the S/N but not the timestamp.
233
234 2005-02-24  Werner Koch  <wk@g10code.com>
235
236         * app.c (app_getattr): Return APPTYPE or SERIALNO type even if the
237         application does dot support the getattr call.
238
239         * app-openpgp.c (get_one_do): Never try to get a non cacheable
240         object from the cache.
241         (get_one_do): Add new arg to return an error code.  Changed all
242         callers.
243         (do_getattr): Let it return a proper error code.
244
245         * app.c (select_application): Return an error code and the
246         application context in an new arg.
247         * command.c (open_card): Adjusted for that.  Don't use the
248         fallback if no card is present.  Return an error if the card has
249         been removed without a reset.
250         (do_reset, cmd_serialno): Clear that error flag.
251         (TEST_CARD_REMOVAL): New. Use it with all command handlers.
252         (scd_update_reader_status_file): Set the error flag on all changes.
253
254         * scdaemon.c (ticker_thread): Termintate if a shutdown is pending.
255
256         * apdu.c: Added some PCSC error codes.
257         (pcsc_error_to_sw): New.
258         (reset_pcsc_reader, pcsc_get_status, pcsc_send_apdu) 
259         (open_pcsc_reader): Do proper error code mapping.
260
261 2005-03-16  Werner Koch  <wk@g10code.com>
262
263         * ccid-driver.c (parse_ccid_descriptor): Make SCM workaround
264         reader type specific.
265         (scan_or_find_devices): Do not check the interface subclass in the
266         SPR532 kludge, as this depends on the firmware version.
267         (ccid_get_atr): Get the Slot status first.  This solves the
268         problem with readers hanging on recent Linux 2.6.x.
269
270 2005-02-22  Werner Koch  <wk@g10code.com>
271
272         * app-openpgp.c (app_local_s): New field PK.
273         (do_deinit, do_genkey, app_openpgp_storekey): Clear it.
274         (get_public_key, send_keypair_info): New.
275         (do_learn_status): Send KEYPAIR info
276
277         * app-common.h (app_ctx_t): Add function pointer READKEY.
278         * app.c (app_readkey): New.
279         * command.c (cmd_readkey): Use READKEY function if possible.
280
281 2005-01-26  Werner Koch  <wk@g10code.com>
282
283         * ccid-driver.c (parse_ccid_descriptor): Need the CSM workaround
284         also for newer firmware versions.  Need to get a list of fixed
285         firmware versions and use that.
286
287 2005-01-25  Werner Koch  <wk@g10code.com>
288
289         * apdu.c (apdu_send_le, apdu_send_direct): Fix some compiler
290         warnings.
291
292         * app-openpgp.c (get_cached_data): New arg GET_IMMEDIATE to bypass
293         the cache.  Changed all callers.
294         (get_one_do): Bypass the cache if the value would have been read
295         directly for v1.1 cards.It makes things a bit slower but obnly for
296         1.0 cards and there are not that many cards out in the wild.  This
297         is required to fix a caching bug when generating new keys; as a
298         side effect of the retrieval of the the C4 DO from the 6E DO the
299         cached fingerprint will get updated to the old value and later
300         when signing the generated key the checking of the fingerprint
301         fails because it won't match the new one.  Thanks to Moritz for
302         analyzing this problem.
303         (verify_chv3): Removed the CHV status reread logic because we
304         won't cache the C4 DO anymore.
305
306 2004-12-28  Werner Koch  <wk@g10code.com>
307
308         * ccid-driver.c (find_endpoint): New.
309         (scan_or_find_devices): Add new args to return endpoint info and
310         interface number.
311         (ccid_open_reader, ccid_shutdown_reader): Take care of these new
312         args.
313         (bulk_in, bulk_out): Use the correct endpoints.
314         (ccid_transceive_apdu_level): New.
315         (ccid_transceive): Divert to above.
316         (parse_ccid_descriptor): Allow APDU level exchange mode.
317         (do_close_reader): Pass the interface number to usb_release_interface.
318
319 2004-12-21  Werner Koch  <wk@g10code.com>
320
321         * scdaemon.c (main): Use default_homedir().
322
323 2004-12-18  Werner Koch  <wk@g10code.com>
324
325         * scdaemon.c (main) [W32]: Remove special Pth initialize..
326
327         * scdaemon.h (map_assuan_err): Define in terms of
328         map_assuan_err_with_source.
329
330 2004-12-15  Werner Koch  <wk@g10code.com>
331
332         * scdaemon.c [W32]: Various hacks to make it run under W32.
333
334         * command.c (scd_update_reader_status_file) [W32]: Don't use kill.
335
336         * apdu.c [W32]: Disable use of pcsc_wrapper.
337
338         * Makefile.am (scdaemon_LDADD): Reorder libs.
339         (sc_copykeys_LDADD): Add libassuan because it is needed for W32. 
340
341 2004-12-06  Werner Koch  <wk@g10code.com>
342
343         * Makefile.am (pkglib_PROGRAMS): Build only for W32.
344
345 2004-10-22  Werner Koch  <wk@g10code.com>
346
347         * app-openpgp.c (verify_chv3): The minium length for CHV3 is
348         8. Changed string to match the other ones.
349
350 2004-10-21  Werner Koch  <wk@g10code.com>
351
352         * app-openpgp.c (do_sign): Replace asprintf by direct allocation.
353         This avoids problems with missing vasprintf implementations in
354         gnupg 1.4.
355
356         * app-common.h (app_openpgp_storekey: Add prototype. 
357
358 2004-10-20  Werner Koch  <wk@g10code.com>
359
360         * sc-investigate: Removed.
361         * Makefile.am (sc_investigate): Removed.
362         
363         * pcsc-wrapper.c (load_pcsc_driver): Load get_status_change func.
364         (handle_open): Succeed even without a present card.
365         (handle_status, handle_reset): New.
366         
367         * apdu.c (apdu_open_reader): Load pcsc_get_status_change fucntion.
368         (pcsc_get_status): Implemented.
369         (reset_pcsc_reader): Implemented.
370         (open_pcsc_reader): Succeed even with no card inserted.
371         (open_ccid_reader): Set LAST_STATUS.
372
373         * iso7816.c (iso7816_select_application): Always use 0 for P1.
374
375 2004-10-18  Werner Koch  <wk@g10code.com>
376
377         * ccid-driver.c (ccid_get_atr): Reset T=1 state info.
378
379 2004-10-14  Werner Koch  <wk@g10code.com>
380
381         * app-openpgp.c (parse_login_data): New. 
382         (app_select_openpgp): Call it.
383         (do_setattr): Reparse it after change.
384
385 2004-10-06  Werner Koch  <wk@g10code.de>
386
387         * ccid-driver.c (ccid_open_reader): Store the vendor ID.
388         (ccid_transceive_secure): New.
389         (parse_ccid_descriptor): Workaround for an SCM reader problem.
390
391 2004-10-04  Werner Koch  <wk@g10code.de>
392
393         * ccid-driver.c (send_escape_cmd): New.
394
395 2004-09-30  Werner Koch  <wk@g10code.com>
396
397         * Makefile.am: Adjusted for gettext 0.14.
398
399         * app-openpgp.c (do_sign): Add the error string to the verify
400         failed messages.
401
402 2004-09-27  Werner Koch  <wk@g10code.com>
403
404         From gnupg 1.3
405
406         * app-openpgp.c: Made all strings translatable.
407         (verify_chv3) [GNUPG_MAJOR_VERSION]: Make opt.allow_admin
408         available for use in gnupg 2. 
409         (verify_chv3): Reimplemented countdown showing to use only
410         functions from this module.  Flush the CVH status cache on a
411         successful read.
412         (get_one_do): Hack to bypass the cache for cards versions > 1.0.
413         (store_fpr): Store the creation date for card version > 1.0.
414
415         * app-openpgp.c (app_openpgp_storekey): Call flush_cache.
416         (get_cached_data): Move local data initialization to ..
417         (app_select_openpgp): .. here. Read some flags for later use.
418         (do_getattr): New read-only attribute EXTCAP.
419         
420         * apdu.c (open_pcsc_reader): Do not print empty reader string.
421
422         * ccid-driver.c (do_close_reader): Factored some code out from ...
423         (ccid_close_reader): ..here.
424         (ccid_shutdown_reader): New.
425
426         * apdu.c (apdu_shutdown_reader): New.
427         (shutdown_ccid_reader): New.
428
429         * apdu.c (open_ccid_reader): New arg PORTSTR.  Pass it to
430         ccid_open_reader.
431         (apdu_open_reader): Pass portstr to open_ccid_reader.
432         (apdu_open_reader): No fallback if a full CCID reader id has been
433         given.
434
435         * ccid-driver.c (ccid_get_reader_list): New.
436         (ccid_open_reader): Changed API to take a string for the reader.
437         Removed al the cruft for the libusb development vesion which seems
438         not to be maintained anymore and there are no packages anyway.
439         The stable library works just fine.
440         (struct ccid_reader_id_s): Deleted and replaced everywhere by a
441         simple string.
442         (usb_get_string_simple): Removed.
443         (bulk_in): Do valgrind hack here and not just everywhere.
444
445         * ccid-driver.c (read_device_info): Removed.
446         (make_reader_id, scan_or_find_devices): New.
447         (ccid_open_reader): Simplified by make use of the new functions.
448         (ccid_set_debug_level): New.  Changed the macros to make use of
449         it.  It has turned out that it is often useful to enable debugging
450         at runtime so I added this option.
451
452         From gnupg 1.3 - David Shaw  <dshaw@jabberwocky.com>
453
454         * app-openpgp.c (verify_chv3): Show a countdown of how many wrong
455         admin PINs can be entered before the card is locked.
456
457         * app-openpgp.c (get_cached_data): Avoid mallocing zero since it
458         breaks us when using --enable-m-guard.
459
460         * ccid-driver.c (usb_get_string_simple): Replacement function to
461         work with older libusb.
462
463         * ccid-driver.c (read_device_info): Fix segfault when usb device
464         is not accessible.
465         (ccid_open_reader): Allow working with an even older version of
466         libusb (usb_busses global instead of usb_get_busses()).
467
468 2004-09-11  Werner Koch  <wk@g10code.com>
469
470         * app-openpgp.c (app_select_openpgp): Its app_munge_serialno and
471         not app_number_serialno.
472
473 2004-08-20  Werner Koch  <wk@g10code.de>
474
475         * app.c (select_application): Fixed serial number extraction and
476         added the BMI card workaround.
477         (app_munge_serialno): New.
478         * app-openpgp.c (app_select_openpgp): Try munging serialno.
479
480 2004-08-05  Werner Koch  <wk@g10code.de>
481
482         * scdaemon.c (main): New option --disable-application.
483         * app.c (is_app_allowed): New.
484         (select_application): Use it to check for disabled applications.
485
486         * ccid-driver.h (CCID_DRIVER_ERR_ABORTED): New.
487         * ccid-driver.c (ccid_open_reader): Support the stable 0.1 version
488         of libusb.
489         (ccid_get_atr): Handle short messages.
490
491         * apdu.c (my_rapdu_get_status): Implemented.
492
493 2004-07-27  Moritz Schulte  <moritz@g10code.com>
494
495         * apdu.c: Include <signal.h>.
496
497         * Makefile.am: Use @DL_LIBS@ instead of -ldl.
498
499 2004-07-22  Werner Koch  <wk@g10code.de>
500
501         * Makefile.am: Make OpenSC lib link after libgcrypt. Do not link
502         to pth.
503         * apdu.c: Don't use Pth if we use OpenSC.
504         * sc-investigate.c, scdaemon.c: Disable use of pth if OpenSC is used. 
505
506         * scdaemon.c (main): Bumbed thread stack size up to 512k.
507
508 2004-07-16  Werner Koch  <wk@gnupg.org>
509
510         * apdu.c (reader_table_s):  Add function pointers for the backends.
511         (apdu_close_reader, apdu_get_status, apdu_activate) 
512         (send_apdu): Make use of them.
513         (new_reader_slot): Intialize them to NULL.
514         (dump_ccid_reader_status, ct_dump_reader_status): New.
515         (dump_pcsc_reader_status): New.
516         (open_ct_reader, open_pcsc_reader, open_ccid_reader) 
517         (open_osc_reader, open_rapdu_reader): Intialize function pointers.
518         (ct_activate_card, ct_send_apdu, pcsc_send_apdu, osc_send_apdu) 
519         (error_string): Removed.  Replaced by apdu_strerror.
520         (get_ccid_error_string): Removed.
521         (ct_activate_card): Remove the unused loop.
522         (reset_ct_reader): Implemented.
523         (ct_send_apdu): Activate the card if not yet done.
524         (pcsc_send_apdu): Ditto.
525
526 2004-07-15  Werner Koch  <wk@gnupg.org>
527
528         * ccid-driver.h: Add error codes.
529         * ccid-driver.c: Implement more or less proper error codes all
530         over the place.
531
532         * apdu.c (apdu_send_direct): New.
533         (get_ccid_error_string): Add some error code mappings.
534         (send_apdu): Pass error codes along for drivers already supporting
535         them.
536         (host_sw_string): New.
537         (get_ccid_error_string): Use above.
538         (send_apdu_ccid): Reset the reader if it has not yet been done.
539         (open_ccid_reader): Don't care if the ATR can't be read.
540         (apdu_activate_card): New.
541         (apdu_strerror): New.
542         (dump_reader_status): Only enable it with opt.VERBOSE.
543         * iso7816.c (map_sw): Add mappings for the new error codes.
544
545 2004-07-02  Werner Koch  <wk@gnupg.org>
546
547         * apdu.c (open_ct_reader, open_pcsc_reader, open_ccid_reader)
548         (reset_ccid_reader, open_osc_reader): Call dump_reader_status only
549         in verbose mode.
550
551 2004-07-01  Werner Koch  <wk@gnupg.org>
552
553         * sc-investigate.c: Initialize Pth which is now required.
554         (interactive_shell): New command "readpk".
555
556         * app-openpgp.c (do_getattr): Fix for sending CA-FPR.
557
558 2004-06-30  Werner Koch  <wk@gnupg.org>
559
560         * app-openpgp.c (app_openpgp_readkey): Fixed check for valid
561         exponent.
562
563 2004-06-18  Werner Koch  <wk@g10code.com>
564
565         * sc-investigate.c (my_read_line): Renamed from read_line.
566
567 2004-06-16  Werner Koch  <wk@gnupg.org>
568
569         * apdu.c (osc_get_status): Fixed type in function name. Noted by
570         Axel Thimm.  Yes, I didn't tested it with OpenSC :-(.
571
572 2004-04-28  Werner Koch  <wk@gnupg.org>
573
574         * app-openpgp.c (do_setattr): Sync FORCE_CHV1.
575
576 2004-04-27  Werner Koch  <wk@gnupg.org>
577
578         * app-common.h: Do not include ksba.h for gnupg 1.
579
580 2004-04-26  Werner Koch  <wk@gnupg.org>
581
582         * app-common.h: New members FNC.DEINIT and APP_LOCAL.
583         * app.c (release_application): Call new deconstructor.
584         * app-openpgp.c (do_deinit): New.
585         (get_cached_data, flush_cache_item, flush_cache_after_error)
586         (flush_cache): New.
587         (get_one_do): Replaced arg SLOT by APP.  Make used of cached data.
588         (verify_chv2, verify_chv3): Flush some cache item after error.
589         (do_change_pin): Ditto.
590         (do_sign): Ditto.
591         (do_setattr): Flush cache item.
592         (do_genkey): Flush the entire cache.
593         (compare_fingerprint): Use cached data.
594
595         * scdaemon.c (main): Do the last change the usual way. This is so
596         that we can easily test for versioned config files above.
597
598 2004-04-26  Marcus Brinkmann  <marcus@g10code.de>
599
600         * scdaemon.c (main): For now, always print default filename for
601         --gpgconf-list, and never /dev/null.
602
603 2004-04-21  Werner Koch  <wk@gnupg.org>
604
605         * command.c (scd_update_reader_status_file): Send a signal back to
606         the client.
607         (option_handler): Parse the new event-signal option.
608
609         * scdaemon.c (handle_signal): Do not use SIGUSR{1,2} anymore for
610         changing the verbosity.
611
612 2004-04-20  Werner Koch  <wk@gnupg.org>
613
614         * command.c (scd_update_reader_status_file): Write status files.
615
616         * app-help.c (app_help_read_length_of_cert): Fixed calculation of
617         R_CERTOFF.
618
619         * pcsc-wrapper.c: New.
620         * Makefile.am (pkglib_PROGRAMS): Install it here.
621         * apdu.c (writen, readn): New.
622         (open_pcsc_reader, pcsc_send_apdu, close_pcsc_reader): Use the
623         pcsc-wrapper if we are using Pth.
624         (apdu_send_le): Reinitialize RESULTLEN.  Handle SW_EOF_REACHED
625         like SW_SUCCESS.
626
627 2004-04-19  Werner Koch  <wk@gnupg.org>
628
629         * ccid-driver.c (parse_ccid_descriptor): Store some of the reader
630         features away.  New arg HANDLE
631         (read_device_info): New arg HANDLE. Changed caller.
632         (bulk_in): Handle time extension requests.
633         (ccid_get_atr): Setup parameters and the IFSD.
634         (compute_edc): New. Factored out code.
635         (ccid_transceive): Use default NADs when required.
636
637 2004-04-14  Werner Koch  <wk@gnupg.org>
638
639         * scdaemon.h (server_control_s): Add member READER_SLOT.
640         * scdaemon.c (scd_init_default_ctrl): Initialize READER_SLOT to -1.
641         * command.c (open_card): Reuse an open slot.
642         (reset_notify): Just reset the slot if supported by the reader.
643         (do_reset): Factored code from above out.
644         (scd_command_handler): Use it for cleanup.
645
646         * apdu.h: New pseudo stati SW_HOST_NOT_SUPPORTED,
647         SW_HOST_LOCKING_FAILED and SW_HOST_BUSY.
648         * iso7816.c (map_sw): Map it.
649         
650         * ccid-driver.c (ccid_slot_status): Add arg STATUSBITS.
651         * apdu.c (apdu_get_status): New.
652         (ct_get_status, pcsc_get_status, ocsc_get_status): New stubs.
653         (get_status_ccid): New.
654         (apdu_reset): New.
655         (reset_ct_reader, reset_pcsc_reader, reset_osc_reader): New stubs.
656         (reset_ccid_reader): New.
657         (apdu_enum_reader): New.
658         
659         * apdu.c (lock_slot, trylock_slot, unlock_slot): New helpers.
660         (new_reader_slot) [USE_GNU_PTH]: Init mutex.
661         (apdu_reset, apdu_get_status, apdu_send_le): Run functions
662         in locked mode.
663
664         * command.c (scd_update_reader_status_file): New.
665         * scdaemon.c (handle_tick): Call it.
666
667 2004-04-13  Werner Koch  <wk@gnupg.org>
668
669         * scdaemon.c: Convert to a Pth application.
670         (handle_signal, ticker_thread, handle_tick): New.
671         (main): Fire up the ticker thread in server mode.
672
673 2004-03-23  Werner Koch  <wk@gnupg.org>
674
675         * scdaemon.c (main) <gpgconf_list>: Fixed output for pcsc_driver.
676
677 2004-03-17  Werner Koch  <wk@gnupg.org>
678
679         * tlv.c (parse_ber_header): Do not check for tag overflow - it
680         does not make sense.  Simplified the check for length overflow.
681
682         * scdaemon.c (main) <gpgconf>: Fixed default value quoting.
683
684 2004-03-16  Werner Koch  <wk@gnupg.org>
685
686         * app-dinsig.c: Implemented. Based on app-nks.c and card-dinsig.c
687         * app-nks.c (get_length_of_cert): Removed.
688         * app-help.c: New.
689         (app_help_read_length_of_cert): New.  Code taken from above.  New
690         optional arg R_CERTOFF.
691
692         * card-dinsig.c: Removed.
693         * card.c (card_get_serial_and_stamp): Do not bind to the old and
694         never finsiged card-dinsig.c.
695
696         * iso7816.c (iso7816_read_binary): Allow for an NMAX > 254.
697
698 2004-03-11  Werner Koch  <wk@gnupg.org>
699
700         * scdaemon.h (out_of_core): Removed.  Replaced callers by standard
701         gpg_error function.
702
703         * apdu.c, iso7816.c, ccid-driver.c [GNUPG_SCD_MAIN_HEADER]: Allow
704         to include a header defined by the compiler.  This helps us to
705         reuse the source in other software.
706
707 2004-03-10  Werner Koch  <wk@gnupg.org>
708
709         * iso7816.c (iso7816_read_record): New arg SHORT_EF.  Changed all
710         callers.
711
712 2004-02-18  Werner Koch  <wk@gnupg.org>
713
714         * sc-investigate.c (main): Setup the used character set.
715         * scdaemon.c (main): Ditto.
716
717         * scdaemon.c (set_debug): New.  Add option --debug-level.
718         (main): Add option --gpgconf-list.
719
720 2004-02-12  Werner Koch  <wk@gnupg.org>
721
722         * Makefile.am: Include cmacros.am for common flags.
723
724 2004-01-29  Werner Koch  <wk@gnupg.org>
725
726         * command.c (reset_notify): Release the application context and
727         close the reader.
728
729 2004-01-28  Werner Koch  <wk@gnupg.org>
730
731         * iso7816.c (iso7816_manage_security_env): New.
732         (iso7816_decipher): Add PADIND argument.
733
734 2004-01-27  Werner Koch  <wk@gnupg.org>
735
736         * command.c (cmd_readcert, cmd_readkey): Work on a copy of LINE.
737
738         * app-common.h (app_ctx_s): Added readcert field.
739         * app.c (app_readcert): New.
740         * tlv.c (parse_ber_header): Added; taken from libksba.
741
742 2004-01-26  Werner Koch  <wk@gnupg.org>
743
744         * card.c (map_sc_err): Use SCD as the error source.
745
746         * command.c (open_card): ADD arg NAME to allow requesting a
747         specific application.  Changed all callers.
748         (cmd_serialno): Allow optional argument to select the desired
749         application.
750
751         * app-nks.c: New. 
752
753         * scdaemon.h (opt): Add READER_PORT.
754         * scdaemon.c (main): Set it here.
755         * app.c (app_set_default_reader_port): Removed.
756         (select_application): Add NAME arg and figure out a
757         default serial number from the GDO. Add SLOT arg and remove all
758         reader management.
759         (release_application): New.
760         (app_write_learn_status): Output an APPTYPE status line.
761         * command.c (open_card): Adapt for select_application change.
762         * app-openpgp.c (app_select_openpgp): Removed SN and SNLEN args
763         and set it directly.  Changed all callers.
764
765 2004-01-25  Werner Koch  <wk@gnupg.org>
766
767         * iso7816.c (iso7816_select_application): P1 kludge for OpenPGP
768         card.
769         * app-openpgp.c (find_tlv): Factor out this function to ..
770         * tlv.c, tlv.h: .. new.
771
772         * scdaemon.h: Introduced app_t and ctrl_t as the new types for APP
773         and CTRL.
774
775 2004-01-21  Werner Koch  <wk@gnupg.org>
776
777         * apdu.c (apdu_send_le): Treat SW_EOF_REACHED as a warning.
778
779 2004-01-20  Werner Koch  <wk@gnupg.org>
780
781         * iso7816.c (iso7816_read_binary): New.
782         (iso7816_select_file): New.
783         (iso7816_list_directory): New.
784
785         * sc-investigate.c: Add option -i.
786         (select_app, read_line, interactive_shell): New.
787
788 2004-01-16  Werner Koch  <wk@gnupg.org>
789
790         * apdu.h: Add SW_FILE_NOT_FOUND.
791         * iso7816.c (map_sw): Map it to GPG_ERR_ENOENT.
792         * iso7816.c (iso7816_select_file): New.
793
794         * app-dinsig.c: New file w/o any real code yet.
795         * Makefile.am (scdaemon_SOURCES,sc_investigate_SOURCES): Add file.
796
797         * sc-investigate.c: Add option --disable-ccid.
798
799 2003-12-19  Werner Koch  <wk@gnupg.org>
800
801         * apdu.c (apdu_send_le): Send a get_response with the indicated
802         length and not the 64 bytes we used for testing.
803
804         * app-openpgp.c (verify_chv2, verify_chv3, do_sign): Check the
805         minimum length of the passphrase, so that we don't need to
806         decrement the retry counter.
807
808 2003-12-17  Werner Koch  <wk@gnupg.org>
809
810         * card-p15.c (p15_enum_keypairs): Replaced KRC by RC.
811         * card-dinsig.c (dinsig_enum_keypairs): Ditto.
812
813 2003-12-16  Werner Koch  <wk@gnupg.org>
814
815         * scdaemon.c (main): Set the prefixes for assuan logging.
816
817 2003-11-17  Werner Koch  <wk@gnupg.org>
818
819         * scdaemon.c, scdaemon.h: New options --allow-admin and --deny-admin.
820         * app-openpgp.c (verify_chv3): Check it here.
821
822 2003-11-12  Werner Koch  <wk@gnupg.org>
823
824         Adjusted for API changes in Libksba.
825
826 2003-10-30  Werner Koch  <wk@gnupg.org>
827
828         * apdu.c (close_ct_reader, close_pcsc_reader): Implemented.
829         (get_ccid_error_string): New.  Not very useful messages, though.
830
831 2003-10-25  Werner Koch  <wk@gnupg.org>
832
833         * ccid-driver.c (ccid_open_reader): Return an error if no USB
834         devices are found.
835
836         * command.c (cmd_genkey, cmd_passwd): Fixed faulty use of
837         !spacep().
838
839         * apdu.c (apdu_open_reader): Hacks for PC/SC under Windows.
840
841 2003-10-20  Werner Koch  <wk@gnupg.org>
842
843         * command.c (cmd_checkpin): New.
844         (register_commands): Add command CHECKPIN.
845         * app.c (app_check_pin): New.
846         * app-openpgp.c (check_against_given_fingerprint): New. Factored
847         out that code elsewhere.
848         (do_check_pin): New.
849
850 2003-10-10  Werner Koch  <wk@gnupg.org>
851
852         * ccid-driver.c (ccid_close_reader): New.
853
854         * apdu.c (close_ccid_reader, close_ct_reader, close_csc_reader)
855         (close_osc_reader, apdu_close_reader): New.  Not all are properly
856         implemented yet.
857
858 2003-10-09  Werner Koch  <wk@gnupg.org>
859
860         * ccid-driver.c (ccid_transceive): Add T=1 chaining for sending.
861
862 2003-10-08  Werner Koch  <wk@gnupg.org>
863
864         * app-openpgp.c (do_getattr): Support SERIALNO and AID.
865
866 2003-10-01  Werner Koch  <wk@gnupg.org>
867
868         * ccid-driver.c: Detect GnuPG 1.3 and include appropriate files.
869         * apdu.c: Ditto.
870         * app-openpgp.c: Ditto.
871         * iso7816.c: Ditto.
872         (generate_keypair): Renamed to ..
873         (do_generate_keypair): .. this.
874         * app-common.h [GNUPG_MAJOR_VERSION]: New.
875         * iso7816.h [GNUPG_MAJOR_VERSION]: Include cardglue.h
876
877 2003-09-30  Werner Koch  <wk@gnupg.org>
878
879         * command.c (cmd_getattr): New command GETATTR.
880         * app.c (app_setattr): New.
881         (do_getattr): New.
882         (do_learn_status): Reimplemented in terms of do_getattr.
883
884         * app-openpgp.c (do_change_pin): Make sure CVH1 and CHV2 are
885         always synced.
886         (verify_chv2, verify_chv3): New. Factored out common code.
887         (do_setattr, do_sign, do_auth, do_decipher): Change the names of
888         the prompts to match that we have only 2 different PINs.
889         (app_select_openpgp): Check whether the card enforced CHV1.
890         (convert_sig_counter_value): New. Factor out code from
891         get_sig_counter.
892
893 2003-09-28  Werner Koch  <wk@gnupg.org>
894
895         * app-openpgp.c (dump_all_do): Use gpg_err_code and not gpg_error.
896
897 2003-09-19  Werner Koch  <wk@gnupg.org>
898
899         * ccid-driver.c (parse_ccid_descriptor): New.
900         (read_device_info): New.
901         (ccid_open_reader): Check that the device has all required features.
902
903 2003-09-06  Werner Koch  <wk@gnupg.org>
904
905         * scdaemon.c (main): --pcsc-driver again defaults to pcsclite.
906         David Corcoran was so kind to remove the GPL incompatible
907         advertisng clause from pcsclite.
908         * apdu.c (apdu_open_reader): Actually make pcsc-driver option work.
909
910 2003-09-05  Werner Koch  <wk@gnupg.org>
911
912         * ccid-driver.c: More work, data can now actually be retrieved.
913         * ccid-driver.c, ccid-driver.h: Alternativley allow use under BSD
914         conditions.
915
916 2003-09-02  Werner Koch  <wk@gnupg.org>
917
918         * scdaemon.c, scdaemon.h: New option --pcsc-ccid.
919         * ccid-driver.c, ccid-driver.h: New but far from being useful.
920         * Makefile.am: Add above.
921         * apdu.c: Add support for that ccid driver.
922         
923 2003-08-26  Timo Schulz  <twoaday@freakmail.de>
924
925         * apdu.c (new_reader_slot): Only set 'is_osc' when OpenSC
926         is used.
927         
928 2003-08-25  Werner Koch  <wk@gnupg.org>
929
930         * command.c (cmd_setattr): Use a copy of LINE.
931         (cmd_genkey): Use a copy of KEYNO.
932         (cmd_passwd): Use a copy of CHVNOSTR.
933         (cmd_pksign, cmd_pkauth, cmd_pkdecrypt): s/strdup/xtrystrdup/.
934
935 2003-08-19  Werner Koch  <wk@gnupg.org>
936
937         * scdaemon.c, scdaemon.h: New option --pcsc-driver.
938         * apdu.c (apdu_open_reader): Use that option here instead of a
939         hardcoded one.
940
941 2003-08-18  Werner Koch  <wk@gnupg.org>
942
943         * Makefile.am: Add OPENSC_LIBS to all programs. 
944
945         * scdaemon.c, scdaemon.h: New option --disable-opensc.
946         * card.c (card_open): Implement it.
947         * apdu.c (open_osc_reader, osc_send_apdu): New.
948         (apdu_open_reader) [HAVE_OPENSC]: Use the opensc driver if not
949         disabled.
950         (error_string) [HAVE_OPENSC]: Use sc_strerror.
951         (send_apdu) [HAVE_OPENSC]: Call osc_apdu_send.
952
953         * card-p15.c (p15_enum_keypairs, p15_prepare_key): Adjusted for
954         libgpg-error.
955
956 2003-08-14  Timo Schulz  <twoaday@freakmail.de>
957
958         * apdu.c (ct_activate_card): Change the code a little to avoid
959         problems with other readers.
960         * Always use 'dynload.h' instead of 'dlfcn.h'.
961
962 2003-08-05  Werner Koch  <wk@gnupg.org>
963
964         * app-openpgp.c (dump_all_do): Don't analyze constructed DOs after
965         an error.
966
967 2003-08-04  Werner Koch  <wk@gnupg.org>
968
969         * app.c (app_set_default_reader_port): New.
970         (select_application): Use it here.
971         * scdaemon.c (main): and here.
972         * sc-copykeys.c: --reader-port does now take a string.
973         * sc-investigate.c, scdaemon.c: Ditto.
974         * apdu.c (apdu_open_reader): Ditto.  Load pcsclite if no ctapi
975         driver is configured.  Always include code for ctapi.
976         (new_reader_slot): Don't test for already used ports and remove
977         port arg.
978         (open_pcsc_reader, pcsc_send_apdu, pcsc_error_string): New.
979         (apdu_send_le): Changed RC to long to cope with PC/SC.
980
981         * scdaemon.c, scdaemon.h: New option --ctapi-driver.
982         * sc-investigate.c, sc-copykeys.c: Ditto.
983         
984 2003-07-31  Werner Koch  <wk@gnupg.org>
985
986         * Makefile.am (scdaemon_LDADD): Added INTLLIBS.
987
988 2003-07-28  Werner Koch  <wk@gnupg.org>
989
990         * app-openpgp.c (do_setattr): Change implementation.  Allow all
991         useful DOs.
992
993 2003-07-27  Werner Koch  <wk@gnupg.org>
994
995         Adjusted for gcry_mpi_print and gcry_mpi_scan API change.
996
997 2003-07-24  Werner Koch  <wk@gnupg.org>
998
999         * app-openpgp.c (do_learn_status): Print more status information.
1000         (app_select_openpgp): Store the card version.
1001         (store_fpr): Add argument card_version and fix DOs for old cards.
1002         (app_openpgp_storekey): Likewise.
1003
1004 2003-07-23  Werner Koch  <wk@gnupg.org>
1005
1006         * command.c (cmd_pkauth): New.
1007         (cmd_setdata): Check whether data was given at all to avoid
1008         passing 0 to malloc.
1009
1010         * app.c (app_auth): New.
1011         * app-openpgp.c (do_auth): New.
1012
1013 2003-07-22  Werner Koch  <wk@gnupg.org>
1014
1015         * command.c (cmd_passwd): New.
1016         * app.c (app_change_pin): New.
1017         * app-openpgp.c (do_change_pin): New.
1018         * iso7816.c (iso7816_reset_retry_counter): Implemented.
1019
1020         * sc-investigate.c (main): New option --gen-random.
1021         * iso7816.c (iso7816_get_challenge): Don't create APDUs with a
1022         length larger than 255.
1023
1024 2003-07-17  Werner Koch  <wk@gnupg.org>
1025
1026         * command.c (cmd_random): New command RANDOM.
1027
1028         * iso7816.c (map_sw): New. Use it in this file to return
1029         meaningful error messages.  Changed all public fucntions to return
1030         a gpg_error_t.
1031         (iso7816_change_reference_data): New.
1032         * apdu.c (apdu_open_reader): Use faked status words for soem
1033         system errors.
1034
1035 2003-07-16  Werner Koch  <wk@gnupg.org>
1036
1037         * apdu.c (apdu_send_simple): Use apdu_send_le so that we can
1038         specify not to send Le as it should be.
1039
1040 2003-07-15  Werner Koch  <wk@gnupg.org>
1041
1042         * Makefile.am: Add sc-copykeys program.
1043         * sc-copykeys.c: New.
1044         * app-openpgp.c (app_openpgp_storekey): New.
1045         (app_openpgp_cardinfo): New.
1046         (count_bits): New.
1047         (store_fpr): And use it here to get the actual length in bit.
1048
1049 2003-07-03  Werner Koch  <wk@gnupg.org>
1050
1051         * app-openpgp.c (do_setattr): Add setting of the URL.
1052         (app_select_openpgp): Dump card data only in very verbose mode.
1053         (do_decipher): New.
1054
1055 2003-07-02  Werner Koch  <wk@gnupg.org>
1056
1057         * app-openpgp.c (get_sig_counter): New.
1058         (do_sign): Print the signature counter and enable the PIN callback.
1059         (do_genkey): Implement the PIN callback. 
1060
1061 2003-07-01  Werner Koch  <wk@gnupg.org>
1062
1063         * app-openpgp.c (store_fpr): Fixed fingerprint calculation.
1064
1065 2003-06-26  Werner Koch  <wk@gnupg.org>
1066
1067         * app-openpgp.c (find_tlv): Fixed length header parsing.
1068
1069         * app.c (app_genkey): New.
1070         * command.c (cmd_genkey): New.
1071
1072 2003-06-25  Werner Koch  <wk@gnupg.org>
1073
1074         * command.c (percent_plus_unescape): New.
1075         (cmd_setattr): New.
1076
1077 2003-06-24  Werner Koch  <wk@gnupg.org>
1078
1079         * command.c (send_status_info): New.
1080
1081         * app-openpgp.c (app_select_openpgp): Replace SLOT arg by APP arg
1082         and setup the function pointers in APP on success. Changed callers.
1083         * app.c: New.
1084         * app-common.h: New.
1085         * scdaemon.h (APP): New type to handle applications.
1086         (server_control_s): Add an APP context field.
1087
1088         * command.c (cmd_serialno): Handle applications.
1089         (cmd_pksign): Ditto.
1090         (cmd_pkdecrypt): Ditto.
1091         (reset_notify): Ditto.
1092         (cmd_learn): For now return error for application contexts.
1093         (cmd_readcert): Ditto.
1094         (cmd_readkey): Ditto.
1095
1096 2003-06-04  Werner Koch  <wk@gnupg.org>
1097
1098         * card.c (map_sc_err): Renamed gpg_make_err to gpg_err_make.
1099
1100         Renamed error codes from INVALID to INV and removed _ERROR suffixes.
1101
1102 2003-06-03  Werner Koch  <wk@gnupg.org>
1103
1104         Changed all error codes in all files to the new libgpg-error scheme.
1105
1106         * scdaemon.h: Include gpg-error.h and errno.h
1107         * card.c (map_sc_err): Use unknown for the error source.
1108         * Makefile.am: Link with libgpg-error
1109
1110 2003-05-14  Werner Koch  <wk@gnupg.org>
1111
1112         * atr.c, atr.h: New.
1113         * sc-investigate.c: Dump the ATR in a human readable format.
1114
1115 2003-05-08  Werner Koch  <wk@gnupg.org>
1116
1117         * scdaemon.h (DBG_CARD_IO_VALUE): New.
1118
1119         * sc-investigate.c: New.
1120         * scdaemon.c (main): Removed --print-atr option.
1121
1122         * iso7816.c, iso7816.h, app-openpgp.c: New.
1123
1124 2003-04-29  Werner Koch  <wk@gnupg.org>
1125
1126         * scdaemon.c: New options --print-atr and --reader-port
1127         * apdu.c, apdu.h: New
1128
1129         * card.c, card-p15.c, card-dinsig.c: Allow build without OpenSC.
1130         
1131         * Makefile.am (LDFLAGS): Removed.
1132
1133         * command.c (register_commands): Adjusted for new Assuan semantics.
1134
1135 2002-08-21  Werner Koch  <wk@gnupg.org>
1136
1137         * scdaemon.c (main): New option --daemon so that the program is
1138         not accidently started in the background.
1139
1140 2002-08-16  Werner Koch  <wk@gnupg.org>
1141
1142         * scdaemon.c: Include i18n.h.
1143
1144         * card-common.h (struct p15_private_s): Forward declaration.  Add
1145         it to card_ctx_s.
1146         * card.c (card_close): Make sure private data is released.
1147         (card_enum_certs): New.
1148         * card-p15.c (p15_release_private_data): New.
1149         (init_private_data): New to work around an OpenSC weirdness.
1150         (p15_enum_keypairs): Do an OpenSC get_objects only once.
1151         (p15_enum_certs): New.
1152         (card_p15_bind): Bind new function.
1153         * command.c (cmd_learn): Return information about the certificates.
1154
1155 2002-08-09  Werner Koch  <wk@gnupg.org>
1156
1157         * card.c (card_get_serial_and_stamp): Use the tokeinfo serial
1158         number as a fallback. Add a special prefix for serial numbers.
1159
1160 2002-07-30  Werner Koch  <wk@gnupg.org>
1161
1162         Changes to cope with OpenSC 0.7.0:
1163         
1164         * card.c: Removed the check for the packed opensc version.
1165         Changed include file names of opensc.
1166         (map_sc_err): Adjusted error codes for new opensc version.
1167         * card-p15.c: Changed include filename of opensc.
1168         * card-dinsig.c: Ditto.
1169
1170         * card-p15.c (p15_decipher): Add flags argument to OpenSC call.
1171         
1172 2002-07-24  Werner Koch  <wk@gnupg.org>
1173
1174         * card.c (find_simple_tlv, find_iccsn): New.
1175         (card_get_serial_and_stamp): Improved serial number parser.
1176
1177 2002-06-27  Werner Koch  <wk@gnupg.org>
1178
1179         * scdaemon.c (main): Use GNUPG_DEFAULT_HOMEDIR constant.
1180
1181 2002-06-15  Werner Koch  <wk@gnupg.org>
1182
1183         * card-dinsig.c: Documented some stuff from the DIN norm.
1184
1185 2002-04-15  Werner Koch  <wk@gnupg.org>
1186
1187         * command.c (cmd_pksign, cmd_pkdecrypt): Use a copy of the key ID.
1188
1189 2002-04-12  Werner Koch  <wk@gnupg.org>
1190
1191         * scdaemon.c: New option --debug-sc N.
1192         * card.c (card_open): set it here.
1193
1194         * card-p15.c (p15_prepare_key): Factored out common code from ...
1195         (p15_sign, p15_decipher): here and made the decryption work the
1196         regular way.
1197
1198 2002-04-10  Werner Koch  <wk@gnupg.org>
1199
1200         * card.c (card_open): Return immediately when no reader is available.
1201
1202 2002-03-27  Werner Koch  <wk@gnupg.org>
1203
1204         * card.c (card_open, card_close): Adjusted for changes in OpenSC.
1205
1206 2002-03-10  Werner Koch  <wk@gnupg.org>
1207
1208         * card-p15.c, card-dinsig.c, card-common.h: New.
1209         * card.c: Factored most code out to the new modules, so that we
1210         can better support different types of card applications.
1211
1212 2002-01-26  Werner Koch  <wk@gnupg.org>
1213
1214         * scdaemon.c scdaemon.h, command.c: New. Based on the code from
1215         the gpg-agent.
1216
1217         
1218  Copyright 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
1219
1220  This file is free software; as a special exception the author gives
1221  unlimited permission to copy and/or distribute it, with or without
1222  modifications, as long as this notice is preserved.
1223
1224  This file is distributed in the hope that it will be useful, but
1225  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
1226  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.