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