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