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