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