Debug message cleanups.
[gnupg.git] / sm / ChangeLog
1 2002-04-26  Werner Koch  <wk@gnupg.org>
2
3         * gpgsm.h (DBG_AGENT,DBG_AGENT_VALUE): Replaced by DBG_ASSUAN_*.
4         Changed all users.
5
6         * call-agent.c (start_agent): Be more silent without -v.
7         * call-dirmngr.c (start_dirmngr): Ditto.
8
9 2002-04-25  Werner Koch  <wk@gnupg.org>
10
11         * call-agent.c (start_agent): Make copies of old locales and check
12         for setlocale.
13
14 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
15
16         * call-agent.c (start_agent): Fix error handling logic so the
17         locale is always correctly reset.
18
19 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
20
21         * server.c (option_handler): Accept display, ttyname, ttytype,
22         lc_ctype and lc_messages options.
23         * gpgsm.c (main): Allocate memory for these options.
24         * gpgsm.h (struct opt): Make corresponding members non-const.
25
26 2002-04-24  Marcus Brinkmann  <marcus@g10code.de>
27
28         * gpgsm.h (struct opt): New members display, ttyname, ttytype,
29         lc_ctype, lc_messages.
30         * gpgsm.c (enum cmd_and_opt_values): New members oDisplay,
31         oTTYname, oTTYtype, oLCctype, oLCmessages.
32         (opts): New entries for these options.
33         (main): Handle these new options.
34         * call-agent.c (start_agent): Set the various display and tty
35         parameter after resetting.
36
37 2002-04-18  Werner Koch  <wk@gnupg.org>
38
39         * certreqgen.c (gpgsm_genkey): Write status output on success.
40
41 2002-04-15  Werner Koch  <wk@gnupg.org>
42
43         * gpgsm.c (main): Check ksba version.
44
45         * certpath.c (find_up): New to use the authorithKeyIdentifier.
46         Use it in all other functions to locate the signing cert..
47
48 2002-04-11  Werner Koch  <wk@gnupg.org>
49
50         * certlist.c (cert_usable_p): New.
51         (gpgsm_cert_use_sign_p,gpgsm_cert_use_encrypt_p): New.
52         (gpgsm_cert_use_verify_p,gpgsm_cert_use_decrypt_p): New.
53         (gpgsm_add_to_certlist): Check the key usage.
54         * sign.c (gpgsm_sign): Ditto.
55         * verify.c (gpgsm_verify): Print a message wehn an unsuitable
56         certificate was used.
57         * decrypt.c (gpgsm_decrypt): Ditto
58         * keylist.c (print_capabilities): Determine values from the cert.
59
60 2002-03-28  Werner Koch  <wk@gnupg.org>
61
62         * keylist.c (list_cert_colon): Fixed listing of crt record; the
63         issuer is not at the right place.  Print a chainingID.
64         * certpath.c (gpgsm_walk_cert_chain): Be a bit more silent on
65         common errors.
66
67 2002-03-21  Werner Koch  <wk@gnupg.org>
68
69         * export.c: New.
70         * gpgsm.c: Add command --export.
71         * server.c (cmd_export): New.
72         
73 2002-03-13  Werner Koch  <wk@gnupg.org>
74
75         * decrypt.c (gpgsm_decrypt): Allow multiple recipients.
76
77 2002-03-12  Werner Koch  <wk@gnupg.org>
78
79         * certpath.c (check_cert_policy): Print the policy list.
80
81         * verify.c (gpgsm_verify): Detect certs-only message.
82
83 2002-03-11  Werner Koch  <wk@gnupg.org>
84
85         * import.c (gpgsm_import): Print a notice about imported certificates
86         when in verbose mode.
87
88         * gpgsm.c (main): Print INV_RECP status.
89         * server.c (cmd_recipient): Ditto.
90
91         * server.c (gpgsm_status2): New.  Allows for a list of strings.
92         (gpgsm_status): Divert to gpgsm_status2.
93
94         * encrypt.c (gpgsm_encrypt): Don't use a default key when no
95         recipients are given.  Print a NO_RECP status.
96
97 2002-03-06  Werner Koch  <wk@gnupg.org>
98
99         * server.c (cmd_listkeys, cmd_listsecretkeys): Divert to
100         (do_listkeys): new.  Add pattern parsing.
101
102         * keylist.c (gpgsm_list_keys): Handle selection pattern.
103
104         * gpgsm.c: New command --learn-card
105         * call-agent.c (learn_cb,gpgsm_agent_learn): New.
106
107         * gpgsm.c (main): Print error messages for non-implemented commands.
108
109         * base64.c (base64_reader_cb): Use case insensitive compare of the
110         Content-Type string to detect plain base-64.
111
112 2002-03-05  Werner Koch  <wk@gnupg.org>
113
114         * gpgsm.c, gpgsm.h: Add local_user.
115         * sign.c (gpgsm_get_default_cert): New.
116         (get_default_signer): Use the new function if local_user is not
117         set otherwise used that value.
118         * encrypt.c (get_default_recipient): Removed.
119         (gpgsm_encrypt): Use gpgsm_get_default_cert.
120
121         * verify.c (gpgsm_verify): Better error text for a bad signature
122         found by comparing the hashs.
123
124 2002-02-27  Werner Koch  <wk@gnupg.org>
125
126         * call-dirmngr.c, call-agent.c: Add 2 more arguments to all uses
127         of assuan_transact.
128
129 2002-02-25  Werner Koch  <wk@gnupg.org>
130
131         * server.c (option_handler): Allow to use -2 for "send all certs
132         except the root cert".
133         * sign.c (add_certificate_list): Implement it here.
134         * certpath.c (gpgsm_is_root_cert): New.
135
136 2002-02-19  Werner Koch  <wk@gnupg.org>
137
138         * certpath.c (check_cert_policy): New.
139         (gpgsm_validate_path): And call it from here.
140         * gpgsm.c (main): New options --policy-file,
141         --disable-policy-checks and --enable-policy-checks.
142         * gpgsm.h (opt): Added policy_file, no_policy_checks.
143
144 2002-02-18  Werner Koch  <wk@gnupg.org>
145
146         * certpath.c (gpgsm_validate_path): Ask the agent to add the
147         certificate into the trusted list.
148         * call-agent.c (gpgsm_agent_marktrusted): New.
149
150 2002-02-07  Werner Koch  <wk@gnupg.org>
151
152         * certlist.c (gpgsm_add_to_certlist): Check that the specified
153         name identifies a certificate unambiguously.
154         (gpgsm_find_cert): Ditto.
155
156         * server.c (cmd_listkeys): Check that the data stream is available.
157         (cmd_listsecretkeys): Ditto.
158         (has_option): New.
159         (cmd_sign): Fix ambiguousity in option recognition.
160
161         * gpgsm.c (main): Enable --logger-fd.
162
163         * encrypt.c (gpgsm_encrypt): Increased buffer size for better
164         performance.
165
166         * call-agent.c (gpgsm_agent_pksign): Check the S-Exp received from
167         the agent.
168
169         * keylist.c (list_cert_colon): Filter out control characters.
170
171 2002-02-06  Werner Koch  <wk@gnupg.org>
172
173         * decrypt.c (gpgsm_decrypt): Bail out after an decryption error.
174
175         * server.c (reset_notify): Close input and output FDs.
176         (cmd_encrypt,cmd_decrypt,cmd_verify,cmd_sign.cmd_import)
177         (cmd_genkey): Close the FDs and release the recipient list even in
178         the error case.
179
180 2002-02-01  Marcus Brinkmann  <marcus@g10code.de>
181
182         * sign.c (gpgsm_sign): Do not release certificate twice.
183
184 2002-01-29  Werner Koch  <wk@gnupg.org>
185
186         * call-agent.c (gpgsm_agent_havekey): New.
187         * keylist.c (list_cert_colon): New arg HAVE_SECRET, print "crs"
188         when we know that the secret key is available.
189         (gpgsm_list_keys): New arg MODE, check whether a secret key is
190         available.  Changed all callers.
191         * gpgsm.c (main): New command --list-secret-keys.
192         * server.c (cmd_listsecretkeys): New.
193         (cmd_listkeys): Return secret keys with "crs" record.
194
195 2002-01-28  Werner Koch  <wk@gnupg.org>
196
197         * certreqgen.c (create_request): Store the email address in the req.
198
199 2002-01-25  Werner Koch  <wk@gnupg.org>
200
201         * gpgsm.c (main): Disable core dumps.
202
203         * sign.c (add_certificate_list): New.
204         (gpgsm_sign): Add the certificates to the CMS object.
205         * certpath.c (gpgsm_walk_cert_chain): New.
206         * gpgsm.h (server_control_s): Add included_certs.
207         * gpgsm.c: Add option --include-certs.
208         (gpgsm_init_default_ctrl): New.
209         (main): Call it.
210         * server.c (gpgsm_server): Ditto.
211         (option_handler): Support --include-certs.
212
213 2002-01-23  Werner Koch  <wk@gnupg.org>
214
215         * certpath.c (gpgsm_validate_path): Print the DN of a missing issuer.
216         * certdump.c (gpgsm_dump_string): New.
217         (print_dn): Replaced by above.
218
219 2002-01-22  Werner Koch  <wk@gnupg.org>
220
221         * certpath.c (unknown_criticals): New.
222         (allowed_ca): New.
223         (gpgsm_validate_path): Check validity, CA attribute, path length
224         and unknown critical extensions.
225
226 2002-01-21  Werner Koch  <wk@gnupg.org>
227
228         * gpgsm.c: Add option --enable-crl-checks.
229
230         * call-agent.c (start_agent): Implemented socket based access.
231         * call-dirmngr.c (start_dirmngr): Ditto.
232
233 2002-01-20  Werner Koch  <wk@gnupg.org>
234
235         * server.c (option_handler): New.
236         (gpgsm_server): Register it with assuan.
237
238 2002-01-19  Werner Koch  <wk@gnupg.org>
239
240         * server.c (gpgsm_server): Use assuan_deinit_server and setup
241         assuan logging if enabled.
242         * call-agent.c (inq_ciphertext_cb): Don't show the session key in
243         an Assuan log file.
244
245         * gpgsm.c (my_strusage): Take bugreport address from configure.ac
246
247 2002-01-15  Werner Koch  <wk@gnupg.org>
248
249         * import.c (gpgsm_import): Just do a basic cert check before
250         storing it.
251         * certpath.c (gpgsm_basic_cert_check): New.
252
253         * keydb.c (keydb_store_cert): New.
254         * import.c (store_cert): Removed and change all caller to use
255         the new function.
256         * verify.c (store_cert): Ditto.
257
258         * certlist.c (gpgsm_add_to_certlist): Validate the path
259
260         * certpath.c (gpgsm_validate_path): Check the trust list.
261         * call-agent.c (gpgsm_agent_istrusted): New.
262
263 2002-01-14  Werner Koch  <wk@gnupg.org>
264
265         * call-dirmngr.c (inq_certificate): Changed for new interface semantic.
266         * certlist.c (gpgsm_find_cert): New.
267
268 2002-01-13  Werner Koch  <wk@gnupg.org>
269
270         * fingerprint.c (gpgsm_get_certid): Print the serial and not the
271         hash after the dot.
272
273 2002-01-11  Werner Koch  <wk@gnupg.org>
274
275         * call-dirmngr.c: New.
276         * certpath.c (gpgsm_validate_path): Check the CRL here.
277         * fingerprint.c (gpgsm_get_certid): New.
278         * gpgsm.c: New options --dirmngr-program and --disable-crl-checks.
279
280 2002-01-10  Werner Koch  <wk@gnupg.org>
281
282         * base64.c (gpgsm_create_writer): Allow to set the object name
283
284 2002-01-08  Werner Koch  <wk@gnupg.org>
285
286         * keydb.c (spacep): Removed because it is now in util.c
287
288         * server.c (cmd_genkey): New.
289         * certreqgen.c: New.  The parameter handling code has been taken
290         from gnupg/g10/keygen.c version 1.0.6.
291         * call-agent.c (gpgsm_agent_genkey): New.
292
293 2002-01-02  Werner Koch  <wk@gnupg.org>
294
295         * server.c (rc_to_assuan_status): Removed and changed all callers
296         to use map_to_assuan_status.
297
298 2001-12-20  Werner Koch  <wk@gnupg.org>
299
300         * verify.c (gpgsm_verify): Implemented non-detached signature
301         verification.  Add OUT_FP arg, initialize a writer and changed all
302         callers.
303         * server.c (cmd_verify): Pass an out_fp if one has been set.
304
305         * base64.c (base64_reader_cb): Try to detect an S/MIME body part.
306
307         * certdump.c (print_sexp): Renamed to gpgsm_dump_serial, made
308         global.
309         (print_time): Renamed to gpgsm_dump_time, made global.
310         (gpgsm_dump_serial): Take a real S-Expression as argument and
311         print the first item.
312         * keylist.c (list_cert_colon): Ditto.
313         * keydb.c (keydb_search_issuer_sn): Ditto.
314         * decrypt.c (print_integer_sexp): Removed and made callers 
315         use gpgsm_dump_serial.
316         * verify.c (print_time): Removed, made callers use gpgsm_dump_time.
317         
318 2001-12-19  Marcus Brinkmann  <marcus@g10code.de>
319
320         * call-agent.c (start_agent): Add new argument to assuan_pipe_connect.
321
322 2001-12-18  Werner Koch  <wk@gnupg.org>
323
324         * verify.c (print_integer_sexp): Renamed from print_integer and
325         print the serial number according to the S-Exp rules.
326         * decrypt.c (print_integer_sexp): Ditto.
327
328 2001-12-17  Werner Koch  <wk@gnupg.org>
329
330         * keylist.c (list_cert_colon): Changed for new return value of
331         get_serial.
332         * keydb.c (keydb_search_issuer_sn): Ditto.
333         * certcheck.c (gpgsm_check_cert_sig): Likewise for other S-Exp
334         returingin functions.
335         * fingerprint.c (gpgsm_get_keygrip): Ditto.
336         * encrypt.c (encrypt_dek): Ditto
337         * certcheck.c (gpgsm_check_cms_signature): Ditto
338         * decrypt.c (prepare_decryption): Ditto.
339         * call-agent.c (gpgsm_agent_pkdecrypt): Removed arg ciphertextlen,
340         use KsbaSexp type and calculate the length.
341
342         * certdump.c (print_sexp): Remaned from print_integer, changed caller.
343
344         * Makefile.am: Use the LIBGCRYPT and LIBKSBA variables.
345
346         * fingerprint.c (gpgsm_get_keygrip): Use the new
347         gcry_pk_get_keygrip to calculate the grip - note the algorithm and
348         therefore the grip values changed.
349
350 2001-12-15  Werner Koch  <wk@gnupg.org>
351
352         * certcheck.c (gpgsm_check_cms_signature): Removed the faked-key
353         kludge.
354         (gpgsm_create_cms_signature): Removed the commented fake key
355         code.  This makes the function pretty simple.
356
357         * gpgsm.c (main): Renamed the default key database to "keyring.kbx".
358
359         * decrypt.c (gpgsm_decrypt): Write STATUS_DECRYPTION_*.
360         * sign.c (gpgsm_sign): Write a STATUS_SIG_CREATED.
361
362 2001-12-14  Werner Koch  <wk@gnupg.org>
363
364         * keylist.c (list_cert_colon): Kludge to show an email address
365         encoded in the subject's DN.
366
367         * verify.c (gpgsm_verify): Add hash debug helpers
368         * sign.c (gpgsm_sign): Ditto.
369
370         * base64.c (base64_reader_cb): Reset the linelen when we need to
371         skip the line and adjusted test; I somehow forgot about DeMorgan.
372
373         * server.c (cmd_encrypt,cmd_decrypt,cmd_sign,cmd_verify) 
374         (cmd_import): Close the FDs on success.
375         (close_message_fd): New.
376         (input_notify): Setting autodetect_encoding to 0 after initializing
377         it to 0 is pretty pointless.  Easy to fix.
378
379         * gpgsm.c (main): New option --debug-wait n, so that it is
380         possible to attach gdb when used in server mode.
381
382         * sign.c (get_default_signer): Use keydb_classify_name here.
383
384 2001-12-14  Marcus Brinkmann  <marcus@g10code.de>
385
386         * call-agent.c (LINELENGTH): Removed.
387         (gpgsm_agent_pksign): Use ASSUAN_LINELENGTH, not LINELENGTH.
388         (gpgsm_agent_pkdecrypt): Likewise.
389
390 2001-12-13  Werner Koch  <wk@gnupg.org>
391
392         * keylist.c (list_cert_colon): Print alternative names of subject
393         and a few other values.
394
395 2001-12-12  Werner Koch  <wk@gnupg.org>
396
397         * gpgsm.c (main): New options --assume-{armor,base64,binary}. 
398         * base64.c (base64_reader_cb): Fixed non-autodetection mode.
399
400 2001-12-04  Werner Koch  <wk@gnupg.org>
401
402         * call-agent.c (read_from_agent): Check for inquire responses.
403         (request_reply): Handle them using a new callback arg, changed all
404         callers.
405         (gpgsm_agent_pkdecrypt): New.
406
407 2001-11-27  Werner Koch  <wk@gnupg.org>
408
409         * base64.c: New.  Changed all other functions to use this instead
410         of direct creation of ksba_reader/writer.
411         * gpgsm.c (main): Set ctrl.auto_encoding unless --no-armor is used.
412
413 2001-11-26  Werner Koch  <wk@gnupg.org>
414
415         * gpgsm.c: New option --agent-program
416         * call-agent.c (start_agent): Allow to override the default path
417         to the agent.
418
419         * keydb.c (keydb_add_resource): Create keybox
420
421         * keylist.c (gpgsm_list_keys): Fixed non-server keylisting.
422
423         * server.c (rc_to_assuan_status): New.  Use it for all commands.
424
425         
426  Copyright 2001, 2002 Free Software Foundation, Inc.
427
428  This file is free software; as a special exception the author gives
429  unlimited permission to copy and/or distribute it, with or without
430  modifications, as long as this notice is preserved.
431
432  This file is distributed in the hope that it will be useful, but
433  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
434  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.