(main) <gpgconf_list>: Fixed output for pcsc_driver.
[gnupg.git] / scd / ChangeLog
1 2004-03-23  Werner Koch  <wk@gnupg.org>
2
3         * scdaemon.c (main) <gpgconf_list>: Fixed output for pcsc_driver.
4
5 2004-03-17  Werner Koch  <wk@gnupg.org>
6
7         * tlv.c (parse_ber_header): Do not check for tag overflow - it
8         does not make sense.  Simplified the check for length overflow.
9
10         * scdaemon.c (main) <gpgconf>: Fixed default value quoting.
11
12 2004-03-16  Werner Koch  <wk@gnupg.org>
13
14         * app-dinsig.c: Implemented. Based on app-nks.c and card-dinsig.c
15         * app-nks.c (get_length_of_cert): Removed.
16         * app-help.c: New.
17         (app_help_read_length_of_cert): New.  Code taken from above.  New
18         optional arg R_CERTOFF.
19
20         * card-dinsig.c: Removed.
21         * card.c (card_get_serial_and_stamp): Do not bind to the old and
22         never finsiged card-dinsig.c.
23
24         * iso7816.c (iso7816_read_binary): Allow for an NMAX > 254.
25
26 2004-03-11  Werner Koch  <wk@gnupg.org>
27
28         * scdaemon.h (out_of_core): Removed.  Replaced callers by standard
29         gpg_error function.
30
31         * apdu.c, iso7816.c, ccid-driver.c [GNUPG_SCD_MAIN_HEADER]: Allow
32         to include a header defined by the compiler.  This helps us to
33         reuse the source in other software.
34
35 2004-03-10  Werner Koch  <wk@gnupg.org>
36
37         * iso7816.c (iso7816_read_record): New arg SHORT_EF.  Changed all
38         callers.
39
40 2004-02-18  Werner Koch  <wk@gnupg.org>
41
42         * sc-investigate.c (main): Setup the used character set.
43         * scdaemon.c (main): Ditto.
44
45         * scdaemon.c (set_debug): New.  Add option --debug-level.
46         (main): Add option --gpgconf-list.
47
48 2004-02-12  Werner Koch  <wk@gnupg.org>
49
50         * Makefile.am: Include cmacros.am for common flags.
51
52 2004-01-29  Werner Koch  <wk@gnupg.org>
53
54         * command.c (reset_notify): Release the application context and
55         close the reader.
56
57 2004-01-28  Werner Koch  <wk@gnupg.org>
58
59         * iso7816.c (iso7816_manage_security_env): New.
60         (iso7816_decipher): Add PADIND argument.
61
62 2004-01-27  Werner Koch  <wk@gnupg.org>
63
64         * command.c (cmd_readcert, cmd_readkey): Work on a copy of LINE.
65
66         * app-common.h (app_ctx_s): Added readcert field.
67         * app.c (app_readcert): New.
68         * tlv.c (parse_ber_header): Added; taken from libksba.
69
70 2004-01-26  Werner Koch  <wk@gnupg.org>
71
72         * card.c (map_sc_err): Use SCD as the error source.
73
74         * command.c (open_card): ADD arg NAME to allow requesting a
75         specific application.  Changed all callers.
76         (cmd_serialno): Allow optional argument to select the desired
77         application.
78
79         * app-nks.c: New. 
80
81         * scdaemon.h (opt): Add READER_PORT.
82         * scdaemon.c (main): Set it here.
83         * app.c (app_set_default_reader_port): Removed.
84         (select_application): Add NAME arg and figure out a
85         default serial number from the GDO. Add SLOT arg and remove all
86         reader management.
87         (release_application): New.
88         (app_write_learn_status): Output an APPTYPE status line.
89         * command.c (open_card): Adapt for select_application change.
90         * app-openpgp.c (app_select_openpgp): Removed SN and SNLEN args
91         and set it directly.  Changed all callers.
92
93 2004-01-25  Werner Koch  <wk@gnupg.org>
94
95         * iso7816.c (iso7816_select_application): P1 kludge for OpenPGP
96         card.
97         * app-openpgp.c (find_tlv): Factor out this function to ..
98         * tlv.c, tlv.h: .. new.
99
100         * scdaemon.h: Introduced app_t and ctrl_t as the new types for APP
101         and CTRL.
102
103 2004-01-21  Werner Koch  <wk@gnupg.org>
104
105         * apdu.c (apdu_send_le): Treat SW_EOF_REACHED as a warning.
106
107 2004-01-20  Werner Koch  <wk@gnupg.org>
108
109         * iso7816.c (iso7816_read_binary): New.
110         (iso7816_select_file): New.
111         (iso7816_list_directory): New.
112
113         * sc-investigate.c: Add option -i.
114         (select_app, read_line, interactive_shell): New.
115
116 2004-01-16  Werner Koch  <wk@gnupg.org>
117
118         * apdu.h: Add SW_FILE_NOT_FOUND.
119         * iso7816.c (map_sw): Map it to GPG_ERR_ENOENT.
120         * iso7816.c (iso7816_select_file): New.
121
122         * app-dinsig.c: New file w/o any real code yet.
123         * Makefile.am (scdaemon_SOURCES,sc_investigate_SOURCES): Add file.
124
125         * sc-investigate.c: Add option --disable-ccid.
126
127 2003-12-19  Werner Koch  <wk@gnupg.org>
128
129         * apdu.c (apdu_send_le): Send a get_response with the indicated
130         length and not the 64 bytes we used for testing.
131
132         * app-openpgp.c (verify_chv2, verify_chv3, do_sign): Check the
133         minimum length of the passphrase, so that we don't need to
134         decrement the retry counter.
135
136 2003-12-17  Werner Koch  <wk@gnupg.org>
137
138         * card-p15.c (p15_enum_keypairs): Replaced KRC by RC.
139         * card-dinsig.c (dinsig_enum_keypairs): Ditto.
140
141 2003-12-16  Werner Koch  <wk@gnupg.org>
142
143         * scdaemon.c (main): Set the prefixes for assuan logging.
144
145 2003-11-17  Werner Koch  <wk@gnupg.org>
146
147         * scdaemon.c, scdaemon.h: New options --allow-admin and --deny-admin.
148         * app-openpgp.c (verify_chv3): Check it here.
149
150 2003-11-12  Werner Koch  <wk@gnupg.org>
151
152         Adjusted for API changes in Libksba.
153
154 2003-10-30  Werner Koch  <wk@gnupg.org>
155
156         * apdu.c (close_ct_reader, close_pcsc_reader): Implemented.
157         (get_ccid_error_string): New.  Not very useful messages, though.
158
159 2003-10-25  Werner Koch  <wk@gnupg.org>
160
161         * ccid-driver.c (ccid_open_reader): Return an error if no USB
162         devices are found.
163
164         * command.c (cmd_genkey, cmd_passwd): Fixed faulty use of
165         !spacep().
166
167         * apdu.c (apdu_open_reader): Hacks for PC/SC under Windows.
168
169 2003-10-20  Werner Koch  <wk@gnupg.org>
170
171         * command.c (cmd_checkpin): New.
172         (register_commands): Add command CHECKPIN.
173         * app.c (app_check_pin): New.
174         * app-openpgp.c (check_against_given_fingerprint): New. Factored
175         out that code elsewhere.
176         (do_check_pin): New.
177
178 2003-10-10  Werner Koch  <wk@gnupg.org>
179
180         * ccid-driver.c (ccid_close_reader): New.
181
182         * apdu.c (close_ccid_reader, close_ct_reader, close_csc_reader)
183         (close_osc_reader, apdu_close_reader): New.  Not all are properly
184         implemented yet.
185
186 2003-10-09  Werner Koch  <wk@gnupg.org>
187
188         * ccid-driver.c (ccid_transceive): Add T=1 chaining for sending.
189
190 2003-10-08  Werner Koch  <wk@gnupg.org>
191
192         * app-openpgp.c (do_getattr): Support SERIALNO and AID.
193
194 2003-10-01  Werner Koch  <wk@gnupg.org>
195
196         * ccid-driver.c: Detect GnuPG 1.3 and include appropriate files.
197         * apdu.c: Ditto.
198         * app-openpgp.c: Ditto.
199         * iso7816.c: Ditto.
200         (generate_keypair): Renamed to ..
201         (do_generate_keypair): .. this.
202         * app-common.h [GNUPG_MAJOR_VERSION]: New.
203         * iso7816.h [GNUPG_MAJOR_VERSION]: Include cardglue.h
204
205 2003-09-30  Werner Koch  <wk@gnupg.org>
206
207         * command.c (cmd_getattr): New command GETATTR.
208         * app.c (app_setattr): New.
209         (do_getattr): New.
210         (do_learn_status): Reimplemented in terms of do_getattr.
211
212         * app-openpgp.c (do_change_pin): Make sure CVH1 and CHV2 are
213         always synced.
214         (verify_chv2, verify_chv3): New. Factored out common code.
215         (do_setattr, do_sign, do_auth, do_decipher): Change the names of
216         the prompts to match that we have only 2 different PINs.
217         (app_select_openpgp): Check whether the card enforced CHV1.
218         (convert_sig_counter_value): New. Factor out code from
219         get_sig_counter.
220
221 2003-09-28  Werner Koch  <wk@gnupg.org>
222
223         * app-openpgp.c (dump_all_do): Use gpg_err_code and not gpg_error.
224
225 2003-09-19  Werner Koch  <wk@gnupg.org>
226
227         * ccid-driver.c (parse_ccid_descriptor): New.
228         (read_device_info): New.
229         (ccid_open_reader): Check that the device has all required features.
230
231 2003-09-06  Werner Koch  <wk@gnupg.org>
232
233         * scdaemon.c (main): --pcsc-driver again defaults to pcsclite.
234         David Corcoran was so kind to remove the GPL incompatible
235         advertisng clause from pcsclite.
236         * apdu.c (apdu_open_reader): Actually make pcsc-driver option work.
237
238 2003-09-05  Werner Koch  <wk@gnupg.org>
239
240         * ccid-driver.c: More work, data can now actually be retrieved.
241         * ccid-driver.c, ccid-driver.h: Alternativley allow use under BSD
242         conditions.
243
244 2003-09-02  Werner Koch  <wk@gnupg.org>
245
246         * scdaemon.c, scdaemon.h: New option --pcsc-ccid.
247         * ccid-driver.c, ccid-driver.h: New but far from being useful.
248         * Makefile.am: Add above.
249         * apdu.c: Add support for that ccid driver.
250         
251 2003-08-26  Timo Schulz  <twoaday@freakmail.de>
252
253         * apdu.c (new_reader_slot): Only set 'is_osc' when OpenSC
254         is used.
255         
256 2003-08-25  Werner Koch  <wk@gnupg.org>
257
258         * command.c (cmd_setattr): Use a copy of LINE.
259         (cmd_genkey): Use a copy of KEYNO.
260         (cmd_passwd): Use a copy of CHVNOSTR.
261         (cmd_pksign, cmd_pkauth, cmd_pkdecrypt): s/strdup/xtrystrdup/.
262
263 2003-08-19  Werner Koch  <wk@gnupg.org>
264
265         * scdaemon.c, scdaemon.h: New option --pcsc-driver.
266         * apdu.c (apdu_open_reader): Use that option here instead of a
267         hardcoded one.
268
269 2003-08-18  Werner Koch  <wk@gnupg.org>
270
271         * Makefile.am: Add OPENSC_LIBS to all programs. 
272
273         * scdaemon.c, scdaemon.h: New option --disable-opensc.
274         * card.c (card_open): Implement it.
275         * apdu.c (open_osc_reader, osc_send_apdu): New.
276         (apdu_open_reader) [HAVE_OPENSC]: Use the opensc driver if not
277         disabled.
278         (error_string) [HAVE_OPENSC]: Use sc_strerror.
279         (send_apdu) [HAVE_OPENSC]: Call osc_apdu_send.
280
281         * card-p15.c (p15_enum_keypairs, p15_prepare_key): Adjusted for
282         libgpg-error.
283
284 2003-08-14  Timo Schulz  <twoaday@freakmail.de>
285
286         * apdu.c (ct_activate_card): Change the code a little to avoid
287         problems with other readers.
288         * Always use 'dynload.h' instead of 'dlfcn.h'.
289
290 2003-08-05  Werner Koch  <wk@gnupg.org>
291
292         * app-openpgp.c (dump_all_do): Don't analyze constructed DOs after
293         an error.
294
295 2003-08-04  Werner Koch  <wk@gnupg.org>
296
297         * app.c (app_set_default_reader_port): New.
298         (select_application): Use it here.
299         * scdaemon.c (main): and here.
300         * sc-copykeys.c: --reader-port does now take a string.
301         * sc-investigate.c, scdaemon.c: Ditto.
302         * apdu.c (apdu_open_reader): Ditto.  Load pcsclite if no ctapi
303         driver is configured.  Always include code for ctapi.
304         (new_reader_slot): Don't test for already used ports and remove
305         port arg.
306         (open_pcsc_reader, pcsc_send_apdu, pcsc_error_string): New.
307         (apdu_send_le): Changed RC to long to cope with PC/SC.
308
309         * scdaemon.c, scdaemon.h: New option --ctapi-driver.
310         * sc-investigate.c, sc-copykeys.c: Ditto.
311         
312 2003-07-31  Werner Koch  <wk@gnupg.org>
313
314         * Makefile.am (scdaemon_LDADD): Added INTLLIBS.
315
316 2003-07-28  Werner Koch  <wk@gnupg.org>
317
318         * app-openpgp.c (do_setattr): Change implementation.  Allow all
319         useful DOs.
320
321 2003-07-27  Werner Koch  <wk@gnupg.org>
322
323         Adjusted for gcry_mpi_print and gcry_mpi_scan API change.
324
325 2003-07-24  Werner Koch  <wk@gnupg.org>
326
327         * app-openpgp.c (do_learn_status): Print more status information.
328         (app_select_openpgp): Store the card version.
329         (store_fpr): Add argument card_version and fix DOs for old cards.
330         (app_openpgp_storekey): Likewise.
331
332 2003-07-23  Werner Koch  <wk@gnupg.org>
333
334         * command.c (cmd_pkauth): New.
335         (cmd_setdata): Check whether data was given at all to avoid
336         passing 0 to malloc.
337
338         * app.c (app_auth): New.
339         * app-openpgp.c (do_auth): New.
340
341 2003-07-22  Werner Koch  <wk@gnupg.org>
342
343         * command.c (cmd_passwd): New.
344         * app.c (app_change_pin): New.
345         * app-openpgp.c (do_change_pin): New.
346         * iso7816.c (iso7816_reset_retry_counter): Implemented.
347
348         * sc-investigate.c (main): New option --gen-random.
349         * iso7816.c (iso7816_get_challenge): Don't create APDUs with a
350         length larger than 255.
351
352 2003-07-17  Werner Koch  <wk@gnupg.org>
353
354         * command.c (cmd_random): New command RANDOM.
355
356         * iso7816.c (map_sw): New. Use it in this file to return
357         meaningful error messages.  Changed all public fucntions to return
358         a gpg_error_t.
359         (iso7816_change_reference_data): New.
360         * apdu.c (apdu_open_reader): Use faked status words for soem
361         system errors.
362
363 2003-07-16  Werner Koch  <wk@gnupg.org>
364
365         * apdu.c (apdu_send_simple): Use apdu_send_le so that we can
366         specify not to send Le as it should be.
367
368 2003-07-15  Werner Koch  <wk@gnupg.org>
369
370         * Makefile.am: Add sc-copykeys program.
371         * sc-copykeys.c: New.
372         * app-openpgp.c (app_openpgp_storekey): New.
373         (app_openpgp_cardinfo): New.
374         (count_bits): New.
375         (store_fpr): And use it here to get the actual length in bit.
376
377 2003-07-03  Werner Koch  <wk@gnupg.org>
378
379         * app-openpgp.c (do_setattr): Add setting of the URL.
380         (app_select_openpgp): Dump card data only in very verbose mode.
381         (do_decipher): New.
382
383 2003-07-02  Werner Koch  <wk@gnupg.org>
384
385         * app-openpgp.c (get_sig_counter): New.
386         (do_sign): Print the signature counter and enable the PIN callback.
387         (do_genkey): Implement the PIN callback. 
388
389 2003-07-01  Werner Koch  <wk@gnupg.org>
390
391         * app-openpgp.c (store_fpr): Fixed fingerprint calculation.
392
393 2003-06-26  Werner Koch  <wk@gnupg.org>
394
395         * app-openpgp.c (find_tlv): Fixed length header parsing.
396
397         * app.c (app_genkey): New.
398         * command.c (cmd_genkey): New.
399
400 2003-06-25  Werner Koch  <wk@gnupg.org>
401
402         * command.c (percent_plus_unescape): New.
403         (cmd_setattr): New.
404
405 2003-06-24  Werner Koch  <wk@gnupg.org>
406
407         * command.c (send_status_info): New.
408
409         * app-openpgp.c (app_select_openpgp): Replace SLOT arg by APP arg
410         and setup the function pointers in APP on success. Changed callers.
411         * app.c: New.
412         * app-common.h: New.
413         * scdaemon.h (APP): New type to handle applications.
414         (server_control_s): Add an APP context field.
415
416         * command.c (cmd_serialno): Handle applications.
417         (cmd_pksign): Ditto.
418         (cmd_pkdecrypt): Ditto.
419         (reset_notify): Ditto.
420         (cmd_learn): For now return error for application contexts.
421         (cmd_readcert): Ditto.
422         (cmd_readkey): Ditto.
423
424 2003-06-04  Werner Koch  <wk@gnupg.org>
425
426         * card.c (map_sc_err): Renamed gpg_make_err to gpg_err_make.
427
428         Renamed error codes from INVALID to INV and removed _ERROR suffixes.
429
430 2003-06-03  Werner Koch  <wk@gnupg.org>
431
432         Changed all error codes in all files to the new libgpg-error scheme.
433
434         * scdaemon.h: Include gpg-error.h and errno.h
435         * card.c (map_sc_err): Use unknown for the error source.
436         * Makefile.am: Link with libgpg-error
437
438 2003-05-14  Werner Koch  <wk@gnupg.org>
439
440         * atr.c, atr.h: New.
441         * sc-investigate.c: Dump the ATR in a human readable format.
442
443 2003-05-08  Werner Koch  <wk@gnupg.org>
444
445         * scdaemon.h (DBG_CARD_IO_VALUE): New.
446
447         * sc-investigate.c: New.
448         * scdaemon.c (main): Removed --print-atr option.
449
450         * iso7816.c, iso7816.h, app-openpgp.c: New.
451
452 2003-04-29  Werner Koch  <wk@gnupg.org>
453
454         * scdaemon.c: New options --print-atr and --reader-port
455         * apdu.c, apdu.h: New
456
457         * card.c, card-p15.c, card-dinsig.c: Allow build without OpenSC.
458         
459         * Makefile.am (LDFLAGS): Removed.
460
461         * command.c (register_commands): Adjusted for new Assuan semantics.
462
463 2002-08-21  Werner Koch  <wk@gnupg.org>
464
465         * scdaemon.c (main): New option --daemon so that the program is
466         not accidently started in the background.
467
468 2002-08-16  Werner Koch  <wk@gnupg.org>
469
470         * scdaemon.c: Include i18n.h.
471
472         * card-common.h (struct p15_private_s): Forward declaration.  Add
473         it to card_ctx_s.
474         * card.c (card_close): Make sure private data is released.
475         (card_enum_certs): New.
476         * card-p15.c (p15_release_private_data): New.
477         (init_private_data): New to work around an OpenSC weirdness.
478         (p15_enum_keypairs): Do an OpenSC get_objects only once.
479         (p15_enum_certs): New.
480         (card_p15_bind): Bind new function.
481         * command.c (cmd_learn): Return information about the certificates.
482
483 2002-08-09  Werner Koch  <wk@gnupg.org>
484
485         * card.c (card_get_serial_and_stamp): Use the tokeinfo serial
486         number as a fallback. Add a special prefix for serial numbers.
487
488 2002-07-30  Werner Koch  <wk@gnupg.org>
489
490         Changes to cope with OpenSC 0.7.0:
491         
492         * card.c: Removed the check for the packed opensc version.
493         Changed include file names of opensc.
494         (map_sc_err): Adjusted error codes for new opensc version.
495         * card-p15.c: Changed include filename of opensc.
496         * card-dinsig.c: Ditto.
497
498         * card-p15.c (p15_decipher): Add flags argument to OpenSC call.
499         
500 2002-07-24  Werner Koch  <wk@gnupg.org>
501
502         * card.c (find_simple_tlv, find_iccsn): New.
503         (card_get_serial_and_stamp): Improved serial number parser.
504
505 2002-06-27  Werner Koch  <wk@gnupg.org>
506
507         * scdaemon.c (main): Use GNUPG_DEFAULT_HOMEDIR constant.
508
509 2002-06-15  Werner Koch  <wk@gnupg.org>
510
511         * card-dinsig.c: Documented some stuff from the DIN norm.
512
513 2002-04-15  Werner Koch  <wk@gnupg.org>
514
515         * command.c (cmd_pksign, cmd_pkdecrypt): Use a copy of the key ID.
516
517 2002-04-12  Werner Koch  <wk@gnupg.org>
518
519         * scdaemon.c: New option --debug-sc N.
520         * card.c (card_open): set it here.
521
522         * card-p15.c (p15_prepare_key): Factored out common code from ...
523         (p15_sign, p15_decipher): here and made the decryption work the
524         regular way.
525
526 2002-04-10  Werner Koch  <wk@gnupg.org>
527
528         * card.c (card_open): Return immediately when no reader is available.
529
530 2002-03-27  Werner Koch  <wk@gnupg.org>
531
532         * card.c (card_open, card_close): Adjusted for changes in OpenSC.
533
534 2002-03-10  Werner Koch  <wk@gnupg.org>
535
536         * card-p15.c, card-dinsig.c, card-common.h: New.
537         * card.c: Factored most code out to the new modules, so that we
538         can better support different types of card applications.
539
540 2002-01-26  Werner Koch  <wk@gnupg.org>
541
542         * scdaemon.c scdaemon.h, command.c: New. Based on the code from
543         the gpg-agent.
544
545  Copyright 2002 Free Software Foundation, Inc.
546
547  This file is free software; as a special exception the author gives
548  unlimited permission to copy and/or distribute it, with or without
549  modifications, as long as this notice is preserved.
550
551  This file is distributed in the hope that it will be useful, but
552  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
553  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.