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