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