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