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