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