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