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