* configure.ac: Require libksba 0.9.3 due to another bug fix there.
[gnupg.git] / sm / ChangeLog
1 2004-01-30  Werner Koch  <wk@gnupg.org>
2
3         * sign.c (add_certificate_list): Decrement N for the first cert.
4
5 2004-01-29  Werner Koch  <wk@gnupg.org>
6
7         * certdump.c (parse_dn_part): Map common OIDs to human readable
8         labels.  Make sure that a value won't get truncated if it includes
9         a Nul.
10
11 2004-01-28  Werner Koch  <wk@gnupg.org>
12
13         * certchain.c (gpgsm_validate_chain): Changed the message printed
14         for an untrusted root certificate.
15
16 2004-01-27  Werner Koch  <wk@gnupg.org>
17
18         * certdump.c (parse_dn_part): Pretty print the nameDistinguisher OID.
19         (print_dn_part): Do not delimit multiple RDN by " + ".  Handle
20         multi-valued RDNs in a special way, i.e. in the order specified by
21         the certificate.
22         (print_dn_parts): Simplified. 
23
24 2004-01-16  Werner Koch  <wk@gnupg.org>
25
26         * sign.c (gpgsm_sign): Print an error message on all failures.
27         * decrypt.c (gpgsm_decrypt): Ditto.
28
29 2003-12-17  Werner Koch  <wk@gnupg.org>
30
31         * server.c (gpgsm_server): Add arg DEFAULT_RECPLIST.
32         (cmd_encrypt): Add all enrypt-to marked certs to the list.
33         * encrypt.c (gpgsm_encrypt): Check that real recipients are
34         available.
35         * gpgsm.c (main): Make the --encrypt-to and --no-encrypt-to
36         options work.  Pass the list of recients to gpgsm_server.
37         * gpgsm.h (certlist_s): Add field IS_ENCRYPT_TO.
38         (opt): Add NO_ENCRYPT_TO.
39         * certlist.c (gpgsm_add_to_certlist): New arg IS_ENCRYPT_TO.
40         Changed all callers and ignore duplicate entries.
41         (is_cert_in_certlist): New.
42         (gpgsm_add_cert_to_certlist): New.
43
44         * certdump.c (gpgsm_print_serial): Cleaned up cast use in strtoul.
45         (gpgsm_dump_serial): Ditto.
46
47         * decrypt.c (gpgsm_decrypt): Replaced ERR by RC.
48
49 2003-12-16  Werner Koch  <wk@gnupg.org>
50
51         * gpgsm.c (main): Set the prefixes for assuan logging.
52
53         * sign.c (gpgsm_sign): Add validation checks for the default
54         certificate.
55
56         * gpgsm.c: Add -k as alias for --list-keys and -K for
57         --list-secret-keys.
58
59 2003-12-15  Werner Koch  <wk@gnupg.org>
60
61         * encrypt.c (init_dek): Use gry_create_nonce for the IV; there is
62         not need for real strong random here and it even better protect
63         the random bits used for the key.
64
65 2003-12-01  Werner Koch  <wk@gnupg.org>
66
67         * gpgsm.c, gpgsm.h: New options --{enable,disable}-ocsp.
68         (gpgsm_init_default_ctrl): Set USE_OCSP to the default value.
69         * certchain.c (gpgsm_validate_chain): Handle USE_OCSP.
70         * call-dirmngr.c (gpgsm_dirmngr_isvalid): Add arg USE_OCSP and
71         proceed accordingly.
72
73 2003-11-19  Werner Koch  <wk@gnupg.org>
74
75         * verify.c (gpgsm_verify): Use "0" instead of an empty string for
76         the VALIDSIG status.
77
78 2003-11-18  Werner Koch  <wk@gnupg.org>
79
80         * verify.c (gpgsm_verify): Fixed for changes API of gcry_md_info.
81
82         * certchain.c (unknown_criticals): Fixed an error code test.
83
84 2003-11-12  Werner Koch  <wk@gnupg.org>
85
86         Adjusted for API changes in Libksba.
87
88 2003-10-31  Werner Koch  <wk@gnupg.org>
89
90         * certchain.c (gpgsm_validate_chain): Changed to use ksba_isotime_t.
91         * verify.c (strtimestamp_r, gpgsm_verify): Ditto.
92         * sign.c (gpgsm_sign): Ditto.
93         * keylist.c (print_time, list_cert_std, list_cert_colon): Ditto.
94         * certdump.c (gpgsm_print_time, gpgsm_dump_time, gpgsm_dump_cert):
95         Ditto.
96
97 2003-10-25  Werner Koch  <wk@gnupg.org>
98
99         * certreqgen.c (read_parameters): Fixed faulty of !spacep().
100
101 2003-08-20  Marcus Brinkmann  <marcus@g10code.de>
102
103         * encrypt.c (encode_session_key): Allocate enough space.  Cast key
104         byte to unsigned char to prevent sign extension.
105         (encrypt_dek): Check return value before error.
106
107 2003-08-14  Timo Schulz  <twoaday@freakmail.de>
108
109         * encrypt.c (encode_session_key): Use new Libgcrypt interface.
110         
111 2003-07-31  Werner Koch  <wk@gnupg.org>
112
113         * Makefile.am (gpgsm_LDADD): Added INTLLIBS.
114
115 2003-07-29  Werner Koch  <wk@gnupg.org>
116
117         * gpgsm.c (main): Add secmem features and set the random seed file.
118         (gpgsm_exit): Update the random seed file and enable debug output.
119
120 2003-07-27  Werner Koch  <wk@gnupg.org>
121
122         Adjusted for gcry_mpi_print and gcry_mpi_scan API change.
123
124 2003-06-24  Werner Koch  <wk@gnupg.org>
125
126         * server.c (gpgsm_status_with_err_code): New.
127         * verify.c (gpgsm_verify): Use it here instead of the old
128         tokenizing version.
129
130         * verify.c (strtimestamp): Renamed to strtimestamp_r
131
132         Adjusted for changes in the libgcrypt API. Some more fixes for the
133         libgpg-error stuff.  
134
135 2003-06-04  Werner Koch  <wk@gnupg.org>
136
137         * call-agent.c (init_membuf,put_membuf,get_membuf): Removed.
138         Include new membuf header and changed used type.
139
140         Renamed error codes from INVALID to INV and removed _ERROR suffixes.
141
142 2003-06-03  Werner Koch  <wk@gnupg.org>
143
144         Changed all error codes in all files to the new libgpg-error scheme.
145
146         * gpgsm.h: Include gpg-error.h .
147         * Makefile.am: Link with libgpg-error.
148
149 2003-04-29  Werner Koch  <wk@gnupg.org>
150
151         * Makefile.am: Use libassuan.  Don't override LDFLAGS anymore.
152         * server.c (register_commands): Adjust for new Assuan semantics.
153
154 2002-12-03  Werner Koch  <wk@gnupg.org>
155
156         * call-agent.c (gpgsm_agent_passwd): New.
157         * gpgsm.c (main): New command --passwd and --call-protect-tool
158         (run_protect_tool): New.
159
160 2002-11-25  Werner Koch  <wk@gnupg.org>
161
162         * verify.c (gpgsm_verify): Handle content-type attribute. 
163
164 2002-11-13  Werner Koch  <wk@gnupg.org>
165
166         * call-agent.c (start_agent): Try to use $GPG_TTY instead of
167         ttyname.  Changed ttyname to test stdin becuase it can be assumed
168         that output redirection is more common that input redirection.
169
170 2002-11-12  Werner Koch  <wk@gnupg.org>
171
172         * gpgsm.c: New command --call-dirmngr. 
173         * call-dirmngr.c (gpgsm_dirmngr_run_command)
174         (run_command_inq_cb,run_command_cb)
175         (run_command_status_cb): New.
176
177 2002-11-11  Werner Koch  <wk@gnupg.org>
178
179         * certcheck.c (gpgsm_check_cms_signature): Don't double free
180         s_sig but free s_pkey at leave.
181
182 2002-11-10  Werner Koch  <wk@gnupg.org>
183
184         * gpgsm.c: Removed duplicate --list-secret-key entry.
185
186 2002-09-19  Werner Koch  <wk@gnupg.org>
187
188         * certcheck.c (gpgsm_check_cert_sig): Add cert hash debugging.
189
190         * certchain.c (find_up): Print info when the cert was not found 
191         by the autorithyKeyIdentifier.
192
193 2002-09-03  Werner Koch  <wk@gnupg.org>
194
195         * gpgsm.c (main): Disable the internal libgcrypt locking.
196
197 2002-08-21  Werner Koch  <wk@gnupg.org>
198
199         * import.c (print_imported_summary): Cleaned up.  Print new
200         not_imported value.
201         (check_and_store): Update non_imported counter.
202         (print_import_problem): New.
203         (check_and_store): Print error status message.
204         * server.c (get_status_string): Added STATUS_IMPORT_PROBLEM.
205
206 2002-08-20  Werner Koch  <wk@gnupg.org>
207
208         * gpgsm.c (main): Use the log file only in server mode.
209
210         * import.c (print_imported_summary): New.
211         (check_and_store): Update the counters, take new argument.
212         (import_one): Factored out core of gpgsm_import.
213         (gpgsm_import): Print counters.
214         (gpgsm_import_files): New.
215         * gpgsm.c (main): Use the new function for import.
216
217 2002-08-19  Werner Koch  <wk@gnupg.org>
218
219         * decrypt.c (gpgsm_decrypt): Return a better error status token.
220         * verify.c (gpgsm_verify): Don't error on messages with no signing
221         time or no message digest.  This is only the case for messages
222         without any signed attributes.
223
224 2002-08-16  Werner Koch  <wk@gnupg.org>
225
226         * certpath.c: Renamed to ..
227         * certchain.c: this. Renamed all all other usages of "path" in the
228         context of certificates to "chain".
229
230         * call-agent.c (learn_cb): Special treatment when the issuer
231         certificate is missing.
232
233 2002-08-10  Werner Koch  <wk@gnupg.org>
234
235         * Makefile.am (INCLUDES): Add definition for localedir.
236
237         * keylist.c (list_cert_colon): Print the short fingerprint in the
238         key ID field.
239         * fingerprint.c (gpgsm_get_short_fingerprint): New.
240         * verify.c (gpgsm_verify): Print more verbose info for a good
241         signature.
242
243 2002-08-09  Werner Koch  <wk@gnupg.org>
244
245         * decrypt.c (prepare_decryption): Hack to detected already
246         unpkcsedone keys.
247
248         * gpgsm.c (emergency_cleanup): New.
249         (main): Initialize the signal handler.
250
251         * sign.c (gpgsm_sign): Reset the hash context for subsequent
252         signers and release it at the end.
253
254 2002-08-05  Werner Koch  <wk@gnupg.org>
255
256         * server.c (cmd_signer): New command "SIGNER"
257         (register_commands): Register it.
258         (cmd_sign): Pass the signer list to gpgsm_sign.
259         * certlist.c (gpgsm_add_to_certlist): Add SECRET argument, check
260         for secret key if set and changed all callers.
261         * sign.c (gpgsm_sign): New argument SIGNERLIST and implemt
262         multiple signers.
263         * gpgsm.c (main): Support more than one -u.
264         
265         * server.c (cmd_recipient): Return reason code 1 for No_Public_Key
266         which is actually what gets returned from add_to_certlist.
267         
268 2002-07-26  Werner Koch  <wk@gnupg.org>
269
270         * certcheck.c (gpgsm_check_cert_sig): Implement proper cleanup.
271         (gpgsm_check_cms_signature): Ditto.
272
273 2002-07-22  Werner Koch  <wk@gnupg.org>
274
275         * keydb.c (keydb_add_resource): Register a lock file.
276         (lock_all, unlock_all): Implemented.
277
278         * delete.c: New.
279         * gpgsm.c: Made --delete-key work.
280         * server.c (cmd_delkeys): New.
281         (register_commands): New command DELKEYS.
282
283         * decrypt.c (gpgsm_decrypt): Print a convenience note when RC2 is
284         used and a STATUS_ERROR with the algorithm oid.
285
286 2002-07-03  Werner Koch  <wk@gnupg.org>
287
288         * server.c (gpgsm_status2): Insert a blank between all optional
289         arguments when using assuan.
290         * server.c (cmd_recipient): No more need for extra blank in constants.
291         * import.c (print_imported_status): Ditto.
292         * gpgsm.c (main): Ditto.
293
294 2002-07-02  Werner Koch  <wk@gnupg.org>
295
296         * verify.c (gpgsm_verify): Extend the STATUS_BADSIG line with
297         the fingerprint.
298
299         * certpath.c (check_cert_policy): Don't use log_error to print a
300         warning.
301
302         * keydb.c (keydb_store_cert): Add optional ar EXISTED and changed
303         all callers.
304         * call-agent.c (learn_cb): Print info message only for real imports.
305
306         * import.c (gpgsm_import): Moved duplicated code to ...
307         (check_and_store): new function.  Added magic to import the entire
308         chain. Print status only for real imports and moved printing code
309         to ..
310         (print_imported_status): New.
311
312         * call-dirmngr.c (gpgsm_dirmngr_isvalid): print status of dirmngr
313         call in very verbose mode.
314
315         * gpgsm.c (main): Use the same error codes for STATUS_INV_RECP as
316         with the server mode.
317
318 2002-06-29  Werner Koch  <wk@gnupg.org>
319
320         * gpgsm.c: New option --auto-issuer-key-retrieve.
321         * certpath.c (find_up): Try to retrieve an issuer key from an
322         external source and from the ephemeral key DB.
323         (find_up_store_certs_cb): New.
324
325         * keydb.c (keydb_set_ephemeral): Does now return the old
326         state.  Call the backend only when required.
327
328         * call-dirmngr.c (start_dirmngr): Use GNUPG_DEFAULT_DIRMNGR.
329         (lookup_status_cb): Issue status only when CTRL is not NULL.
330         (gpgsm_dirmngr_lookup): Document that CTRL is optional.
331
332         * call-agent.c (start_agent): Use GNUPG_DEFAULT_AGENT.
333
334 2002-06-28  Werner Koch  <wk@gnupg.org>
335
336         * server.c (cmd_recipient): Add more reason codes.
337
338 2002-06-27  Werner Koch  <wk@gnupg.org>
339
340         * certpath.c (gpgsm_basic_cert_check): Use
341         --debug-no-path-validation to also bypass this basic check.
342
343         * gpgsm.c (main): Use GNUPG_DEFAULT_HOMEDIR constant.
344
345         * call-agent.c (start_agent): Create and pass the list of FD to
346         keep in the child to assuan.
347         * call-dirmngr.c (start_dirmngr): Ditto.
348
349 2002-06-26  Werner Koch  <wk@gnupg.org>
350
351         * import.c (gpgsm_import): Print an STATUS_IMPORTED.
352
353         * gpgsm.c: --debug-no-path-validation does not take an argument.
354
355 2002-06-25  Werner Koch  <wk@gnupg.org>
356
357         * certdump.c (print_dn_part): Always print a leading slash,
358         removed NEED_DELIM arg and changed caller.
359
360         * export.c (gpgsm_export): Print LFs to FP and not stdout.
361         (print_short_info): Ditto.  Make use of gpgsm_print_name.
362
363         * server.c (cmd_export): Use output-fd instead of data lines; this
364         was actually the specified way.
365
366 2002-06-24  Werner Koch  <wk@gnupg.org>
367
368         * gpgsm.c: Removed duped help entry for --list-keys.
369         
370         * gpgsm.c, gpgsm.h: New option --debug-no-path-validation.
371
372         * certpath.c (gpgsm_validate_path): Use it here instead of the
373         debug flag hack.
374
375         * certpath.c (check_cert_policy): Return No_Policy_Match if the
376         policy file could not be opened.
377
378 2002-06-20  Werner Koch  <wk@gnupg.org>
379
380         * certlist.c (gpgsm_add_to_certlist): Fixed locating of a
381         certificate with the required key usage.
382
383         * gpgsm.c (main): Fixed a segv when using --outfile without an
384         argument.
385
386         * keylist.c (print_capabilities): Also check for non-repudiation
387         and data encipherment.
388         * certlist.c (cert_usage_p): Test for signing and encryption was
389         swapped.  Add a case for certification usage, handle
390         non-repudiation and data encipherment.
391         (gpgsm_cert_use_cert_p): New.
392         (gpgsm_add_to_certlist): Added a CTRL argument and changed all
393         callers to pass it.
394         * certpath.c (gpgsm_validate_path): Use it here to print a status
395         message. Added a CTRL argument and changed all callers to pass it.
396         * decrypt.c (gpgsm_decrypt): Print a status message for wrong key
397         usage.
398         * verify.c (gpgsm_verify): Ditto.
399         * keydb.c (classify_user_id): Allow a colon delimited fingerprint.
400
401 2002-06-19  Werner Koch  <wk@gnupg.org>
402
403         * call-agent.c (learn_cb): Use log_info instead of log_error on
404         successful import.
405
406         * keydb.c (keydb_set_ephemeral): New.
407         (keydb_store_cert): New are ephemeral, changed all callers.
408         * keylist.c (list_external_cb): Store cert as ephemeral.
409         * export.c (gpgsm_export): Kludge to export epehmeral certificates.
410
411         * gpgsm.c (main): New command --list-external-keys.
412         
413 2002-06-17  Werner Koch  <wk@gnupg.org>
414
415         * certreqgen.c (read_parameters): Improved error handling.
416         (gpgsm_genkey): Print error message.
417
418 2002-06-13  Werner Koch  <wk@gnupg.org>
419
420         * gpgsm.c (main): New option --log-file.
421
422 2002-06-12  Werner Koch  <wk@gnupg.org>
423
424         * call-dirmngr.c (lookup_status_cb): New.
425         (gpgsm_dirmngr_lookup): Use the status CB.  Add new arg CTRL and
426         changed caller to pass it.
427
428         * gpgsm.c (open_fwrite): New.
429         (main): Allow --output for --verify.
430
431         * sign.c (hash_and_copy_data): New.
432         (gpgsm_sign): Implemented normal (non-detached) signatures.
433         * gpgsm.c (main): Ditto.
434         
435         * certpath.c (gpgsm_validate_path): Special error handling for
436         no policy match.
437
438 2002-06-10  Werner Koch  <wk@gnupg.org>
439
440         * server.c (get_status_string): Add STATUS_ERROR.
441
442         * certpath.c (gpgsm_validate_path): Tweaked the error checking to 
443         return error codes in a more sensitive way.
444         * verify.c (gpgsm_verify): Send status TRUST_NEVER also for a bad
445         CA certificate and when the certificate has been revoked.  Issue
446         TRUST_FULLY even when the cert has expired.  Append an error token
447         to these status lines.  Issue the new generic error status when a
448         cert was not found and when leaving the function.
449
450 2002-06-04  Werner Koch  <wk@gnupg.org>
451
452         * gpgsm.c (main): New command --list-sigs
453         * keylist.c (list_cert_std): New.  Use it whenever colon mode is
454         not used.
455         (list_cert_chain): New.
456
457 2002-05-31  Werner Koch  <wk@gnupg.org>
458
459         * gpgsm.c (main): Don't print the "go ahead" message for an
460         invalid command.
461
462 2002-05-23  Werner Koch  <wk@gnupg.org>
463
464         * import.c (gpgsm_import): Add error messages.
465
466 2002-05-21  Werner Koch  <wk@gnupg.org>
467
468         * keylist.c (list_internal_keys): Renamed from gpgsm_list_keys.
469         (list_external_keys): New.
470         (gpgsm_list_keys): Dispatcher for above.
471         * call-dirmngr.c (lookup_cb,pattern_from_strlist)
472         (gpgsm_dirmngr_lookup): New.
473         * server.c (option_handler): Handle new option --list-mode.
474         (do_listkeys): Handle options and actually use the mode argument.
475         (get_status_string): New code TRUNCATED.
476
477         * import.c (gpgsm_import): Try to identify the type of input and
478         handle certs-only messages.
479
480 2002-05-14  Werner Koch  <wk@gnupg.org>
481
482         * gpgsm.c: New option --faked-system-time
483         * sign.c (gpgsm_sign): And use it here.
484         * certpath.c (gpgsm_validate_path): Ditto.
485
486 2002-05-03  Werner Koch  <wk@gnupg.org>
487
488         * certpath.c (gpgsm_validate_path): Added EXPTIME arg and changed
489         all callers.
490         * verify.c (gpgsm_verify): Tweaked usage of log_debug and
491         log_error.  Return EXPSIG status and add expiretime to VALIDSIG.
492
493 2002-04-26  Werner Koch  <wk@gnupg.org>
494
495         * gpgsm.h (DBG_AGENT,DBG_AGENT_VALUE): Replaced by DBG_ASSUAN_*.
496         Changed all users.
497
498         * call-agent.c (start_agent): Be more silent without -v.
499         * call-dirmngr.c (start_dirmngr): Ditto.
500
501 2002-04-25  Werner Koch  <wk@gnupg.org>
502
503         * call-agent.c (start_agent): Make copies of old locales and check
504         for setlocale.
505
506 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
507
508         * call-agent.c (start_agent): Fix error handling logic so the
509         locale is always correctly reset.
510
511 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
512
513         * server.c (option_handler): Accept display, ttyname, ttytype,
514         lc_ctype and lc_messages options.
515         * gpgsm.c (main): Allocate memory for these options.
516         * gpgsm.h (struct opt): Make corresponding members non-const.
517
518 2002-04-24  Marcus Brinkmann  <marcus@g10code.de>
519
520         * gpgsm.h (struct opt): New members display, ttyname, ttytype,
521         lc_ctype, lc_messages.
522         * gpgsm.c (enum cmd_and_opt_values): New members oDisplay,
523         oTTYname, oTTYtype, oLCctype, oLCmessages.
524         (opts): New entries for these options.
525         (main): Handle these new options.
526         * call-agent.c (start_agent): Set the various display and tty
527         parameter after resetting.
528
529 2002-04-18  Werner Koch  <wk@gnupg.org>
530
531         * certreqgen.c (gpgsm_genkey): Write status output on success.
532
533 2002-04-15  Werner Koch  <wk@gnupg.org>
534
535         * gpgsm.c (main): Check ksba version.
536
537         * certpath.c (find_up): New to use the authorithKeyIdentifier.
538         Use it in all other functions to locate the signing cert..
539
540 2002-04-11  Werner Koch  <wk@gnupg.org>
541
542         * certlist.c (cert_usable_p): New.
543         (gpgsm_cert_use_sign_p,gpgsm_cert_use_encrypt_p): New.
544         (gpgsm_cert_use_verify_p,gpgsm_cert_use_decrypt_p): New.
545         (gpgsm_add_to_certlist): Check the key usage.
546         * sign.c (gpgsm_sign): Ditto.
547         * verify.c (gpgsm_verify): Print a message wehn an unsuitable
548         certificate was used.
549         * decrypt.c (gpgsm_decrypt): Ditto
550         * keylist.c (print_capabilities): Determine values from the cert.
551
552 2002-03-28  Werner Koch  <wk@gnupg.org>
553
554         * keylist.c (list_cert_colon): Fixed listing of crt record; the
555         issuer is not at the right place.  Print a chainingID.
556         * certpath.c (gpgsm_walk_cert_chain): Be a bit more silent on
557         common errors.
558
559 2002-03-21  Werner Koch  <wk@gnupg.org>
560
561         * export.c: New.
562         * gpgsm.c: Add command --export.
563         * server.c (cmd_export): New.
564         
565 2002-03-13  Werner Koch  <wk@gnupg.org>
566
567         * decrypt.c (gpgsm_decrypt): Allow multiple recipients.
568
569 2002-03-12  Werner Koch  <wk@gnupg.org>
570
571         * certpath.c (check_cert_policy): Print the policy list.
572
573         * verify.c (gpgsm_verify): Detect certs-only message.
574
575 2002-03-11  Werner Koch  <wk@gnupg.org>
576
577         * import.c (gpgsm_import): Print a notice about imported certificates
578         when in verbose mode.
579
580         * gpgsm.c (main): Print INV_RECP status.
581         * server.c (cmd_recipient): Ditto.
582
583         * server.c (gpgsm_status2): New.  Allows for a list of strings.
584         (gpgsm_status): Divert to gpgsm_status2.
585
586         * encrypt.c (gpgsm_encrypt): Don't use a default key when no
587         recipients are given.  Print a NO_RECP status.
588
589 2002-03-06  Werner Koch  <wk@gnupg.org>
590
591         * server.c (cmd_listkeys, cmd_listsecretkeys): Divert to
592         (do_listkeys): new.  Add pattern parsing.
593
594         * keylist.c (gpgsm_list_keys): Handle selection pattern.
595
596         * gpgsm.c: New command --learn-card
597         * call-agent.c (learn_cb,gpgsm_agent_learn): New.
598
599         * gpgsm.c (main): Print error messages for non-implemented commands.
600
601         * base64.c (base64_reader_cb): Use case insensitive compare of the
602         Content-Type string to detect plain base-64.
603
604 2002-03-05  Werner Koch  <wk@gnupg.org>
605
606         * gpgsm.c, gpgsm.h: Add local_user.
607         * sign.c (gpgsm_get_default_cert): New.
608         (get_default_signer): Use the new function if local_user is not
609         set otherwise used that value.
610         * encrypt.c (get_default_recipient): Removed.
611         (gpgsm_encrypt): Use gpgsm_get_default_cert.
612
613         * verify.c (gpgsm_verify): Better error text for a bad signature
614         found by comparing the hashs.
615
616 2002-02-27  Werner Koch  <wk@gnupg.org>
617
618         * call-dirmngr.c, call-agent.c: Add 2 more arguments to all uses
619         of assuan_transact.
620
621 2002-02-25  Werner Koch  <wk@gnupg.org>
622
623         * server.c (option_handler): Allow to use -2 for "send all certs
624         except the root cert".
625         * sign.c (add_certificate_list): Implement it here.
626         * certpath.c (gpgsm_is_root_cert): New.
627
628 2002-02-19  Werner Koch  <wk@gnupg.org>
629
630         * certpath.c (check_cert_policy): New.
631         (gpgsm_validate_path): And call it from here.
632         * gpgsm.c (main): New options --policy-file,
633         --disable-policy-checks and --enable-policy-checks.
634         * gpgsm.h (opt): Added policy_file, no_policy_checks.
635
636 2002-02-18  Werner Koch  <wk@gnupg.org>
637
638         * certpath.c (gpgsm_validate_path): Ask the agent to add the
639         certificate into the trusted list.
640         * call-agent.c (gpgsm_agent_marktrusted): New.
641
642 2002-02-07  Werner Koch  <wk@gnupg.org>
643
644         * certlist.c (gpgsm_add_to_certlist): Check that the specified
645         name identifies a certificate unambiguously.
646         (gpgsm_find_cert): Ditto.
647
648         * server.c (cmd_listkeys): Check that the data stream is available.
649         (cmd_listsecretkeys): Ditto.
650         (has_option): New.
651         (cmd_sign): Fix ambiguousity in option recognition.
652
653         * gpgsm.c (main): Enable --logger-fd.
654
655         * encrypt.c (gpgsm_encrypt): Increased buffer size for better
656         performance.
657
658         * call-agent.c (gpgsm_agent_pksign): Check the S-Exp received from
659         the agent.
660
661         * keylist.c (list_cert_colon): Filter out control characters.
662
663 2002-02-06  Werner Koch  <wk@gnupg.org>
664
665         * decrypt.c (gpgsm_decrypt): Bail out after an decryption error.
666
667         * server.c (reset_notify): Close input and output FDs.
668         (cmd_encrypt,cmd_decrypt,cmd_verify,cmd_sign.cmd_import)
669         (cmd_genkey): Close the FDs and release the recipient list even in
670         the error case.
671
672 2002-02-01  Marcus Brinkmann  <marcus@g10code.de>
673
674         * sign.c (gpgsm_sign): Do not release certificate twice.
675
676 2002-01-29  Werner Koch  <wk@gnupg.org>
677
678         * call-agent.c (gpgsm_agent_havekey): New.
679         * keylist.c (list_cert_colon): New arg HAVE_SECRET, print "crs"
680         when we know that the secret key is available.
681         (gpgsm_list_keys): New arg MODE, check whether a secret key is
682         available.  Changed all callers.
683         * gpgsm.c (main): New command --list-secret-keys.
684         * server.c (cmd_listsecretkeys): New.
685         (cmd_listkeys): Return secret keys with "crs" record.
686
687 2002-01-28  Werner Koch  <wk@gnupg.org>
688
689         * certreqgen.c (create_request): Store the email address in the req.
690
691 2002-01-25  Werner Koch  <wk@gnupg.org>
692
693         * gpgsm.c (main): Disable core dumps.
694
695         * sign.c (add_certificate_list): New.
696         (gpgsm_sign): Add the certificates to the CMS object.
697         * certpath.c (gpgsm_walk_cert_chain): New.
698         * gpgsm.h (server_control_s): Add included_certs.
699         * gpgsm.c: Add option --include-certs.
700         (gpgsm_init_default_ctrl): New.
701         (main): Call it.
702         * server.c (gpgsm_server): Ditto.
703         (option_handler): Support --include-certs.
704
705 2002-01-23  Werner Koch  <wk@gnupg.org>
706
707         * certpath.c (gpgsm_validate_path): Print the DN of a missing issuer.
708         * certdump.c (gpgsm_dump_string): New.
709         (print_dn): Replaced by above.
710
711 2002-01-22  Werner Koch  <wk@gnupg.org>
712
713         * certpath.c (unknown_criticals): New.
714         (allowed_ca): New.
715         (gpgsm_validate_path): Check validity, CA attribute, path length
716         and unknown critical extensions.
717
718 2002-01-21  Werner Koch  <wk@gnupg.org>
719
720         * gpgsm.c: Add option --enable-crl-checks.
721
722         * call-agent.c (start_agent): Implemented socket based access.
723         * call-dirmngr.c (start_dirmngr): Ditto.
724
725 2002-01-20  Werner Koch  <wk@gnupg.org>
726
727         * server.c (option_handler): New.
728         (gpgsm_server): Register it with assuan.
729
730 2002-01-19  Werner Koch  <wk@gnupg.org>
731
732         * server.c (gpgsm_server): Use assuan_deinit_server and setup
733         assuan logging if enabled.
734         * call-agent.c (inq_ciphertext_cb): Don't show the session key in
735         an Assuan log file.
736
737         * gpgsm.c (my_strusage): Take bugreport address from configure.ac
738
739 2002-01-15  Werner Koch  <wk@gnupg.org>
740
741         * import.c (gpgsm_import): Just do a basic cert check before
742         storing it.
743         * certpath.c (gpgsm_basic_cert_check): New.
744
745         * keydb.c (keydb_store_cert): New.
746         * import.c (store_cert): Removed and change all caller to use
747         the new function.
748         * verify.c (store_cert): Ditto.
749
750         * certlist.c (gpgsm_add_to_certlist): Validate the path
751
752         * certpath.c (gpgsm_validate_path): Check the trust list.
753         * call-agent.c (gpgsm_agent_istrusted): New.
754
755 2002-01-14  Werner Koch  <wk@gnupg.org>
756
757         * call-dirmngr.c (inq_certificate): Changed for new interface semantic.
758         * certlist.c (gpgsm_find_cert): New.
759
760 2002-01-13  Werner Koch  <wk@gnupg.org>
761
762         * fingerprint.c (gpgsm_get_certid): Print the serial and not the
763         hash after the dot.
764
765 2002-01-11  Werner Koch  <wk@gnupg.org>
766
767         * call-dirmngr.c: New.
768         * certpath.c (gpgsm_validate_path): Check the CRL here.
769         * fingerprint.c (gpgsm_get_certid): New.
770         * gpgsm.c: New options --dirmngr-program and --disable-crl-checks.
771
772 2002-01-10  Werner Koch  <wk@gnupg.org>
773
774         * base64.c (gpgsm_create_writer): Allow to set the object name
775
776 2002-01-08  Werner Koch  <wk@gnupg.org>
777
778         * keydb.c (spacep): Removed because it is now in util.c
779
780         * server.c (cmd_genkey): New.
781         * certreqgen.c: New.  The parameter handling code has been taken
782         from gnupg/g10/keygen.c version 1.0.6.
783         * call-agent.c (gpgsm_agent_genkey): New.
784
785 2002-01-02  Werner Koch  <wk@gnupg.org>
786
787         * server.c (rc_to_assuan_status): Removed and changed all callers
788         to use map_to_assuan_status.
789
790 2001-12-20  Werner Koch  <wk@gnupg.org>
791
792         * verify.c (gpgsm_verify): Implemented non-detached signature
793         verification.  Add OUT_FP arg, initialize a writer and changed all
794         callers.
795         * server.c (cmd_verify): Pass an out_fp if one has been set.
796
797         * base64.c (base64_reader_cb): Try to detect an S/MIME body part.
798
799         * certdump.c (print_sexp): Renamed to gpgsm_dump_serial, made
800         global.
801         (print_time): Renamed to gpgsm_dump_time, made global.
802         (gpgsm_dump_serial): Take a real S-Expression as argument and
803         print the first item.
804         * keylist.c (list_cert_colon): Ditto.
805         * keydb.c (keydb_search_issuer_sn): Ditto.
806         * decrypt.c (print_integer_sexp): Removed and made callers 
807         use gpgsm_dump_serial.
808         * verify.c (print_time): Removed, made callers use gpgsm_dump_time.
809         
810 2001-12-19  Marcus Brinkmann  <marcus@g10code.de>
811
812         * call-agent.c (start_agent): Add new argument to assuan_pipe_connect.
813
814 2001-12-18  Werner Koch  <wk@gnupg.org>
815
816         * verify.c (print_integer_sexp): Renamed from print_integer and
817         print the serial number according to the S-Exp rules.
818         * decrypt.c (print_integer_sexp): Ditto.
819
820 2001-12-17  Werner Koch  <wk@gnupg.org>
821
822         * keylist.c (list_cert_colon): Changed for new return value of
823         get_serial.
824         * keydb.c (keydb_search_issuer_sn): Ditto.
825         * certcheck.c (gpgsm_check_cert_sig): Likewise for other S-Exp
826         returingin functions.
827         * fingerprint.c (gpgsm_get_keygrip): Ditto.
828         * encrypt.c (encrypt_dek): Ditto
829         * certcheck.c (gpgsm_check_cms_signature): Ditto
830         * decrypt.c (prepare_decryption): Ditto.
831         * call-agent.c (gpgsm_agent_pkdecrypt): Removed arg ciphertextlen,
832         use KsbaSexp type and calculate the length.
833
834         * certdump.c (print_sexp): Remaned from print_integer, changed caller.
835
836         * Makefile.am: Use the LIBGCRYPT and LIBKSBA variables.
837
838         * fingerprint.c (gpgsm_get_keygrip): Use the new
839         gcry_pk_get_keygrip to calculate the grip - note the algorithm and
840         therefore the grip values changed.
841
842 2001-12-15  Werner Koch  <wk@gnupg.org>
843
844         * certcheck.c (gpgsm_check_cms_signature): Removed the faked-key
845         kludge.
846         (gpgsm_create_cms_signature): Removed the commented fake key
847         code.  This makes the function pretty simple.
848
849         * gpgsm.c (main): Renamed the default key database to "keyring.kbx".
850
851         * decrypt.c (gpgsm_decrypt): Write STATUS_DECRYPTION_*.
852         * sign.c (gpgsm_sign): Write a STATUS_SIG_CREATED.
853
854 2001-12-14  Werner Koch  <wk@gnupg.org>
855
856         * keylist.c (list_cert_colon): Kludge to show an email address
857         encoded in the subject's DN.
858
859         * verify.c (gpgsm_verify): Add hash debug helpers
860         * sign.c (gpgsm_sign): Ditto.
861
862         * base64.c (base64_reader_cb): Reset the linelen when we need to
863         skip the line and adjusted test; I somehow forgot about DeMorgan.
864
865         * server.c (cmd_encrypt,cmd_decrypt,cmd_sign,cmd_verify) 
866         (cmd_import): Close the FDs on success.
867         (close_message_fd): New.
868         (input_notify): Setting autodetect_encoding to 0 after initializing
869         it to 0 is pretty pointless.  Easy to fix.
870
871         * gpgsm.c (main): New option --debug-wait n, so that it is
872         possible to attach gdb when used in server mode.
873
874         * sign.c (get_default_signer): Use keydb_classify_name here.
875
876 2001-12-14  Marcus Brinkmann  <marcus@g10code.de>
877
878         * call-agent.c (LINELENGTH): Removed.
879         (gpgsm_agent_pksign): Use ASSUAN_LINELENGTH, not LINELENGTH.
880         (gpgsm_agent_pkdecrypt): Likewise.
881
882 2001-12-13  Werner Koch  <wk@gnupg.org>
883
884         * keylist.c (list_cert_colon): Print alternative names of subject
885         and a few other values.
886
887 2001-12-12  Werner Koch  <wk@gnupg.org>
888
889         * gpgsm.c (main): New options --assume-{armor,base64,binary}. 
890         * base64.c (base64_reader_cb): Fixed non-autodetection mode.
891
892 2001-12-04  Werner Koch  <wk@gnupg.org>
893
894         * call-agent.c (read_from_agent): Check for inquire responses.
895         (request_reply): Handle them using a new callback arg, changed all
896         callers.
897         (gpgsm_agent_pkdecrypt): New.
898
899 2001-11-27  Werner Koch  <wk@gnupg.org>
900
901         * base64.c: New.  Changed all other functions to use this instead
902         of direct creation of ksba_reader/writer.
903         * gpgsm.c (main): Set ctrl.auto_encoding unless --no-armor is used.
904
905 2001-11-26  Werner Koch  <wk@gnupg.org>
906
907         * gpgsm.c: New option --agent-program
908         * call-agent.c (start_agent): Allow to override the default path
909         to the agent.
910
911         * keydb.c (keydb_add_resource): Create keybox
912
913         * keylist.c (gpgsm_list_keys): Fixed non-server keylisting.
914
915         * server.c (rc_to_assuan_status): New.  Use it for all commands.
916
917         
918  Copyright 2001, 2002, 2003 Free Software Foundation, Inc.
919
920  This file is free software; as a special exception the author gives
921  unlimited permission to copy and/or distribute it, with or without
922  modifications, as long as this notice is preserved.
923
924  This file is distributed in the hope that it will be useful, but
925  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
926  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.