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