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