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