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