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