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