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