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