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