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