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