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