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