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