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