Improvements for 2k keys.
[gnupg.git] / scd / ChangeLog
1 2008-09-23  Werner Koch  <wk@g10code.com>
2
3         * app-openpgp.c (do_sign): Support SHA-2 digests.
4         (verify_chv2): No CHV auto-sync for v2 cards.
5         (do_auth): Allow 2048 bit keys.
6         (parse_algorithm_attribute): New.
7
8 2008-09-23  Marcus Brinkmann  <marcus@g10code.com>
9
10         * apdu.c (pcsc_get_status): Be more relaxed with the usable flag
11         under Windows.
12
13 2008-09-23  Werner Koch  <wk@g10code.com>
14
15         * app-openpgp.c (do_setattr): Use command chaining for long
16         values.
17         * iso7816.c (iso7816_put_data): Add arg EXTENDED_MODE. Change all
18         callers.
19         * apdu.c (apdu_send_simple): Add arg EXTENDED_MODE. Change all
20         callers.
21         (send_le): Implement command chaining.
22         * ccid-driver.c (ccid_transceive_apdu_level): Increase allowed
23         APDU size.
24         (ccid_transceive): Alow for APDUS of up to 259 bytes.
25         * apdu.h: Add new SW_ codes.
26
27 2008-09-16  Werner Koch  <wk@g10code.com>
28
29         * command.c (cmd_writecert): New.
30         (register_commands): Register it.
31         * app-common.h (app_ctx_s): Add member WRITECERT.
32         * app.c (app_writecert): New.
33         * app-openpgp.c (do_writecert): New.
34         (parse_historical): New.
35         (show_extcap): New.
36         (dump_all_do): Print only the length of longs DOs.
37         * command.c (cmd_writekey, cmd_apdu, cmd_pksign)
38         (cmd_passwd): Replace open coding by skip_options.
39
40 2008-08-30  Moritz  <moritz@gnu.org>
41
42         * scdaemon.c (main): Use estream_asprintf instead of asprintf.
43         * command.c (update_reader_status_file): Likewise.
44         (cmd_serialno): Use estream_asprintf instead of asprintf
45         and xfree instead of free to release memory allocated
46         through (estream_)asprintf.
47         (cmd_learn): Likewise.
48         (pin_cb): Likewise.
49         * app-openpgp.c (get_public_key): Likewise.
50
51 2008-08-18  Werner Koch  <wk@g10code.com>
52
53         * app-openpgp.c (do_setattr): Fix test for v2 cards.
54
55 2008-08-11  Werner Koch  <wk@g10code.com>
56
57         * apdu.c (reset_pcsc_reader, open_pcsc_reader)
58         (reset_rapdu_reader, open_rapdu_reader): Allow ATRs of up to 33
59         bytes.  Provide maximum size of ATR buffer using DIM.  Such long
60         ATR are never seen in reality but the PC/SC library of MAC OS X is
61         just too buggy.  Reported by Ludovic Rousseau.  Fixes bug #948.
62
63 2008-07-30  Werner Koch  <wk@g10code.com>
64
65         * app-openpgp.c (verify_a_chv): Use xtrymalloc and make the prompt
66         for CHV2 more user friendly.
67
68 2008-07-03  Werner Koch  <wk@g10code.com>
69
70         * app-openpgp.c (do_readcert): New.
71         (app_local_s): Add fields IS_V2 and MAX_CERTLEN_3.
72         (app_select_openpgp): Set them and register do_readcert.
73         (do_setattr): Allow storing of the certificate.
74
75 2008-06-25  Werner Koch  <wk@g10code.com>
76
77         * app-dinsig.c (do_sign): Allow for SHA256.
78
79 2008-06-24  Werner Koch  <wk@g10code.com>
80
81         * app-common.h (app_ctx_s): Renamed reset_mode parameter of
82         change_pin to mode_Flags and make it an unsigned int.
83         (APP_CHANGE_FLAG_RESET, APP_CHANGE_FLAG_NULLPIN): New.
84         * app-openpgp.c (do_change_pin): Adjust for that.
85
86         * command.c (cmd_passwd): Add option --nullpin.
87         * app-nks.c (do_check_pin, do_change_pin): New.
88         (app_select_nks): Register new functions.
89
90 2008-04-21  Moritz Schulte  <mo@g10code.com>  (wk)
91
92         * app-openpgp.c (verify_a_chv): Make use of the default CHV flag.
93
94 2008-03-26  Werner Koch  <wk@g10code.com>
95
96         * app-openpgp.c (verify_chv3): Support the keypad.
97
98 2008-02-09  Marcus Brinkmann  <marcus@g10code.de>
99
100         * scdaemon.c (main): Use CONFIG_FILENAME as filename if it is set
101         in gpgconf-list output.
102
103 2007-12-10  Werner Koch  <wk@g10code.com>
104
105         * app-openpgp.c (do_decipher): Take care of cryptograms shorter
106         that 128 bytes.  Fixes bug#851.
107
108 2007-11-14  Werner Koch  <wk@g10code.com>
109
110         * scdaemon.c (main): Pass STANDARD_SOCKET flag to
111         create_server_socket.
112         
113 2007-11-13  Werner Koch  <wk@g10code.com>
114
115         * scdaemon.c (start_connection_thread): Do not call
116         assuan_sock_check_nonce if we are running in --server mode.
117
118 2007-11-07  Werner Koch  <wk@g10code.com>
119
120         * scdaemon.h: Remove errors.h.
121
122 2007-10-02  Werner Koch  <wk@g10code.com>
123
124         * command.c (cmd_getinfo): Add "pid" subcommand.
125
126 2007-10-01  Werner Koch  <wk@g10code.com>
127
128         * scdaemon.c (create_server_socket): Use Assuan socket wrappers
129         and remove Windows specific code.
130         (socket_nonce): New.
131         (start_connection_thread): Check nonce.
132
133 2007-09-14  Marcus Brinkmann  <marcus@g10code.de>
134
135         * scdaemon.c (main): New variable STANDARD_SOCKET, which is 1 for
136         W32 targets.  Use it for create_socket_name.
137
138 2007-08-07  Werner Koch  <wk@g10code.com>
139
140         * tlv.c, tlv.h:  Move to ../common/.
141
142 2007-08-02  Werner Koch  <wk@g10code.com>
143
144         * scdaemon.c: Include gc-opt-flags.h and remove their definition
145         here.
146
147 2007-08-01  Werner Koch  <wk@g10code.com>
148
149         * apdu.c (send_le): Implement exact length hack.  Suggested by
150         Sten Lindgren.
151
152 2007-07-05  Werner Koch  <wk@g10code.com>
153
154         * command.c (has_option_name, skip_options): New.
155         (cmd_genkey): Add option --timestamp.
156         (cmd_writekey): Enter confidential mode while inquiring the key data.
157
158         * app.c (app_genkey): Add arg CREATETIME.
159         * app-common.h (app_ctx_s): Likewise
160         * app-openpgp.c (do_genkey): Ditto.  Use it.
161
162
163 2007-07-04  Werner Koch  <wk@g10code.com>
164
165         * command.c (cmd_getinfo): New subcommand "version".
166
167         * scdaemon.c (TIMERTICK_INTERVAL): New.
168         (handle_connections) [W32]: Enable a dummy sigs event.
169         (handle_connections): Use a proper count for select and not
170         FD_SETSIZE.
171         (fixed_gcry_pth_init, main): Kludge to fix pth initialization.
172
173 2007-06-21  Werner Koch  <wk@g10code.com>
174
175         * scdaemon.h (ctrl_t): Remove.  It is now declared in ../common/util.h.
176
177 2007-06-18  Marcus Brinkmann  <marcus@g10code.de>
178
179         * scdaemon.c (main): Percent escape output of --gpgconf-list.
180
181 2007-06-12  Werner Koch  <wk@g10code.com>
182
183         * scdaemon.c (main): Replace some calls by init_common_subsystems.
184
185 2007-06-11  Werner Koch  <wk@g10code.com>
186
187         * Makefile.am (scdaemon_LDADD): Use libcommonpth macro.
188
189         * command.c (initialize_module_command): New.
190         * scdaemon.c (main) [W32]: Do not use sigpipe code.
191         (main): Call initialize_module_command.
192
193 2007-06-06  Werner Koch  <wk@g10code.com>
194
195         * app-openpgp.c (do_sign): Fix arithmetic on void*.
196
197         * app.c (dump_mutex_state) [W32]: Handle the W32Pth case.
198
199         * apdu.c: Remove dynload.h.
200
201         * scdaemon.c (i18n_init): Remove.
202
203 2007-04-20  Werner Koch  <wk@g10code.com>
204
205         * sc-copykeys.c (my_gcry_logger): Removed.
206         (main): Call setup_libgcrypt_logging helper.
207         * scdaemon.c (my_gcry_logger): Removed.
208         (main): Call setup_libgcrypt_logging helper.
209
210 2007-04-03  Werner Koch  <wk@g10code.com>
211
212         * command.c (cmd_getinfo): New subcommand "reader_list".
213         * ccid-driver.c (scan_or_find_devices): Ignore EBUSY in scan mode
214         for special transports.
215
216 2007-03-07  Werner Koch  <wk@g10code.com>
217
218         * app-dinsig.c: Include i18n.h.
219         (verify_pin): Support PIN pads.
220         * app-nks.c (verify_pin): Ditto.
221
222         * ccid-driver.c (bulk_in): Handle time extension before checking
223         the message type.
224         (ccid_transceive_secure): Support the Cherry XX44 keyboard.
225         Kudos to the nice folks at Cherry for helping with that.
226
227 2007-02-18  Werner Koch  <wk@g10code.com>
228
229         * scdaemon.c (DEFAULT_PCSC_DRIVER): Add a default for OS X.
230
231 2007-01-25  Werner Koch  <wk@g10code.com>
232
233         * Makefile.am (scdaemon_LDADD): Added LIBICONV.  Noted by Billy
234         Halsey.
235
236 2006-12-21  Werner Koch  <wk@g10code.com>
237
238         * app-openpgp.c (verify_chv2): Factored most code out into...
239         (verify_a_chv): ... new.
240         (do_sign): Factored verification code out to new function and
241         take care of a keypad entered PIN.
242         (compare_fingerprint): Print an additional diagnostic.
243
244 2006-11-28  Werner Koch  <wk@g10code.com>
245
246         * apdu.c (send_le, apdu_send_direct): Increase RESULTLEN to 258 to
247         allow for full 256 byte and the status word.  This might break
248         some old PC/SC drivers or cards, but we will see.  Suggested by
249         Kenneth Wang.
250
251 2006-11-23  Werner Koch  <wk@g10code.com>
252
253         * command.c (scd_command_handler): Fixed use of CTRL.
254
255 2006-11-21  Werner Koch  <wk@g10code.com>
256
257         * Makefile.am (libexec_PROGRAMS): Put pscs-wrapper into libexec.
258         Renamed to gnupg-pcsc-wrapper.
259         * apdu.c (open_pcsc_reader): Use GNUPG_LIBEXECDIR to accces the
260         wrapper.  Suggested by Eric Dorland.
261
262 2006-11-20  Werner Koch  <wk@g10code.com>
263
264         * app-openpgp.c (verify_chv2): Support for keypads (only CHV2).
265
266         * ccid-driver.c (ccid_transceive_secure): Made it work for Kaan
267         and SCM.
268
269 2006-11-17  Werner Koch  <wk@g10code.com>
270
271         * ccid-driver.c (scan_or_find_devices): Use DEBUGOUT_2 instead of
272         log_debug.  Removed few other log_debug.
273
274         * iso7816.c (iso7816_check_keypad): Allow for a SW of 0.
275
276         * command.c (pin_cb): New mode to prompt for a keypad entry.
277
278         * scdaemon.c (main) <gpgconf-list>: Add disable-keypad.
279
280 2006-11-15  Werner Koch  <wk@g10code.com>
281
282         * app-p15.c (read_ef_odf): Cast one printf arg.
283
284         * scdaemon.h (struct server_control_s): Add field THREAD_STARTUP.
285         * command.c (scd_command_handler): Add new arg CTRL.
286         * scdaemon.c (scd_init_default_ctrl): Made static.
287         (scd_deinit_default_ctrl): New.
288         (start_connection_thread): Call init/deinit of ctrl.
289         (handle_connections): Allocate CTRL.
290
291         * apdu.c (PCSC_ERR_MASK): New.
292         (reset_pcsc_reader, pcsc_get_status, pcsc_send_apdu)
293         (close_pcsc_reader, open_pcsc_reader): Use it after shifting error
294         values.  Reported by Henrik Nordstrom.  Fixes bug #724.
295
296 2006-10-24  Werner Koch  <wk@g10code.com>
297
298         * scdaemon.h (GCRY_MD_USER_TLS_MD5SHA1): New.
299         (MAX_DIGEST_LEN): Increased to 36.
300         * app-p15.c (do_sign): Support for TLS_MD5SHA1.
301         (do_auth): Detect TLS_MD5SHA1.
302         (do_sign): Tweaks for that digest.
303
304 2006-10-23  Werner Koch  <wk@g10code.com>
305
306         * scdaemon.c (main): New command --gpgconf-test.
307
308 2006-10-17  Werner Koch  <wk@g10code.com>
309
310         * Makefile.am (scdaemon_LDADD): Link against libcommonpth.
311
312 2006-10-12  Werner Koch  <wk@g10code.com>
313
314         * apdu.c: Include pth.h after unistd.h for the sake of newer Pth
315         versions.
316
317 2006-10-11  Werner Koch  <wk@g10code.com>
318
319         * app-openpgp.c (do_sign): Redirect to do_auth for OpenPGP.3.
320
321 2006-10-06  Werner Koch  <wk@g10code.com>
322
323         * Makefile.am (AM_CFLAGS): Use PTH version of libassuan.
324         (scdaemon_LDADD): Ditto.
325
326         * scdaemon.h (send_status_info): Mark with sentinel attribute.
327
328 2006-10-02  Marcus Brinkmann  <marcus@g10code.de>
329
330         * command.c (update_reader_status_file): Increase buffer of
331         NUMBUF2 (fixing typo).
332
333 2006-09-24  Marcus Brinkmann  <marcus@g10code.de>
334
335         * app-openpgp.c (do_sign): Advance INDATA by the SHA1 resp. RMD160
336         prefix length.
337
338 2006-09-14  Werner Koch  <wk@g10code.com>
339
340         Replaced all call gpg_error_from_errno(errno) by
341         gpg_error_from_syserror().
342
343         * command.c (scd_command_handler): Replaced
344         init_connected_socket_server by init_socket_server_ext.
345
346 2006-09-07  Werner Koch  <wk@g10code.com>
347
348         * command.c (update_reader_status_file): Execute an event handler
349         if available.
350
351 2006-09-06  Werner Koch  <wk@g10code.com>
352
353         * apdu.c (pcsc_end_transaction): 
354         * pcsc-wrapper.c (pcsc_end_transaction: Fixed dclaration.
355         Reported by Bob Dunlop.
356
357         * scdaemon.h (CTRL,APP): Removed and changed everywhere to
358         ctrl_t/app_t.
359
360         Replaced all Assuan error codes by libgpg-error codes.  Removed
361         all map_to_assuan_status and map_assuan_err.
362         
363         * scdaemon.c (main): Call assuan_set_assuan_err_source to have Assuan
364         switch to gpg-error codes.
365         * command.c (set_error): Adjusted.
366
367 2006-09-02  Marcus Brinkmann  <marcus@g10code.de>
368
369         * command.c (get_reader_slot): Return the slot_table index, not
370         the APDU slot number.
371         (update_reader_status_file): Use the slot_table index in the
372         update_card_removed invocation.
373
374 2006-09-01  Marcus Brinkmann  <marcus@g10code.de>
375
376         * command.c (cmd_getinfo): Handle status command.
377
378 2006-08-30  Marcus Brinkmann  <marcus@g10code.de>
379
380         * command.c (do_reset): Delay resetting CTRL->reader_slot until
381         after update_card_removed invocation.
382
383 2006-08-28  Marcus Brinkmann  <marcus@g10code.de>
384
385         * app-openpgp.c (do_decipher, do_sign): Allow "OPENPGP.2"
386         resp. "OPENPGP.1" for KEYIDSTR.
387
388 2006-08-21  Werner Koch  <wk@g10code.com>
389
390         * pcsc-wrapper.c (handle_open, handle_close): Reset card and
391         protocol on error/close.
392         (handle_status): Don't set the state if the state is unknown.
393         (handle_reset): Ignore an error if already disconnected.  May
394         happen due to system wake-up after hibernation.  Suggested by Bob
395         Dunlop.
396
397 2006-06-28  Werner Koch  <wk@g10code.com>
398
399         * app-openpgp.c (do_writekey): Fixed computation of memmove
400         length.  This led to garbled keys if E was larger than one byte.
401         Thanks to Achim Pietig for hinting at the garbled E.
402
403 2006-06-09  Marcus Brinkmann  <marcus@g10code.de>
404
405         * Makefile.am (scdaemon_LDADD): Add $(NETLIBS).
406
407 2006-04-14  Marcus Brinkmann  <marcus@g10code.de>
408
409         * app.c (select_application): Cover up a slot mismatch error in
410         case it happens (it shouldn't happen).
411         (release_application): Use APP->slot.  Lock the reader.
412         (application_notify_card_removed): Lock the reader.
413
414 2006-04-11  Werner Koch  <wk@g10code.com>
415
416         * command.c (hex_to_buffer): New.
417         (cmd_apdu): New.
418
419 2006-04-03  Werner Koch  <wk@g10code.com>
420
421         * scdaemon.c [__GLIBC__]: Default to libpcsclite.so.1.
422
423 2006-03-21  Werner Koch  <wk@g10code.com>
424
425         * command.c (cmd_pksign): Add --hash option.
426
427 2006-03-01  Werner Koch  <wk@g10code.com>
428
429         * command.c (status_file_update_lock): New.
430         (scd_update_reader_status_file): Use lock and factor existing code
431         out to ..
432         (update_reader_status_file): .. this.
433         (do_reset): Use the lock and call update_reader_status_file.
434
435 2006-02-20  Werner Koch  <wk@g10code.com>
436
437         * apdu.c (open_pcsc_reader): Fixed double free.  Thanks to Moritz.
438
439 2006-02-09  Werner Koch  <wk@g10code.com>
440
441         * command.c (get_reader_slot, do_reset) 
442         (scd_update_reader_status_file): Rewrote.
443
444         * app.c (release_application): Factored code out to ..
445         (deallocate_app): new function.
446         (select_application): Introduce new saved application stuff.
447         (application_notify_card_removed): New.
448         * command.c (update_card_removed): Call it here.
449         (do_reset): And here.
450
451         * app.c (check_application_conflict): New.
452         * command.c (open_card): Use it here.
453         (cmd_restart): New command.
454
455         * command.c (cmd_lock): Fixed --wait option to actually terminate.
456
457 2006-02-08  Werner Koch  <wk@g10code.com>
458
459         * ccid-driver.c (ccid_get_atr): Read Parameter and select T=1
460         using these parameters.
461         (scan_or_find_devices): Check for NULL r_fd.
462
463 2006-02-02  Werner Koch  <wk@g10code.com>
464
465         * ccid-driver.c (special_transport): New
466         (ccid_open_reader, do_close_reader, ccid_shutdown_reader)
467         (bulk_out, bulk_in): Add support for CardMan 4040 reader.
468
469         * ccid-driver.c (scan_or_find_devices): Factored most code out to
470         (scan_or_find_usb_device): .. new.
471         (make_reader_id): Fixed vendor mask.
472
473 2006-01-01  Werner Koch  <wk@g10code.com>
474
475         * app-openpgp.c (do_sign): Give user error if hash algorithm is
476         not supported by the card.
477
478 2005-12-06  Werner Koch  <wk@g10code.com>
479
480         * apdu.c (open_pcsc_reader): Check that pcsc-wrapper is actually
481         installed.
482
483 2005-11-23  Werner Koch  <wk@g10code.com>
484
485         * app-nks.c (verify_pin): Give a special error message for a Nullpin.
486
487 2005-10-29  Werner Koch  <wk@g10code.com>
488
489         * ccid-driver.c (send_escape_cmd): New args RESULT, RESULTLEN and
490         RESULTMAX.  Changed all callers.
491         (ccid_transceive_escape): New.
492
493 2005-10-27  Werner Koch  <wk@g10code.com>
494
495         * apdu.c [__CYGWIN__]: Make cygwin environment similar to _WIN32.
496         Suggested by John P. Clizbe.
497         * scdaemon.c [__CYGWIN__]: Set default PC/SC driver to winscard.dll.
498
499 2005-10-19  Werner Koch  <wk@g10code.com>
500
501         * ccid-driver.h (CCID_DRIVER_ERR_NO_KEYPAD): New.
502         * apdu.h (SW_HOST_NO_KEYPAD): New.
503         * iso7816.h (struct iso7816_pininfo_s): New.
504         * iso7816.c (map_sw): Support new code.
505         (iso7816_check_keypad): New.
506         (iso7816_verify_kp, iso7816_change_reference_data_kp) 
507         (iso7816_reset_retry_counter_kp): New.  Extended versions of the
508         original functions.
509         * apdu.c (host_sw_string): Support new code. 
510         (reader_table_s): New field CHECK_KEYPAD.
511         (new_reader_slot, open_ct_reader, open_pcsc_reader) 
512         (open_ccid_reader, open_rapdu_reader): Initialize it.
513         (check_ccid_keypad): New.
514         (apdu_check_keypad): New.
515         (apdu_send_le): Factored all code out to ...
516         (send_le): .. new.  Takes an additional arg; changed all callers
517         of the orginal function to use this one with a NULL for the new
518         arg.
519         (apdu_send_simple_kp): New.
520         (ct_send_apdu, pcsc_send_apdu, my_rapdu_send_apdu) 
521         (send_apdu_ccid): New arg PININFO.
522         (send_apdu_ccid): Use the new arg.
523
524         * scdaemon.c: New option --disable-keypad.
525
526 2005-10-08  Marcus Brinkmann  <marcus@g10code.de>
527
528         * Makefile.am (scdaemon_LDADD): Add ../gl/libgnu.a after
529         ../common/libcommon.a.
530
531 2005-09-20  Werner Koch  <wk@g10code.com>
532
533         * app-dinsig.c (verify_pin): Try ISO 9564 BCD encoding.
534
535         * iso7816.c (iso7816_select_application): Add arg FLAGS.  Changed
536         all callers to pass 0.
537         * app-openpgp.c (app_select_openpgp): But this one requires a
538         special flag.
539
540         * app-p15.c (app_select_p15): Don't use select application for the
541         BELPIC.
542
543 2005-09-09  Werner Koch  <wk@g10code.com>
544
545         * pcsc-wrapper.c (main): Removed bogus free.
546
547         * app-p15.c (do_auth): New.
548         (do_getattr): New attribs $AUTHKEYID and $DISPSERIALNO.
549         * app-openpgp.c (do_getattr): Ditto.
550
551 2005-09-08  Werner Koch  <wk@g10code.com>
552
553         * app-openpgp.c (do_getattr): New key $AUTHKEYID.
554
555 2005-09-06  Werner Koch  <wk@g10code.com>
556
557         * app-p15.c (do_sign): Tweaked for BELPIC cards.
558         (read_home_df): New arg R_BELPIC.
559         (app_select_p15): Set card type for BELPIC.
560
561 2005-09-05  Werner Koch  <wk@g10code.com>
562
563         * iso7816.c (iso7816_select_path): New.
564         * app-p15.c (select_ef_by_path): Allow for direct path selection.
565         (app_select_p15): Try using the Belgian variant of pkcs#15.
566         (read_home_df): New.
567         (read_ef_odf): Generalized.
568         (read_ef_tokeninfo): New.
569         (read_p15_info): Set serialnumber from TokenInfo.
570         (app_select_p15): Don't munge serialNumber - that must be done
571         only once.
572
573         * iso7816.c (iso7816_read_binary): Use Le=0 when reading all
574         data.  Handle 6C00 error and take 6B00 as indication for EOF.
575         * apdu.h (SW_EXACT_LENGTH_P): New.
576         * apdu.c (new_reader_slot, reset_pcsc_reader, pcsc_get_status) 
577         (open_pcsc_reader): Set new reader state IS_T0.
578         (apdu_send_le): When doing T=0 make sure not to send Lc and Le.
579         Problem reported by Carl Meijer.
580         (apdu_send_direct): Initialize RESULTLEN.
581         * pcsc-wrapper.c (handle_status): Return the current protocol as
582         a new third word.
583
584 2005-08-05  Werner Koch  <wk@g10code.com>
585
586         * apdu.c (open_rapdu_reader): Set the reader number.
587
588 2005-07-05  Werner Koch  <wk@g10code.com>
589
590         * app-openpgp.c (do_readkey): Return a mallcoed copy of the key as
591         required by the description.  Thanks to Moritz for tracking this
592         problem down.
593
594 2005-06-21  Werner Koch  <wk@g10code.com>
595
596         * scdaemon.c (main): ifdef call to ccid_set_debug_level.
597
598         * apdu.c (reset_pcsc_reader, open_pcsc_reader): Cast size_t to
599         ulong for printf.
600
601 2005-06-06  Werner Koch  <wk@g10code.com>
602
603         * scdaemon.c (main): New option --debug-allow-core-dump. 
604
605 2005-06-03  Werner Koch  <wk@g10code.com>
606
607         * scdaemon.c (handle_connections): Make sure that the signals we
608         are handling are not blocked.Block signals while creating new
609         threads.
610         (handle_connections): Include the file descriptor into the name of
611         the thread.
612
613 2005-06-02  Werner Koch  <wk@g10code.com>
614
615         * app.c (app_dump_state, dump_mutex_state): New.
616         * scdaemon.c (handle_signal): Print it on SIGUSR1.
617
618         * app-openpgp.c (do_writekey): Typo fix.
619
620         * command.c (open_card): Check for locked state even if an
621         application context is available.
622
623         * app-common.h: Add REF_COUNT field.
624         * app.c (release_application, select_application): Implement
625         reference counting to share the context beween connections.
626
627         * app.c (lock_reader, unlock_reader): Take SLOT instead of APP as
628         argument.  Changed all callers.
629         (select_application): Unlock the reader on error.  This should fix
630         the hangs I noticed last week.
631
632         * scdaemon.h: Removed card_ctx_t cruft.
633
634 2005-06-01  Werner Koch  <wk@g10code.com>
635
636         * scdaemon.c: Include mkdtemp.h.
637
638 2005-05-31  Werner Koch  <wk@g10code.com>
639
640         * tlv.c [GNUPG_MAJOR_VERSION==1]: Define constants instead of
641         including a gnupg 1.4 header.
642
643 2005-05-30  Werner Koch  <wk@g10code.com>
644
645         * tlv.c: Add hack to compile without gpg-error.h when used with
646         GnuPG 1.4.
647
648 2005-05-23  Werner Koch  <wk@g10code.com>
649
650         * Makefile.am: Do not build sc-copykeys anymore.
651
652         * app-openpgp.c (app_openpgp_storekey, app_openpgp_readkey)
653         (app_openpgp_cardinfo): Removed.
654
655         * ccid-driver.c (parse_ccid_descriptor): SCR335 FW version 5.14 is
656         good.
657         (do_close_reader): Never do a reset. The caller should instead
658         make sure that the reader has been closed properly.  The new retry
659         code in ccid_slot_status will make sure that the readersatrts up
660         fine even if the last process didn't closed the USB connection
661         properly.
662         (ccid_get_atr): For certain readers try switching to ISO mode.
663         Thanks to Ludovic Rousseau for this hint and the magic numbers.
664         (print_command_failed): New.
665         (bulk_in): Use it here. Add new arg NO_DEBUG.
666         (ccid_slot_status): Disabled debugging.
667
668 2005-05-21  Werner Koch  <wk@g10code.com>
669
670         * scdaemon.c (handle_signal): Print thread info on SIGUSR1.
671
672 2005-05-20  Werner Koch  <wk@g10code.com>
673
674         * ccid-driver.c: Replaced macro DEBUG_T1 by a new debug level.
675         (parse_ccid_descriptor): Mark SCR335 firmware version 5.18 good.
676         (ccid_transceive): Arghhh.  The seqno is another bit in the
677         R-block than in the I block, this was wrong at one place.
678
679         * scdaemon.c: New options --debug-ccid-driver and
680         --debug-disable-ticker.
681
682         * app-openpgp.c (do_genkey, do_writekey): Factored code to check
683         for existing key out into ..
684         (does_key_exist): .. New function.
685
686 2005-05-19  Werner Koch  <wk@g10code.com>
687
688         * tlv.c (parse_sexp): New.
689
690         * command.c (cmd_writekey): New.
691         * app.c (app_writekey): New.
692         * app-common.c (app_t): Add function ptr WRITEKEY.
693         * app-openpgp.c (do_writekey): New.
694
695         * app-openpgp.c (do_readkey) [GNUPG_MAJOR_VERSION==1]: Return error.
696         * app-common.h (app_t) [GNUPG_MAJOR_VERSION==1]: Add a field to
697         store the Assuan context.
698
699 2005-05-17  Werner Koch  <wk@g10code.com>
700
701         * scdaemon.c: Removed non-pth code paths.
702         (create_socket_name, create_server_socket): New.  Taken from
703         ../agent/gpg-agent.
704         (cleanup): Changed to adjust for SOCKET_NAME now being malloced.
705         (ticker_thread): Always use pth_event_occurred; it is again
706         defined for all decent PTH versions.
707         (handle_connections): New. Based on the gpg-agent code.
708         (start_connection_thread): Ditto.
709         (ticker_thread): Removed.
710         (cleanup_sh): Removed.
711         (main): Run the handler for the pipe server in a separate
712         thread.  This replaces the old ticker thread.
713         (scd_get_socket_name): New.
714         * command.c (cmd_getinfo): New command GETINFO.
715         (scd_command_handler): Renamed argument and changed code to use an
716         already connected FD.
717
718 2005-05-15  Werner Koch  <wk@g10code.com>
719
720         * app.c, app-common.h, app-nks.c, app-p15.c, app-dinsig.c
721         * app-openpgp.c: Change most function return types from int to
722         gpg_error_t.
723         * command.c (pin_cb): Ditto.
724         * sc-copykeys.c (pincb): Ditto.
725
726         * app.c (lock_reader, unlock_reader): New.  Changed call handler
727         wrappers to make use of these functions.
728
729 2005-05-07  Werner Koch  <wk@g10code.com>
730
731         * ccid-driver.c (do_close_reader): Don't do a reset before close.
732         Some folks reported that it makes the SCR335 hang less often.
733         Look at the source on how to re-enable it.
734
735 2005-04-27  Werner Koch  <wk@g10code.com>
736
737         * app-p15.c (micardo_mse): New.
738         (do_sign): Call it.
739         * iso7816.c (iso7816_manage_security_env): Allow passing DATA as
740         NULL to indicate an empty Lc.
741         * tlv.c (find_tlv): Check that a found object fits into the
742         buffer.
743         (find_tlv_unchecked): New as replacement for the old non-checking
744         variant.
745         * app.c (select_application): Keep on using the non-checking
746         variant.
747         * app-openpgp.c (get_one_do, dump_all_do): Ditto.
748
749         
750         Removal of the old OpenSC based code.
751         
752         * app-p15.c: New.  Basic support for pkcs15 cards without OpenSC.
753         There are quite a couple of things missing but at least I can use
754         my old TCOS cards from the Aegypten-1 development for signing.
755         * app.c (select_application): Detect pkcs15 applications.
756         * Makefile.am (scdaemon_SOURCES): Removed card.c, card-common.h
757         and card-p15.c because they are now obsolete. Added app-p15.c.
758         Removed all OpenSC stuff.
759         * command.c (do_reset, open_card, cmd_serialno, cmd_learn) 
760         (cmd_readcert, cmd_readkey, cmd_pksign, cmd_pkdecrypt): Removed
761         all special cases for the old card.c based mechanisms.
762         * scdaemon.c, apdu.c: Removed all special cases for OpenSC.
763
764 2005-04-20  Werner Koch  <wk@g10code.com>
765
766         * command.c: Use GPG_ERR_LOCKED instead of EBUSY.
767
768 2005-04-14  Werner Koch  <wk@g10code.com>
769
770         * app-openpgp.c (retrieve_key_material): Rewritten.  Return a
771         proper error code.
772         (retrieve_next_token): Removed.
773         (retrieve_fpr_from_card): Rewritten to make use of DO caching and
774         to take the KEYNO as arg.
775         (get_public_key): Renamed variable for clarity.
776
777 2005-04-12  Werner Koch  <wk@g10code.com>
778
779         Basic support for several sessions.
780         
781         * command.c (scd_command_handler): Replace the primary_connection
782         stuff by a real connection list.  Release the local context on
783         exit.
784         (scd_update_reader_status_file): Update accordingly.  Send signal
785         to all connections who registered an event signal.
786         (cmd_lock, cmd_unlock, register_commands): New commands LOCK and
787         UNLOCK.
788         (cmd_setdata, cmd_pksign, cmd_pkauth, cmd_pkdecrypt, cmd_setattr) 
789         (cmd_genkey, cmd_passwd, cmd_checkpin): Return an error if reader
790         is locked.
791         (do_reset): Handle locking.
792         (open_card): Ditto.  Share the reader slot with other sessions.
793         (get_reader_slot): New.
794         (update_card_removed): New.  Use it in the TEST_CARD_REMOVAL macro.
795
796 2005-04-07  Werner Koch  <wk@g10code.com>
797
798         * app-openpgp.c (do_check_pin): Add hack to allow verification of
799         CHV3.
800         (get_public_key): Don't use gcry functions to create S-expressions.
801         (do_deinit, do_readkey, do_genkey, send_keypair_info): Adjust for
802         above change.
803
804 2005-03-29  Moritz Schulte  <moritz@g10code.com>
805
806         * app-openpgp.c (retrieve_fpr_from_card): New function.
807         (retrieve_next_token): New function.
808         (retrieve_key_material): New function.
809         (get_public_key): Implement retrival of key through expernal
810         helper (gpg) in case the openpgp card is not cooperative enough.
811
812 2005-03-16  Werner Koch  <wk@g10code.com>
813
814         * ccid-driver.c (parse_ccid_descriptor): Make SCM workaround
815         reader type specific.
816         (scan_or_find_devices): Do not check the interface subclass in the
817         SPR532 kludge, as this depends on the firmware version.
818         (ccid_get_atr): Get the Slot status first.  This solves the
819         problem with readers hanging on recent Linux 2.6.x.
820         (bulk_in): Add argument TIMEOUT and changed all callers to pass an
821         appropriate one.  Change the standard timeout from 10 to 5 seconds.
822         (ccid_slot_status): Add a retry code with an initial short timeout.
823         (do_close_reader): Do an usb_reset before closing the reader.
824
825 2005-02-25  Werner Koch  <wk@g10code.com>
826
827         * app-openpgp.c (get_public_key): Make sure not to return negative
828         numbers.
829         (do_sign): Allow passing of indata with algorithm prefix.
830         (do_auth): Allow OPENPGP.3 as an alternative ID.
831
832         * app.c (app_getattr): Return just the S/N but not the timestamp.
833
834 2005-02-24  Werner Koch  <wk@g10code.com>
835
836         * app.c (app_getattr): Return APPTYPE or SERIALNO type even if the
837         application does dot support the getattr call.
838
839         * app-openpgp.c (get_one_do): Never try to get a non cacheable
840         object from the cache.
841         (get_one_do): Add new arg to return an error code.  Changed all
842         callers.
843         (do_getattr): Let it return a proper error code.
844
845         * app.c (select_application): Return an error code and the
846         application context in an new arg.
847         * command.c (open_card): Adjusted for that.  Don't use the
848         fallback if no card is present.  Return an error if the card has
849         been removed without a reset.
850         (do_reset, cmd_serialno): Clear that error flag.
851         (TEST_CARD_REMOVAL): New. Use it with all command handlers.
852         (scd_update_reader_status_file): Set the error flag on all changes.
853
854         * scdaemon.c (ticker_thread): Termintate if a shutdown is pending.
855
856         * apdu.c: Added some PCSC error codes.
857         (pcsc_error_to_sw): New.
858         (reset_pcsc_reader, pcsc_get_status, pcsc_send_apdu) 
859         (open_pcsc_reader): Do proper error code mapping.
860
861 2005-03-16  Werner Koch  <wk@g10code.com>
862
863         * ccid-driver.c (parse_ccid_descriptor): Make SCM workaround
864         reader type specific.
865         (scan_or_find_devices): Do not check the interface subclass in the
866         SPR532 kludge, as this depends on the firmware version.
867         (ccid_get_atr): Get the Slot status first.  This solves the
868         problem with readers hanging on recent Linux 2.6.x.
869
870 2005-02-22  Werner Koch  <wk@g10code.com>
871
872         * app-openpgp.c (app_local_s): New field PK.
873         (do_deinit, do_genkey, app_openpgp_storekey): Clear it.
874         (get_public_key, send_keypair_info): New.
875         (do_learn_status): Send KEYPAIR info
876
877         * app-common.h (app_ctx_t): Add function pointer READKEY.
878         * app.c (app_readkey): New.
879         * command.c (cmd_readkey): Use READKEY function if possible.
880
881 2005-01-26  Werner Koch  <wk@g10code.com>
882
883         * ccid-driver.c (parse_ccid_descriptor): Need the CSM workaround
884         also for newer firmware versions.  Need to get a list of fixed
885         firmware versions and use that.
886
887 2005-01-25  Werner Koch  <wk@g10code.com>
888
889         * apdu.c (apdu_send_le, apdu_send_direct): Fix some compiler
890         warnings.
891
892         * app-openpgp.c (get_cached_data): New arg GET_IMMEDIATE to bypass
893         the cache.  Changed all callers.
894         (get_one_do): Bypass the cache if the value would have been read
895         directly for v1.1 cards.It makes things a bit slower but obnly for
896         1.0 cards and there are not that many cards out in the wild.  This
897         is required to fix a caching bug when generating new keys; as a
898         side effect of the retrieval of the the C4 DO from the 6E DO the
899         cached fingerprint will get updated to the old value and later
900         when signing the generated key the checking of the fingerprint
901         fails because it won't match the new one.  Thanks to Moritz for
902         analyzing this problem.
903         (verify_chv3): Removed the CHV status reread logic because we
904         won't cache the C4 DO anymore.
905
906 2004-12-28  Werner Koch  <wk@g10code.com>
907
908         * ccid-driver.c (find_endpoint): New.
909         (scan_or_find_devices): Add new args to return endpoint info and
910         interface number.
911         (ccid_open_reader, ccid_shutdown_reader): Take care of these new
912         args.
913         (bulk_in, bulk_out): Use the correct endpoints.
914         (ccid_transceive_apdu_level): New.
915         (ccid_transceive): Divert to above.
916         (parse_ccid_descriptor): Allow APDU level exchange mode.
917         (do_close_reader): Pass the interface number to usb_release_interface.
918
919 2004-12-21  Werner Koch  <wk@g10code.com>
920
921         * scdaemon.c (main): Use default_homedir().
922
923 2004-12-18  Werner Koch  <wk@g10code.com>
924
925         * scdaemon.c (main) [W32]: Remove special Pth initialize..
926
927         * scdaemon.h (map_assuan_err): Define in terms of
928         map_assuan_err_with_source.
929
930 2004-12-15  Werner Koch  <wk@g10code.com>
931
932         * scdaemon.c [W32]: Various hacks to make it run under W32.
933
934         * command.c (scd_update_reader_status_file) [W32]: Don't use kill.
935
936         * apdu.c [W32]: Disable use of pcsc_wrapper.
937
938         * Makefile.am (scdaemon_LDADD): Reorder libs.
939         (sc_copykeys_LDADD): Add libassuan because it is needed for W32. 
940
941 2004-12-06  Werner Koch  <wk@g10code.com>
942
943         * Makefile.am (pkglib_PROGRAMS): Build only for W32.
944
945 2004-10-22  Werner Koch  <wk@g10code.com>
946
947         * app-openpgp.c (verify_chv3): The minium length for CHV3 is
948         8. Changed string to match the other ones.
949
950 2004-10-21  Werner Koch  <wk@g10code.com>
951
952         * app-openpgp.c (do_sign): Replace asprintf by direct allocation.
953         This avoids problems with missing vasprintf implementations in
954         gnupg 1.4.
955
956         * app-common.h (app_openpgp_storekey: Add prototype. 
957
958 2004-10-20  Werner Koch  <wk@g10code.com>
959
960         * sc-investigate: Removed.
961         * Makefile.am (sc_investigate): Removed.
962         
963         * pcsc-wrapper.c (load_pcsc_driver): Load get_status_change func.
964         (handle_open): Succeed even without a present card.
965         (handle_status, handle_reset): New.
966         
967         * apdu.c (apdu_open_reader): Load pcsc_get_status_change fucntion.
968         (pcsc_get_status): Implemented.
969         (reset_pcsc_reader): Implemented.
970         (open_pcsc_reader): Succeed even with no card inserted.
971         (open_ccid_reader): Set LAST_STATUS.
972
973         * iso7816.c (iso7816_select_application): Always use 0 for P1.
974
975 2004-10-18  Werner Koch  <wk@g10code.com>
976
977         * ccid-driver.c (ccid_get_atr): Reset T=1 state info.
978
979 2004-10-14  Werner Koch  <wk@g10code.com>
980
981         * app-openpgp.c (parse_login_data): New. 
982         (app_select_openpgp): Call it.
983         (do_setattr): Reparse it after change.
984
985 2004-10-06  Werner Koch  <wk@g10code.de>
986
987         * ccid-driver.c (ccid_open_reader): Store the vendor ID.
988         (ccid_transceive_secure): New.
989         (parse_ccid_descriptor): Workaround for an SCM reader problem.
990
991 2004-10-04  Werner Koch  <wk@g10code.de>
992
993         * ccid-driver.c (send_escape_cmd): New.
994
995 2004-09-30  Werner Koch  <wk@g10code.com>
996
997         * Makefile.am: Adjusted for gettext 0.14.
998
999         * app-openpgp.c (do_sign): Add the error string to the verify
1000         failed messages.
1001
1002 2004-09-27  Werner Koch  <wk@g10code.com>
1003
1004         From gnupg 1.3
1005
1006         * app-openpgp.c: Made all strings translatable.
1007         (verify_chv3) [GNUPG_MAJOR_VERSION]: Make opt.allow_admin
1008         available for use in gnupg 2. 
1009         (verify_chv3): Reimplemented countdown showing to use only
1010         functions from this module.  Flush the CVH status cache on a
1011         successful read.
1012         (get_one_do): Hack to bypass the cache for cards versions > 1.0.
1013         (store_fpr): Store the creation date for card version > 1.0.
1014
1015         * app-openpgp.c (app_openpgp_storekey): Call flush_cache.
1016         (get_cached_data): Move local data initialization to ..
1017         (app_select_openpgp): .. here. Read some flags for later use.
1018         (do_getattr): New read-only attribute EXTCAP.
1019         
1020         * apdu.c (open_pcsc_reader): Do not print empty reader string.
1021
1022         * ccid-driver.c (do_close_reader): Factored some code out from ...
1023         (ccid_close_reader): ..here.
1024         (ccid_shutdown_reader): New.
1025
1026         * apdu.c (apdu_shutdown_reader): New.
1027         (shutdown_ccid_reader): New.
1028
1029         * apdu.c (open_ccid_reader): New arg PORTSTR.  Pass it to
1030         ccid_open_reader.
1031         (apdu_open_reader): Pass portstr to open_ccid_reader.
1032         (apdu_open_reader): No fallback if a full CCID reader id has been
1033         given.
1034
1035         * ccid-driver.c (ccid_get_reader_list): New.
1036         (ccid_open_reader): Changed API to take a string for the reader.
1037         Removed al the cruft for the libusb development vesion which seems
1038         not to be maintained anymore and there are no packages anyway.
1039         The stable library works just fine.
1040         (struct ccid_reader_id_s): Deleted and replaced everywhere by a
1041         simple string.
1042         (usb_get_string_simple): Removed.
1043         (bulk_in): Do valgrind hack here and not just everywhere.
1044
1045         * ccid-driver.c (read_device_info): Removed.
1046         (make_reader_id, scan_or_find_devices): New.
1047         (ccid_open_reader): Simplified by make use of the new functions.
1048         (ccid_set_debug_level): New.  Changed the macros to make use of
1049         it.  It has turned out that it is often useful to enable debugging
1050         at runtime so I added this option.
1051
1052         From gnupg 1.3 - David Shaw  <dshaw@jabberwocky.com>
1053
1054         * app-openpgp.c (verify_chv3): Show a countdown of how many wrong
1055         admin PINs can be entered before the card is locked.
1056
1057         * app-openpgp.c (get_cached_data): Avoid mallocing zero since it
1058         breaks us when using --enable-m-guard.
1059
1060         * ccid-driver.c (usb_get_string_simple): Replacement function to
1061         work with older libusb.
1062
1063         * ccid-driver.c (read_device_info): Fix segfault when usb device
1064         is not accessible.
1065         (ccid_open_reader): Allow working with an even older version of
1066         libusb (usb_busses global instead of usb_get_busses()).
1067
1068 2004-09-11  Werner Koch  <wk@g10code.com>
1069
1070         * app-openpgp.c (app_select_openpgp): Its app_munge_serialno and
1071         not app_number_serialno.
1072
1073 2004-08-20  Werner Koch  <wk@g10code.de>
1074
1075         * app.c (select_application): Fixed serial number extraction and
1076         added the BMI card workaround.
1077         (app_munge_serialno): New.
1078         * app-openpgp.c (app_select_openpgp): Try munging serialno.
1079
1080 2004-08-05  Werner Koch  <wk@g10code.de>
1081
1082         * scdaemon.c (main): New option --disable-application.
1083         * app.c (is_app_allowed): New.
1084         (select_application): Use it to check for disabled applications.
1085
1086         * ccid-driver.h (CCID_DRIVER_ERR_ABORTED): New.
1087         * ccid-driver.c (ccid_open_reader): Support the stable 0.1 version
1088         of libusb.
1089         (ccid_get_atr): Handle short messages.
1090
1091         * apdu.c (my_rapdu_get_status): Implemented.
1092
1093 2004-07-27  Moritz Schulte  <moritz@g10code.com>
1094
1095         * apdu.c: Include <signal.h>.
1096
1097         * Makefile.am: Use @DL_LIBS@ instead of -ldl.
1098
1099 2004-07-22  Werner Koch  <wk@g10code.de>
1100
1101         * Makefile.am: Make OpenSC lib link after libgcrypt. Do not link
1102         to pth.
1103         * apdu.c: Don't use Pth if we use OpenSC.
1104         * sc-investigate.c, scdaemon.c: Disable use of pth if OpenSC is used. 
1105
1106         * scdaemon.c (main): Bumbed thread stack size up to 512k.
1107
1108 2004-07-16  Werner Koch  <wk@gnupg.org>
1109
1110         * apdu.c (reader_table_s):  Add function pointers for the backends.
1111         (apdu_close_reader, apdu_get_status, apdu_activate) 
1112         (send_apdu): Make use of them.
1113         (new_reader_slot): Intialize them to NULL.
1114         (dump_ccid_reader_status, ct_dump_reader_status): New.
1115         (dump_pcsc_reader_status): New.
1116         (open_ct_reader, open_pcsc_reader, open_ccid_reader) 
1117         (open_osc_reader, open_rapdu_reader): Intialize function pointers.
1118         (ct_activate_card, ct_send_apdu, pcsc_send_apdu, osc_send_apdu) 
1119         (error_string): Removed.  Replaced by apdu_strerror.
1120         (get_ccid_error_string): Removed.
1121         (ct_activate_card): Remove the unused loop.
1122         (reset_ct_reader): Implemented.
1123         (ct_send_apdu): Activate the card if not yet done.
1124         (pcsc_send_apdu): Ditto.
1125
1126 2004-07-15  Werner Koch  <wk@gnupg.org>
1127
1128         * ccid-driver.h: Add error codes.
1129         * ccid-driver.c: Implement more or less proper error codes all
1130         over the place.
1131
1132         * apdu.c (apdu_send_direct): New.
1133         (get_ccid_error_string): Add some error code mappings.
1134         (send_apdu): Pass error codes along for drivers already supporting
1135         them.
1136         (host_sw_string): New.
1137         (get_ccid_error_string): Use above.
1138         (send_apdu_ccid): Reset the reader if it has not yet been done.
1139         (open_ccid_reader): Don't care if the ATR can't be read.
1140         (apdu_activate_card): New.
1141         (apdu_strerror): New.
1142         (dump_reader_status): Only enable it with opt.VERBOSE.
1143         * iso7816.c (map_sw): Add mappings for the new error codes.
1144
1145 2004-07-02  Werner Koch  <wk@gnupg.org>
1146
1147         * apdu.c (open_ct_reader, open_pcsc_reader, open_ccid_reader)
1148         (reset_ccid_reader, open_osc_reader): Call dump_reader_status only
1149         in verbose mode.
1150
1151 2004-07-01  Werner Koch  <wk@gnupg.org>
1152
1153         * sc-investigate.c: Initialize Pth which is now required.
1154         (interactive_shell): New command "readpk".
1155
1156         * app-openpgp.c (do_getattr): Fix for sending CA-FPR.
1157
1158 2004-06-30  Werner Koch  <wk@gnupg.org>
1159
1160         * app-openpgp.c (app_openpgp_readkey): Fixed check for valid
1161         exponent.
1162
1163 2004-06-18  Werner Koch  <wk@g10code.com>
1164
1165         * sc-investigate.c (my_read_line): Renamed from read_line.
1166
1167 2004-06-16  Werner Koch  <wk@gnupg.org>
1168
1169         * apdu.c (osc_get_status): Fixed type in function name. Noted by
1170         Axel Thimm.  Yes, I didn't tested it with OpenSC :-(.
1171
1172 2004-04-28  Werner Koch  <wk@gnupg.org>
1173
1174         * app-openpgp.c (do_setattr): Sync FORCE_CHV1.
1175
1176 2004-04-27  Werner Koch  <wk@gnupg.org>
1177
1178         * app-common.h: Do not include ksba.h for gnupg 1.
1179
1180 2004-04-26  Werner Koch  <wk@gnupg.org>
1181
1182         * app-common.h: New members FNC.DEINIT and APP_LOCAL.
1183         * app.c (release_application): Call new deconstructor.
1184         * app-openpgp.c (do_deinit): New.
1185         (get_cached_data, flush_cache_item, flush_cache_after_error)
1186         (flush_cache): New.
1187         (get_one_do): Replaced arg SLOT by APP.  Make used of cached data.
1188         (verify_chv2, verify_chv3): Flush some cache item after error.
1189         (do_change_pin): Ditto.
1190         (do_sign): Ditto.
1191         (do_setattr): Flush cache item.
1192         (do_genkey): Flush the entire cache.
1193         (compare_fingerprint): Use cached data.
1194
1195         * scdaemon.c (main): Do the last change the usual way. This is so
1196         that we can easily test for versioned config files above.
1197
1198 2004-04-26  Marcus Brinkmann  <marcus@g10code.de>
1199
1200         * scdaemon.c (main): For now, always print default filename for
1201         --gpgconf-list, and never /dev/null.
1202
1203 2004-04-21  Werner Koch  <wk@gnupg.org>
1204
1205         * command.c (scd_update_reader_status_file): Send a signal back to
1206         the client.
1207         (option_handler): Parse the new event-signal option.
1208
1209         * scdaemon.c (handle_signal): Do not use SIGUSR{1,2} anymore for
1210         changing the verbosity.
1211
1212 2004-04-20  Werner Koch  <wk@gnupg.org>
1213
1214         * command.c (scd_update_reader_status_file): Write status files.
1215
1216         * app-help.c (app_help_read_length_of_cert): Fixed calculation of
1217         R_CERTOFF.
1218
1219         * pcsc-wrapper.c: New.
1220         * Makefile.am (pkglib_PROGRAMS): Install it here.
1221         * apdu.c (writen, readn): New.
1222         (open_pcsc_reader, pcsc_send_apdu, close_pcsc_reader): Use the
1223         pcsc-wrapper if we are using Pth.
1224         (apdu_send_le): Reinitialize RESULTLEN.  Handle SW_EOF_REACHED
1225         like SW_SUCCESS.
1226
1227 2004-04-19  Werner Koch  <wk@gnupg.org>
1228
1229         * ccid-driver.c (parse_ccid_descriptor): Store some of the reader
1230         features away.  New arg HANDLE
1231         (read_device_info): New arg HANDLE. Changed caller.
1232         (bulk_in): Handle time extension requests.
1233         (ccid_get_atr): Setup parameters and the IFSD.
1234         (compute_edc): New. Factored out code.
1235         (ccid_transceive): Use default NADs when required.
1236
1237 2004-04-14  Werner Koch  <wk@gnupg.org>
1238
1239         * scdaemon.h (server_control_s): Add member READER_SLOT.
1240         * scdaemon.c (scd_init_default_ctrl): Initialize READER_SLOT to -1.
1241         * command.c (open_card): Reuse an open slot.
1242         (reset_notify): Just reset the slot if supported by the reader.
1243         (do_reset): Factored code from above out.
1244         (scd_command_handler): Use it for cleanup.
1245
1246         * apdu.h: New pseudo stati SW_HOST_NOT_SUPPORTED,
1247         SW_HOST_LOCKING_FAILED and SW_HOST_BUSY.
1248         * iso7816.c (map_sw): Map it.
1249         
1250         * ccid-driver.c (ccid_slot_status): Add arg STATUSBITS.
1251         * apdu.c (apdu_get_status): New.
1252         (ct_get_status, pcsc_get_status, ocsc_get_status): New stubs.
1253         (get_status_ccid): New.
1254         (apdu_reset): New.
1255         (reset_ct_reader, reset_pcsc_reader, reset_osc_reader): New stubs.
1256         (reset_ccid_reader): New.
1257         (apdu_enum_reader): New.
1258         
1259         * apdu.c (lock_slot, trylock_slot, unlock_slot): New helpers.
1260         (new_reader_slot) [USE_GNU_PTH]: Init mutex.
1261         (apdu_reset, apdu_get_status, apdu_send_le): Run functions
1262         in locked mode.
1263
1264         * command.c (scd_update_reader_status_file): New.
1265         * scdaemon.c (handle_tick): Call it.
1266
1267 2004-04-13  Werner Koch  <wk@gnupg.org>
1268
1269         * scdaemon.c: Convert to a Pth application.
1270         (handle_signal, ticker_thread, handle_tick): New.
1271         (main): Fire up the ticker thread in server mode.
1272
1273 2004-03-23  Werner Koch  <wk@gnupg.org>
1274
1275         * scdaemon.c (main) <gpgconf_list>: Fixed output for pcsc_driver.
1276
1277 2004-03-17  Werner Koch  <wk@gnupg.org>
1278
1279         * tlv.c (parse_ber_header): Do not check for tag overflow - it
1280         does not make sense.  Simplified the check for length overflow.
1281
1282         * scdaemon.c (main) <gpgconf>: Fixed default value quoting.
1283
1284 2004-03-16  Werner Koch  <wk@gnupg.org>
1285
1286         * app-dinsig.c: Implemented. Based on app-nks.c and card-dinsig.c
1287         * app-nks.c (get_length_of_cert): Removed.
1288         * app-help.c: New.
1289         (app_help_read_length_of_cert): New.  Code taken from above.  New
1290         optional arg R_CERTOFF.
1291
1292         * card-dinsig.c: Removed.
1293         * card.c (card_get_serial_and_stamp): Do not bind to the old and
1294         never finsiged card-dinsig.c.
1295
1296         * iso7816.c (iso7816_read_binary): Allow for an NMAX > 254.
1297
1298 2004-03-11  Werner Koch  <wk@gnupg.org>
1299
1300         * scdaemon.h (out_of_core): Removed.  Replaced callers by standard
1301         gpg_error function.
1302
1303         * apdu.c, iso7816.c, ccid-driver.c [GNUPG_SCD_MAIN_HEADER]: Allow
1304         to include a header defined by the compiler.  This helps us to
1305         reuse the source in other software.
1306
1307 2004-03-10  Werner Koch  <wk@gnupg.org>
1308
1309         * iso7816.c (iso7816_read_record): New arg SHORT_EF.  Changed all
1310         callers.
1311
1312 2004-02-18  Werner Koch  <wk@gnupg.org>
1313
1314         * sc-investigate.c (main): Setup the used character set.
1315         * scdaemon.c (main): Ditto.
1316
1317         * scdaemon.c (set_debug): New.  Add option --debug-level.
1318         (main): Add option --gpgconf-list.
1319
1320 2004-02-12  Werner Koch  <wk@gnupg.org>
1321
1322         * Makefile.am: Include cmacros.am for common flags.
1323
1324 2004-01-29  Werner Koch  <wk@gnupg.org>
1325
1326         * command.c (reset_notify): Release the application context and
1327         close the reader.
1328
1329 2004-01-28  Werner Koch  <wk@gnupg.org>
1330
1331         * iso7816.c (iso7816_manage_security_env): New.
1332         (iso7816_decipher): Add PADIND argument.
1333
1334 2004-01-27  Werner Koch  <wk@gnupg.org>
1335
1336         * command.c (cmd_readcert, cmd_readkey): Work on a copy of LINE.
1337
1338         * app-common.h (app_ctx_s): Added readcert field.
1339         * app.c (app_readcert): New.
1340         * tlv.c (parse_ber_header): Added; taken from libksba.
1341
1342 2004-01-26  Werner Koch  <wk@gnupg.org>
1343
1344         * card.c (map_sc_err): Use SCD as the error source.
1345
1346         * command.c (open_card): ADD arg NAME to allow requesting a
1347         specific application.  Changed all callers.
1348         (cmd_serialno): Allow optional argument to select the desired
1349         application.
1350
1351         * app-nks.c: New. 
1352
1353         * scdaemon.h (opt): Add READER_PORT.
1354         * scdaemon.c (main): Set it here.
1355         * app.c (app_set_default_reader_port): Removed.
1356         (select_application): Add NAME arg and figure out a
1357         default serial number from the GDO. Add SLOT arg and remove all
1358         reader management.
1359         (release_application): New.
1360         (app_write_learn_status): Output an APPTYPE status line.
1361         * command.c (open_card): Adapt for select_application change.
1362         * app-openpgp.c (app_select_openpgp): Removed SN and SNLEN args
1363         and set it directly.  Changed all callers.
1364
1365 2004-01-25  Werner Koch  <wk@gnupg.org>
1366
1367         * iso7816.c (iso7816_select_application): P1 kludge for OpenPGP
1368         card.
1369         * app-openpgp.c (find_tlv): Factor out this function to ..
1370         * tlv.c, tlv.h: .. new.
1371
1372         * scdaemon.h: Introduced app_t and ctrl_t as the new types for APP
1373         and CTRL.
1374
1375 2004-01-21  Werner Koch  <wk@gnupg.org>
1376
1377         * apdu.c (apdu_send_le): Treat SW_EOF_REACHED as a warning.
1378
1379 2004-01-20  Werner Koch  <wk@gnupg.org>
1380
1381         * iso7816.c (iso7816_read_binary): New.
1382         (iso7816_select_file): New.
1383         (iso7816_list_directory): New.
1384
1385         * sc-investigate.c: Add option -i.
1386         (select_app, read_line, interactive_shell): New.
1387
1388 2004-01-16  Werner Koch  <wk@gnupg.org>
1389
1390         * apdu.h: Add SW_FILE_NOT_FOUND.
1391         * iso7816.c (map_sw): Map it to GPG_ERR_ENOENT.
1392         * iso7816.c (iso7816_select_file): New.
1393
1394         * app-dinsig.c: New file w/o any real code yet.
1395         * Makefile.am (scdaemon_SOURCES,sc_investigate_SOURCES): Add file.
1396
1397         * sc-investigate.c: Add option --disable-ccid.
1398
1399 2003-12-19  Werner Koch  <wk@gnupg.org>
1400
1401         * apdu.c (apdu_send_le): Send a get_response with the indicated
1402         length and not the 64 bytes we used for testing.
1403
1404         * app-openpgp.c (verify_chv2, verify_chv3, do_sign): Check the
1405         minimum length of the passphrase, so that we don't need to
1406         decrement the retry counter.
1407
1408 2003-12-17  Werner Koch  <wk@gnupg.org>
1409
1410         * card-p15.c (p15_enum_keypairs): Replaced KRC by RC.
1411         * card-dinsig.c (dinsig_enum_keypairs): Ditto.
1412
1413 2003-12-16  Werner Koch  <wk@gnupg.org>
1414
1415         * scdaemon.c (main): Set the prefixes for assuan logging.
1416
1417 2003-11-17  Werner Koch  <wk@gnupg.org>
1418
1419         * scdaemon.c, scdaemon.h: New options --allow-admin and --deny-admin.
1420         * app-openpgp.c (verify_chv3): Check it here.
1421
1422 2003-11-12  Werner Koch  <wk@gnupg.org>
1423
1424         Adjusted for API changes in Libksba.
1425
1426 2003-10-30  Werner Koch  <wk@gnupg.org>
1427
1428         * apdu.c (close_ct_reader, close_pcsc_reader): Implemented.
1429         (get_ccid_error_string): New.  Not very useful messages, though.
1430
1431 2003-10-25  Werner Koch  <wk@gnupg.org>
1432
1433         * ccid-driver.c (ccid_open_reader): Return an error if no USB
1434         devices are found.
1435
1436         * command.c (cmd_genkey, cmd_passwd): Fixed faulty use of
1437         !spacep().
1438
1439         * apdu.c (apdu_open_reader): Hacks for PC/SC under Windows.
1440
1441 2003-10-20  Werner Koch  <wk@gnupg.org>
1442
1443         * command.c (cmd_checkpin): New.
1444         (register_commands): Add command CHECKPIN.
1445         * app.c (app_check_pin): New.
1446         * app-openpgp.c (check_against_given_fingerprint): New. Factored
1447         out that code elsewhere.
1448         (do_check_pin): New.
1449
1450 2003-10-10  Werner Koch  <wk@gnupg.org>
1451
1452         * ccid-driver.c (ccid_close_reader): New.
1453
1454         * apdu.c (close_ccid_reader, close_ct_reader, close_csc_reader)
1455         (close_osc_reader, apdu_close_reader): New.  Not all are properly
1456         implemented yet.
1457
1458 2003-10-09  Werner Koch  <wk@gnupg.org>
1459
1460         * ccid-driver.c (ccid_transceive): Add T=1 chaining for sending.
1461
1462 2003-10-08  Werner Koch  <wk@gnupg.org>
1463
1464         * app-openpgp.c (do_getattr): Support SERIALNO and AID.
1465
1466 2003-10-01  Werner Koch  <wk@gnupg.org>
1467
1468         * ccid-driver.c: Detect GnuPG 1.3 and include appropriate files.
1469         * apdu.c: Ditto.
1470         * app-openpgp.c: Ditto.
1471         * iso7816.c: Ditto.
1472         (generate_keypair): Renamed to ..
1473         (do_generate_keypair): .. this.
1474         * app-common.h [GNUPG_MAJOR_VERSION]: New.
1475         * iso7816.h [GNUPG_MAJOR_VERSION]: Include cardglue.h
1476
1477 2003-09-30  Werner Koch  <wk@gnupg.org>
1478
1479         * command.c (cmd_getattr): New command GETATTR.
1480         * app.c (app_setattr): New.
1481         (do_getattr): New.
1482         (do_learn_status): Reimplemented in terms of do_getattr.
1483
1484         * app-openpgp.c (do_change_pin): Make sure CVH1 and CHV2 are
1485         always synced.
1486         (verify_chv2, verify_chv3): New. Factored out common code.
1487         (do_setattr, do_sign, do_auth, do_decipher): Change the names of
1488         the prompts to match that we have only 2 different PINs.
1489         (app_select_openpgp): Check whether the card enforced CHV1.
1490         (convert_sig_counter_value): New. Factor out code from
1491         get_sig_counter.
1492
1493 2003-09-28  Werner Koch  <wk@gnupg.org>
1494
1495         * app-openpgp.c (dump_all_do): Use gpg_err_code and not gpg_error.
1496
1497 2003-09-19  Werner Koch  <wk@gnupg.org>
1498
1499         * ccid-driver.c (parse_ccid_descriptor): New.
1500         (read_device_info): New.
1501         (ccid_open_reader): Check that the device has all required features.
1502
1503 2003-09-06  Werner Koch  <wk@gnupg.org>
1504
1505         * scdaemon.c (main): --pcsc-driver again defaults to pcsclite.
1506         David Corcoran was so kind to remove the GPL incompatible
1507         advertisng clause from pcsclite.
1508         * apdu.c (apdu_open_reader): Actually make pcsc-driver option work.
1509
1510 2003-09-05  Werner Koch  <wk@gnupg.org>
1511
1512         * ccid-driver.c: More work, data can now actually be retrieved.
1513         * ccid-driver.c, ccid-driver.h: Alternativley allow use under BSD
1514         conditions.
1515
1516 2003-09-02  Werner Koch  <wk@gnupg.org>
1517
1518         * scdaemon.c, scdaemon.h: New option --pcsc-ccid.
1519         * ccid-driver.c, ccid-driver.h: New but far from being useful.
1520         * Makefile.am: Add above.
1521         * apdu.c: Add support for that ccid driver.
1522         
1523 2003-08-26  Timo Schulz  <twoaday@freakmail.de>
1524
1525         * apdu.c (new_reader_slot): Only set 'is_osc' when OpenSC
1526         is used.
1527         
1528 2003-08-25  Werner Koch  <wk@gnupg.org>
1529
1530         * command.c (cmd_setattr): Use a copy of LINE.
1531         (cmd_genkey): Use a copy of KEYNO.
1532         (cmd_passwd): Use a copy of CHVNOSTR.
1533         (cmd_pksign, cmd_pkauth, cmd_pkdecrypt): s/strdup/xtrystrdup/.
1534
1535 2003-08-19  Werner Koch  <wk@gnupg.org>
1536
1537         * scdaemon.c, scdaemon.h: New option --pcsc-driver.
1538         * apdu.c (apdu_open_reader): Use that option here instead of a
1539         hardcoded one.
1540
1541 2003-08-18  Werner Koch  <wk@gnupg.org>
1542
1543         * Makefile.am: Add OPENSC_LIBS to all programs. 
1544
1545         * scdaemon.c, scdaemon.h: New option --disable-opensc.
1546         * card.c (card_open): Implement it.
1547         * apdu.c (open_osc_reader, osc_send_apdu): New.
1548         (apdu_open_reader) [HAVE_OPENSC]: Use the opensc driver if not
1549         disabled.
1550         (error_string) [HAVE_OPENSC]: Use sc_strerror.
1551         (send_apdu) [HAVE_OPENSC]: Call osc_apdu_send.
1552
1553         * card-p15.c (p15_enum_keypairs, p15_prepare_key): Adjusted for
1554         libgpg-error.
1555
1556 2003-08-14  Timo Schulz  <twoaday@freakmail.de>
1557
1558         * apdu.c (ct_activate_card): Change the code a little to avoid
1559         problems with other readers.
1560         * Always use 'dynload.h' instead of 'dlfcn.h'.
1561
1562 2003-08-05  Werner Koch  <wk@gnupg.org>
1563
1564         * app-openpgp.c (dump_all_do): Don't analyze constructed DOs after
1565         an error.
1566
1567 2003-08-04  Werner Koch  <wk@gnupg.org>
1568
1569         * app.c (app_set_default_reader_port): New.
1570         (select_application): Use it here.
1571         * scdaemon.c (main): and here.
1572         * sc-copykeys.c: --reader-port does now take a string.
1573         * sc-investigate.c, scdaemon.c: Ditto.
1574         * apdu.c (apdu_open_reader): Ditto.  Load pcsclite if no ctapi
1575         driver is configured.  Always include code for ctapi.
1576         (new_reader_slot): Don't test for already used ports and remove
1577         port arg.
1578         (open_pcsc_reader, pcsc_send_apdu, pcsc_error_string): New.
1579         (apdu_send_le): Changed RC to long to cope with PC/SC.
1580
1581         * scdaemon.c, scdaemon.h: New option --ctapi-driver.
1582         * sc-investigate.c, sc-copykeys.c: Ditto.
1583         
1584 2003-07-31  Werner Koch  <wk@gnupg.org>
1585
1586         * Makefile.am (scdaemon_LDADD): Added INTLLIBS.
1587
1588 2003-07-28  Werner Koch  <wk@gnupg.org>
1589
1590         * app-openpgp.c (do_setattr): Change implementation.  Allow all
1591         useful DOs.
1592
1593 2003-07-27  Werner Koch  <wk@gnupg.org>
1594
1595         Adjusted for gcry_mpi_print and gcry_mpi_scan API change.
1596
1597 2003-07-24  Werner Koch  <wk@gnupg.org>
1598
1599         * app-openpgp.c (do_learn_status): Print more status information.
1600         (app_select_openpgp): Store the card version.
1601         (store_fpr): Add argument card_version and fix DOs for old cards.
1602         (app_openpgp_storekey): Likewise.
1603
1604 2003-07-23  Werner Koch  <wk@gnupg.org>
1605
1606         * command.c (cmd_pkauth): New.
1607         (cmd_setdata): Check whether data was given at all to avoid
1608         passing 0 to malloc.
1609
1610         * app.c (app_auth): New.
1611         * app-openpgp.c (do_auth): New.
1612
1613 2003-07-22  Werner Koch  <wk@gnupg.org>
1614
1615         * command.c (cmd_passwd): New.
1616         * app.c (app_change_pin): New.
1617         * app-openpgp.c (do_change_pin): New.
1618         * iso7816.c (iso7816_reset_retry_counter): Implemented.
1619
1620         * sc-investigate.c (main): New option --gen-random.
1621         * iso7816.c (iso7816_get_challenge): Don't create APDUs with a
1622         length larger than 255.
1623
1624 2003-07-17  Werner Koch  <wk@gnupg.org>
1625
1626         * command.c (cmd_random): New command RANDOM.
1627
1628         * iso7816.c (map_sw): New. Use it in this file to return
1629         meaningful error messages.  Changed all public fucntions to return
1630         a gpg_error_t.
1631         (iso7816_change_reference_data): New.
1632         * apdu.c (apdu_open_reader): Use faked status words for soem
1633         system errors.
1634
1635 2003-07-16  Werner Koch  <wk@gnupg.org>
1636
1637         * apdu.c (apdu_send_simple): Use apdu_send_le so that we can
1638         specify not to send Le as it should be.
1639
1640 2003-07-15  Werner Koch  <wk@gnupg.org>
1641
1642         * Makefile.am: Add sc-copykeys program.
1643         * sc-copykeys.c: New.
1644         * app-openpgp.c (app_openpgp_storekey): New.
1645         (app_openpgp_cardinfo): New.
1646         (count_bits): New.
1647         (store_fpr): And use it here to get the actual length in bit.
1648
1649 2003-07-03  Werner Koch  <wk@gnupg.org>
1650
1651         * app-openpgp.c (do_setattr): Add setting of the URL.
1652         (app_select_openpgp): Dump card data only in very verbose mode.
1653         (do_decipher): New.
1654
1655 2003-07-02  Werner Koch  <wk@gnupg.org>
1656
1657         * app-openpgp.c (get_sig_counter): New.
1658         (do_sign): Print the signature counter and enable the PIN callback.
1659         (do_genkey): Implement the PIN callback. 
1660
1661 2003-07-01  Werner Koch  <wk@gnupg.org>
1662
1663         * app-openpgp.c (store_fpr): Fixed fingerprint calculation.
1664
1665 2003-06-26  Werner Koch  <wk@gnupg.org>
1666
1667         * app-openpgp.c (find_tlv): Fixed length header parsing.
1668
1669         * app.c (app_genkey): New.
1670         * command.c (cmd_genkey): New.
1671
1672 2003-06-25  Werner Koch  <wk@gnupg.org>
1673
1674         * command.c (percent_plus_unescape): New.
1675         (cmd_setattr): New.
1676
1677 2003-06-24  Werner Koch  <wk@gnupg.org>
1678
1679         * command.c (send_status_info): New.
1680
1681         * app-openpgp.c (app_select_openpgp): Replace SLOT arg by APP arg
1682         and setup the function pointers in APP on success. Changed callers.
1683         * app.c: New.
1684         * app-common.h: New.
1685         * scdaemon.h (APP): New type to handle applications.
1686         (server_control_s): Add an APP context field.
1687
1688         * command.c (cmd_serialno): Handle applications.
1689         (cmd_pksign): Ditto.
1690         (cmd_pkdecrypt): Ditto.
1691         (reset_notify): Ditto.
1692         (cmd_learn): For now return error for application contexts.
1693         (cmd_readcert): Ditto.
1694         (cmd_readkey): Ditto.
1695
1696 2003-06-04  Werner Koch  <wk@gnupg.org>
1697
1698         * card.c (map_sc_err): Renamed gpg_make_err to gpg_err_make.
1699
1700         Renamed error codes from INVALID to INV and removed _ERROR suffixes.
1701
1702 2003-06-03  Werner Koch  <wk@gnupg.org>
1703
1704         Changed all error codes in all files to the new libgpg-error scheme.
1705
1706         * scdaemon.h: Include gpg-error.h and errno.h
1707         * card.c (map_sc_err): Use unknown for the error source.
1708         * Makefile.am: Link with libgpg-error
1709
1710 2003-05-14  Werner Koch  <wk@gnupg.org>
1711
1712         * atr.c, atr.h: New.
1713         * sc-investigate.c: Dump the ATR in a human readable format.
1714
1715 2003-05-08  Werner Koch  <wk@gnupg.org>
1716
1717         * scdaemon.h (DBG_CARD_IO_VALUE): New.
1718
1719         * sc-investigate.c: New.
1720         * scdaemon.c (main): Removed --print-atr option.
1721
1722         * iso7816.c, iso7816.h, app-openpgp.c: New.
1723
1724 2003-04-29  Werner Koch  <wk@gnupg.org>
1725
1726         * scdaemon.c: New options --print-atr and --reader-port
1727         * apdu.c, apdu.h: New
1728
1729         * card.c, card-p15.c, card-dinsig.c: Allow build without OpenSC.
1730         
1731         * Makefile.am (LDFLAGS): Removed.
1732
1733         * command.c (register_commands): Adjusted for new Assuan semantics.
1734
1735 2002-08-21  Werner Koch  <wk@gnupg.org>
1736
1737         * scdaemon.c (main): New option --daemon so that the program is
1738         not accidently started in the background.
1739
1740 2002-08-16  Werner Koch  <wk@gnupg.org>
1741
1742         * scdaemon.c: Include i18n.h.
1743
1744         * card-common.h (struct p15_private_s): Forward declaration.  Add
1745         it to card_ctx_s.
1746         * card.c (card_close): Make sure private data is released.
1747         (card_enum_certs): New.
1748         * card-p15.c (p15_release_private_data): New.
1749         (init_private_data): New to work around an OpenSC weirdness.
1750         (p15_enum_keypairs): Do an OpenSC get_objects only once.
1751         (p15_enum_certs): New.
1752         (card_p15_bind): Bind new function.
1753         * command.c (cmd_learn): Return information about the certificates.
1754
1755 2002-08-09  Werner Koch  <wk@gnupg.org>
1756
1757         * card.c (card_get_serial_and_stamp): Use the tokeinfo serial
1758         number as a fallback. Add a special prefix for serial numbers.
1759
1760 2002-07-30  Werner Koch  <wk@gnupg.org>
1761
1762         Changes to cope with OpenSC 0.7.0:
1763         
1764         * card.c: Removed the check for the packed opensc version.
1765         Changed include file names of opensc.
1766         (map_sc_err): Adjusted error codes for new opensc version.
1767         * card-p15.c: Changed include filename of opensc.
1768         * card-dinsig.c: Ditto.
1769
1770         * card-p15.c (p15_decipher): Add flags argument to OpenSC call.
1771         
1772 2002-07-24  Werner Koch  <wk@gnupg.org>
1773
1774         * card.c (find_simple_tlv, find_iccsn): New.
1775         (card_get_serial_and_stamp): Improved serial number parser.
1776
1777 2002-06-27  Werner Koch  <wk@gnupg.org>
1778
1779         * scdaemon.c (main): Use GNUPG_DEFAULT_HOMEDIR constant.
1780
1781 2002-06-15  Werner Koch  <wk@gnupg.org>
1782
1783         * card-dinsig.c: Documented some stuff from the DIN norm.
1784
1785 2002-04-15  Werner Koch  <wk@gnupg.org>
1786
1787         * command.c (cmd_pksign, cmd_pkdecrypt): Use a copy of the key ID.
1788
1789 2002-04-12  Werner Koch  <wk@gnupg.org>
1790
1791         * scdaemon.c: New option --debug-sc N.
1792         * card.c (card_open): set it here.
1793
1794         * card-p15.c (p15_prepare_key): Factored out common code from ...
1795         (p15_sign, p15_decipher): here and made the decryption work the
1796         regular way.
1797
1798 2002-04-10  Werner Koch  <wk@gnupg.org>
1799
1800         * card.c (card_open): Return immediately when no reader is available.
1801
1802 2002-03-27  Werner Koch  <wk@gnupg.org>
1803
1804         * card.c (card_open, card_close): Adjusted for changes in OpenSC.
1805
1806 2002-03-10  Werner Koch  <wk@gnupg.org>
1807
1808         * card-p15.c, card-dinsig.c, card-common.h: New.
1809         * card.c: Factored most code out to the new modules, so that we
1810         can better support different types of card applications.
1811
1812 2002-01-26  Werner Koch  <wk@gnupg.org>
1813
1814         * scdaemon.c scdaemon.h, command.c: New. Based on the code from
1815         the gpg-agent.
1816
1817         
1818  Copyright 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
1819
1820  This file is free software; as a special exception the author gives
1821  unlimited permission to copy and/or distribute it, with or without
1822  modifications, as long as this notice is preserved.
1823
1824  This file is distributed in the hope that it will be useful, but
1825  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
1826  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.