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