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