g10/ and sm/
[gnupg.git] / sm / ChangeLog
1 2007-04-13  Werner Koch  <wk@g10code.com>
2
3         * call-agent.c (start_agent): Don't use log_error when using the
4         fallback hack to start the agent.  This is bug 782.
5
6 2007-03-20  Werner Koch  <wk@g10code.com>
7
8         * fingerprint.c (gpgsm_get_fingerprint): Add caching.
9         (gpgsm_get_fingerprint_string): Use bin2hexcolon().
10         (gpgsm_get_fingerprint_hexstring): Use bin2hex and allocate only
11         as much memory as required.
12         (gpgsm_get_keygrip_hexstring): Use bin2hex.
13
14         * certchain.c (gpgsm_validate_chain): Keep track of the
15         certificate chain and reset the ephemeral flags.
16         * keydb.c (keydb_set_cert_flags): New args EPHEMERAL and MASK.
17         Changed caller to use a mask of ~0.  Return a proper error code if
18         the certificate is not available.
19
20         * gpgsm.c: Add option --p12-charset.
21         * gpgsm.h (struct opt): Add p12_charset. 
22         * export.c (popen_protect_tool): Use new option.
23
24 2007-03-19  Werner Koch  <wk@g10code.com>
25
26         Changes to let export and key listing use estream to help systems
27         without funopen.
28         
29         * keylist.c: Use estream in place of stdio functions.
30         * gpgsm.c (open_es_fwrite): New.
31         (main): Use it for the list commands.
32         * server.c (data_line_cookie_functions): New.
33         (data_line_cookie_write, data_line_cookie_close): New.
34         (do_listkeys): Use estream.
35
36         * certdump.c (gpgsm_print_serial): Changed to use estream.
37         (gpgsm_print_time): Ditto.
38         (pretty_es_print_sexp): New.
39         (gpgsm_es_print_name): New.
40         (print_dn_part): New arg STREAM.  Changed all callers.
41         (print_dn_parts): Ditto.
42         * certchain.c (gpgsm_validate_chain): Changed FP to type
43         estream_t.
44         (do_list, unknown_criticals, allowed_ca, check_cert_policy) 
45         (is_cert_still_valid): Ditto.
46
47         * export.c (gpgsm_export): New arg STREAM.
48         (do_putc, do_fputs): New.
49         (print_short_info): Allow printing to optional STREAM.
50         * server.c (cmd_export): Use stream.
51         * base64.c (do_putc, do_fputs): New.
52         (base64_writer_cb, base64_finish_write): Let them cope with an
53         alternate output function.
54         (plain_writer_cb): New.
55         (gpgsm_create_writer): New arg STREAM and call plain_writer_cb for
56         binary output to an estream.  Changed call callers.
57
58 2007-01-31  Werner Koch  <wk@g10code.com>
59
60         * gpgsm.c (main): Let --gen-key print a more informative error
61         message.
62
63 2007-01-25  Werner Koch  <wk@g10code.com>
64
65         * Makefile.am (gpgsm_LDADD): Add LIBICONV.  Noted by Billy Halsey.
66
67 2007-01-05  Werner Koch  <wk@g10code.com>
68
69         * certchain.c (unknown_criticals): Add subjectAltName.
70
71 2006-12-21  Werner Koch  <wk@g10code.com>
72
73         * gpgsm.c: Comment mtrace feature.
74
75 2006-12-21  Marcus Brinkmann  <marcus@g10code.de>
76
77         * certchain.c (gpgsm_basic_cert_check): Release SUBJECT.
78
79         * encrypt.c (encrypt_dek): Release S_CIPH.
80
81 2006-12-20  Marcus Brinkmann  <marcus@g10code.de>
82
83         * server.c (gpgsm_server): Release CTRL->server_local.
84
85         * base64.c: Add new members READER and WRITER in union U2.
86         (gpgsm_create_reader): Initialise CTX->u2.reader.
87         (gpgsm_destroy_reader): Invoke ksba_reader_release.  Return early
88         if CTX is NULL.
89         (gpgsm_create_writer): Initialise CTX->u2.writer.
90         (gpgsm_destroy_writer): Invoke ksba_writer_release.  Return early
91         if CTX is NULL.
92
93 2006-12-18  Marcus Brinkmann  <marcus@g10code.de>
94
95         * fingerprint.c (gpgsm_get_fingerprint): Close MD.
96
97 2006-11-24  Werner Koch  <wk@g10code.com>
98
99         * certdump.c (parse_dn_part): Take '#' as a special character only
100         at the beginning of a string.
101
102 2006-11-21  Werner Koch  <wk@g10code.com>
103
104         * certdump.c (my_funopen_hook_ret_t): New.
105         (format_name_writer): Use it for the return value.
106
107 2006-11-14  Werner Koch  <wk@g10code.com>
108
109         * server.c (skip_options): Skip leading spaces.
110         (has_option): Honor "--".
111         (cmd_export): Add option --data to do an inline export.  Skip all
112         options.
113
114         * certdump.c (gpgsm_fpr_and_name_for_status): New.
115         * verify.c (gpgsm_verify): Use it to print correct status messages.
116
117 2006-11-11  Werner Koch  <wk@g10code.com>
118
119         * server.c (skip_options): New.
120
121 2006-10-24  Marcus Brinkmann  <marcus@g10code.de>
122
123         * Makefile.am (AM_CFLAGS): Add $(LIBASSUAN_CFLAGS).
124
125 2006-10-23  Werner Koch  <wk@g10code.com>
126
127         * gpgsm.c (main): Remap common cipher algo names to their OIDs.
128         (main): New command --gpgconf-test.
129
130 2006-10-20  Werner Koch  <wk@g10code.com>
131
132         * keydb.c (classify_user_id): Parse keygrip for the '&' identifier.
133
134 2006-10-18  Werner Koch  <wk@g10code.com>
135
136         * keylist.c (list_cert_raw): Also test for GPG_ERR_NO_VALUE when
137         testing for GPG_ERR_NO_DATA.
138         * certlist.c (cert_usage_p, gpgsm_find_cert): Ditto.
139         * certchain.c (check_cert_policy): Ditto.
140
141         * keylist.c (list_cert_std, list_cert_raw): Print "none" for no
142         chain length available.
143
144 2006-10-17  Werner Koch  <wk@g10code.com>
145
146         * gpgsm.c: No need for pth.h.  
147         (main): or to init it. It used to be hack for W32.
148
149         * sign.c (gpgsm_get_default_cert): Changed to return only
150         certificates usable for signing.
151
152 2006-10-16  Werner Koch  <wk@g10code.com>
153
154         * certchain.c (already_asked_marktrusted) 
155         (set_already_asked_marktrusted): New.
156         (gpgsm_validate_chain) <not trusted>: Keep track of certificates
157         we already asked for.
158
159 2006-10-11  Werner Koch  <wk@g10code.com>
160
161         * certreqgen.c (proc_parameters, create_request): Allow for
162         creation directly from a card.
163         * call-agent.c (gpgsm_agent_readkey): New arg FROMCARD.
164         (gpgsm_scd_pksign): New.
165
166 2006-10-06  Werner Koch  <wk@g10code.com>
167
168         * Makefile.am (AM_CFLAGS): Use PTH version of libassuan.
169         (gpgsm_LDADD): Ditto.
170
171 2006-10-05  Werner Koch  <wk@g10code.com>
172
173         * certcheck.c (do_encode_md): Check that the has algo is valid.
174
175 2006-10-02  Marcus Brinkmann  <marcus@g10code.de>
176
177         * server.c (register_commands): New commands DUMPKEYS and
178         DUMPSECRETKEYS.
179         (cmd_dumpkeys, cmd_dumpsecretkeys): New functions.
180         (option_handler): Support with-key-data option.
181
182 2006-09-26  Werner Koch  <wk@g10code.com>
183
184         * certchain.c (gpgsm_validate_chain): More changes for the relax
185         feature.  Use certificate reference counting instead of the old
186         explicit tests. Added a missing free. 
187
188 2006-09-25  Werner Koch  <wk@g10code.com>
189
190         * gpgsm.h (struct rootca_flags_s): New.
191         * call-agent.c (istrusted_status_cb): New.
192         (gpgsm_agent_istrusted): New arg ROOTCA_FLAGS.
193         * keylist.c (list_cert_colon): Use dummy for new arg.
194         * certchain.c (gpgsm_validate_chain): Make use of the relax flag
195         for root certificates.
196         (unknown_criticals): Ignore a GPG_ERR_NO_VALUE.
197
198 2006-09-20  Werner Koch  <wk@g10code.com>
199
200         * gpgsm.c: Add alias command --dump-cert.
201
202         * Makefile.am:  Changes to allow parallel make runs.
203
204 2006-09-18  Werner Koch  <wk@g10code.com>
205
206         * gpgsm.c (main): Use this to import standard certificates.
207         * keydb.c (keydb_add_resource): New arg AUTO_CREATED.
208
209 2006-09-14  Werner Koch  <wk@g10code.com>
210
211         Replaced all call gpg_error_from_errno(errno) by
212         gpg_error_from_syserror().
213
214 2006-09-13  Werner Koch  <wk@g10code.com>
215
216         * keylist.c (list_internal_keys): Print marker line to FP and not
217         to stdout.
218
219         * gpgsm.c (main): All list key list commands now make ose of
220         --output. Cleaned up calls to list modes.  New command
221         --dump-chain.  Renamed --list-sigs to --list-chain and added an
222         alias for the old one.
223
224         * server.c (cmd_message): Changed to use assuan_command_parse_fd.
225         (option_handler): New option list-to-output.
226         (do_listkeys): Use it.
227
228 2006-09-06  Werner Koch  <wk@g10code.com>
229
230         * gpgsm.h (OUT_OF_CORE): Removed and changed all callers to
231         out_of_core.
232         (CTRL): Removed and changed everywhere to ctrl_t.
233         (CERTLIST): Ditto.
234
235         Replaced all Assuan error codes by libgpg-error codes.  Removed
236         all map_to_assuan_status and map_assuan_err.
237         
238         * gpgsm.c (main): Call assuan_set_assuan_err_source to have Assuan
239         switch to gpg-error codes.  
240         * server.c (set_error): Adjusted.
241
242 2006-08-29  Werner Koch  <wk@g10code.com>
243
244         * call-agent.c (gpgsm_agent_pkdecrypt): Allow decryption using
245         complete S-expressions as implemented by the current gpg-agent.
246
247         * gpgsm.c (main): Implement --output for encrypt, decrypt, sign
248         and export.
249
250 2006-07-03  Werner Koch  <wk@g10code.com>
251
252         * certreqgen.c (proc_parameters): Print the component label of a
253         faulty DN.
254
255 2006-06-26  Werner Koch  <wk@g10code.com>
256
257         * certdump.c (gpgsm_cert_log_name): New.
258         * certchain.c (is_cert_still_valid): Log the name of the certificate.
259
260 2006-06-20  Werner Koch  <wk@g10code.com>
261
262         * gpgsm.c (gpgsm_init_default_ctrl): Take care of the command line
263         option --include-certs.
264
265         * keylist.c (list_cert_raw): Print the certid.
266
267 2006-05-23  Werner Koch  <wk@g10code.com>
268
269         * keydb.c (hextobyte): Deleted as it is now defined in jnlib.
270
271         * Makefile.am (gpgsm_LDADD): Include ZLIBS.
272
273 2006-05-19  Marcus Brinkmann  <marcus@g10code.de>
274
275         * keydb.c (keydb_insert_cert): Do not lock here, but only check if
276         it is locked.
277         (keydb_store_cert): Lock here.
278
279         * keydb.h (keydb_delete): Accept new argument UNLOCK.
280         * keydb.c (keydb_delete): Likewise.  Only unlock if this is set.
281         * delete.c (delete_one): Add new argument to invocation of
282         keydb_delete.
283         
284 2006-05-15  Werner Koch  <wk@g10code.com>
285
286         * keylist.c (print_names_raw): Sanitize URI.
287
288 2006-03-21  Werner Koch  <wk@g10code.com>
289
290         * certchain.c (get_regtp_ca_info): New.
291         (allowed_ca): Use it.
292
293 2006-03-20  Werner Koch  <wk@g10code.com>
294
295         * qualified.c (gpgsm_is_in_qualified_list): New optional arg COUNTRY.
296
297 2006-02-17  Werner Koch  <wk@g10code.com>
298
299         * call-dirmngr.c (start_dirmngr): Print name of dirmngr to be started.
300
301 2005-11-23  Werner Koch  <wk@g10code.com>
302
303         * gpgsm.h: New member QUALSIG_APPROVAL.
304         * sign.c (gpgsm_sign): Print a warning if a certificate is not
305         qualified.
306         * qualified.c (gpgsm_qualified_consent): Include a note that this
307         is not approved software.
308         (gpgsm_not_qualified_warning): New.
309         * gpgsm.c (main): Prepared to print a note whether the software
310         has been approved.
311
312 2005-11-13  Werner Koch  <wk@g10code.com>
313
314         * call-agent.c (gpgsm_agent_get_confirmation): New.
315
316         * keylist.c (list_cert_std): Print qualified status.
317         * qualified.c: New.
318         * certchain.c (gpgsm_validate_chain): Check for qualified
319         certificates.
320
321         * certchain.c (gpgsm_basic_cert_check): Release keydb handle when
322         no-chain-validation is used.
323
324 2005-11-11  Werner Koch  <wk@g10code.com>
325
326         * keylist.c (print_capabilities): Print is_qualified status.
327
328 2005-10-28  Werner Koch  <wk@g10code.com>
329
330         * certdump.c (pretty_print_sexp): New.
331         (gpgsm_print_name2): Use it here.  This allows proper printing of
332         DNS names as used with server certificates.
333
334 2005-10-10  Werner Koch  <wk@g10code.com>
335
336         * keylist.c: Add pkaAdress OID as reference.
337
338 2005-10-08  Marcus Brinkmann  <marcus@g10code.de>
339
340         * Makefile.am (gpgsm_LDADD): Add ../gl/libgnu.a after
341         ../common/libcommon.a.
342
343 2005-09-13  Werner Koch  <wk@g10code.com>
344
345         * verify.c (gpgsm_verify): Print a note if the unknown algorithm
346         is MD2.
347         * sign.c (gpgsm_sign): Ditto.
348         * certcheck.c (gpgsm_check_cert_sig): Ditto.
349
350 2005-09-08  Werner Koch  <wk@g10code.com>
351
352         * export.c (popen_protect_tool): Add option --have-cert.  We
353         probably lost this option with 1.9.14 due to restructuring of
354         export.c.
355
356 2005-07-21  Werner Koch  <wk@g10code.com>
357
358         * gpgsm.c (main): New options --no-log-file and --debug-none.
359
360         * certreqgen.c (get_parameter, get_parameter_value): Add SEQ arg
361         to allow enumeration.  Changed all callers.
362         (create_request): Process DNS and URI parameters.
363
364 2005-07-20  Werner Koch  <wk@g10code.com>
365
366         * keylist.c (email_kludge): Reworked.
367
368         * certdump.c (gpgsm_print_serial, gpgsm_dump_serial): Cast printf
369         arg to unsigned.
370         * call-dirmngr.c (gpgsm_dirmngr_run_command): Ditto
371
372 2005-07-19  Werner Koch  <wk@g10code.com>
373
374         * fingerprint.c (gpgsm_get_certid): Cast printf arg to unsigned.
375         Bug accidently introduced while solving the #$%^& gcc
376         signed/unsigned char* warnings.
377
378 2005-06-15  Werner Koch  <wk@g10code.com>
379
380         * delete.c (delete_one): Changed FPR to unsigned.
381         * encrypt.c (encrypt_dek): Made ENCVAL unsigned.
382         (gpgsm_encrypt): Ditto.
383         * sign.c (gpgsm_sign): Made SIGVAL unsigned.
384         * base64.c (base64_reader_cb): Need to use some casting to get
385         around signed/unsigned char* warnings.
386         * certcheck.c (gpgsm_check_cms_signature): Ditto.
387         (gpgsm_create_cms_signature): Changed arg R_SIGVAL to unsigned char*.
388         (do_encode_md): Made NFRAME a size_t.
389         * certdump.c (gpgsm_print_serial): Fixed signed/unsigned warning.
390         (gpgsm_dump_serial): Ditto.
391         (gpgsm_format_serial): Ditto.
392         (gpgsm_dump_string): Ditto.
393         (gpgsm_dump_cert): Ditto.
394         (parse_dn_part): Ditto.
395         (gpgsm_print_name2): Ditto.
396         * keylist.c (email_kludge): Ditto.
397         * certreqgen.c (proc_parameters, create_request): Ditto.
398         (create_request): Ditto.
399         * call-agent.c (gpgsm_agent_pksign): Made arg R_BUF unsigned.
400         (struct cipher_parm_s): Made CIPHERTEXT unsigned.
401         (struct genkey_parm_s): Ditto.
402         * server.c (strcpy_escaped_plus): Made arg S signed char*.
403         * fingerprint.c (gpgsm_get_fingerprint): Made ARRAY unsigned.
404         (gpgsm_get_keygrip): Ditto.
405         * keydb.c (keydb_insert_cert): Made DIGEST unsigned.
406         (keydb_update_cert): Ditto.
407         (classify_user_id): Apply cast to signed/unsigned assignment.
408         (hextobyte): Ditto.
409
410 2005-06-01  Werner Koch  <wk@g10code.com>
411
412         * misc.c: Include setenv.h.
413
414 2005-04-21  Werner Koch  <wk@g10code.com>
415
416         * gpgsm.c: New options --{enable,disable}-trusted-cert-crl-check.
417         * certchain.c (gpgsm_validate_chain): Make use of it.
418
419         * certchain.c (gpgsm_validate_chain): Check revocations even for
420         expired certificates.  This is required because on signature
421         verification an expired key is fine whereas a revoked one is not.
422
423 2005-04-20  Werner Koch  <wk@g10code.com>
424
425         * Makefile.am (AM_CFLAGS): Add PTH_CFLAGS as noted by several folks.
426
427 2005-04-19  Werner Koch  <wk@g10code.com>
428
429         * certchain.c (check_cert_policy): Print the diagnostic for a open
430         failure of policies.txt only in verbose mode or when it is not
431         ENOENT.
432
433 2005-04-17  Werner Koch  <wk@g10code.com>
434
435         * call-dirmngr.c (inq_certificate): Add new inquire SENDCERT_SKI.
436         * certlist.c (gpgsm_find_cert): Add new arg KEYID and implement
437         this filter.  Changed all callers.
438
439         * certchain.c (find_up_search_by_keyid): New helper.
440         (find_up): Also try using the AKI.keyIdentifier.
441         (find_up_external): Ditto.
442
443 2005-04-15  Werner Koch  <wk@g10code.com>
444
445         * keylist.c (list_cert_raw): Print the subjectKeyIdentifier as
446         well as the keyIdentifier part of the authorityKeyIdentifier.
447
448 2005-03-31  Werner Koch  <wk@g10code.com>
449
450         * call-dirmngr.c (start_dirmngr): Use PATHSEP_C instead of ':'.
451         * call-agent.c (start_agent): Ditto.
452
453 2005-03-17  Werner Koch  <wk@g10code.com>
454
455         * certcheck.c: Fixed use of DBG_CRYPTO and DBG_X509.
456
457         * certchain.c (gpgsm_basic_cert_check): Dump certificates after a
458         failed gcry_pk_verify.
459         (find_up): Do an external lookup also for an authorityKeyIdentifier
460         lookup. Factored external lookup code out to ..
461         (find_up_external): .. new.
462
463 2005-03-03  Werner Koch  <wk@g10code.com>
464
465         * Makefile.am (gpgsm_LDADD): Added PTH_LIBS.  Noted by Kazu Yamamoto.
466
467 2005-01-13  Werner Koch  <wk@g10code.com>
468
469         * certreqgen.c (proc_parameters): Cast printf arg.
470
471 2004-12-22  Werner Koch  <wk@g10code.com>
472
473         * gpgsm.c (set_binary): New.
474         (main, open_read, open_fwrite): Use it.
475
476 2004-12-21  Werner Koch  <wk@g10code.com>
477
478         * gpgsm.c (main): Use default_homedir().
479         (main) [W32]: Default to disabled CRL checks.
480
481 2004-12-20  Werner Koch  <wk@g10code.com>
482
483         * call-agent.c (start_agent): Before starting a pipe server start
484         to connect to a server on the standard socket.  Use PATHSEP
485         * call-dirmngr.c (start_dirmngr): Use PATHSEP.
486
487         * import.c: Include unistd.h for dup and close.
488
489 2004-12-18  Werner Koch  <wk@g10code.com>
490
491         * gpgsm.h (map_assuan_err): Define in terms of
492         map_assuan_err_with_source.
493         * call-agent.c (start_agent): Pass error source to
494         send_pinentry_environment.
495
496 2004-12-17  Werner Koch  <wk@g10code.com>
497
498         * call-dirmngr.c (isvalid_status_cb, lookup_status_cb)
499         (run_command_status_cb): Return cancel status if gpgsm_status
500         returned an error.
501
502         * server.c (gpgsm_status, gpgsm_status2) 
503         (gpgsm_status_with_err_code): Return an error code.
504         (gpgsm_status2): Always call va_end().
505
506 2004-12-15  Werner Koch  <wk@g10code.com>
507
508         * call-dirmngr.c (lookup_status_cb): Send progress messages
509         upstream.
510         (isvalid_status_cb): Ditto.
511         (gpgsm_dirmngr_isvalid): Put CTRL into status CB parameters.
512         (gpgsm_dirmngr_run_command, run_command_status_cb): Pass CTRL to
513         status callback and handle PROGRESS.
514
515         * misc.c (setup_pinentry_env) [W32]: Don't use it.
516
517         * gpgsm.c (main) [W32]: Init Pth because we need it for the socket
518         operations and to resolve libassuan symbols.
519         (run_protect_tool) [W32]: Disable it.
520
521         * Makefile.am (gpgsm_LDADD): Move LIBASSUAN_LIBS more to the end.
522
523 2004-12-07  Werner Koch  <wk@g10code.com>
524
525         * Makefile.am (gpgsm_LDADD): Put libassuan before jnlib because
526         under W32 we need the w32 pth code from jnlib.
527
528         * misc.c (setup_pinentry_env) [W32]: Disabled.
529
530 2004-12-06  Werner Koch  <wk@g10code.com>
531
532         * gpgsm.c (run_protect_tool) [_WIN32]: Disabled.
533
534         * import.c (popen_protect_tool): Simplified by making use of
535         gnupg_spawn_process.
536         (parse_p12): Likewise, using gnupg_wait_process.
537         * export.c (popen_protect_tool): Ditto.
538         (export_p12): Ditto.
539
540         * keydb.c: Don't define DIRSEP_S here.
541
542 2004-12-02  Werner Koch  <wk@g10code.com>
543
544         * certchain.c (gpgsm_basic_cert_check): Dump certs with bad
545         signature for debugging.
546         (gpgsm_validate_chain): Ditto.
547
548 2004-11-29  Werner Koch  <wk@g10code.com>
549
550         * gpgsm.c (set_debug): Changed to use a globals DEBUG_LEVEL and
551         DEBUG_VALUE.
552         (main): Made DEBUG_LEVEL global and introduced DEBUG_VALUE.  This
553         now allows to add debug flags on top of a debug-level setting.
554
555 2004-11-23  Werner Koch  <wk@g10code.com>
556
557         * gpgsm.c: New option --prefer-system-dirmngr.
558         * call-dirmngr.c (start_dirmngr): Implement this option.
559
560 2004-10-22  Werner Koch  <wk@g10code.com>
561
562         * certreqgen.c (gpgsm_genkey): Remove the NEW from the certificate
563         request PEM header.  This is according to the Sphinx standard.
564
565 2004-10-08  Moritz Schulte  <moritz@g10code.com>
566
567         * certchain.c (gpgsm_validate_chain): Do not use keydb_new() in
568         case the no_chain_validation-return-short-cut is used (fixes
569         memory leak).
570
571 2004-10-04  Werner Koch  <wk@g10code.com>
572
573         * misc.c (setup_pinentry_env): Try hard to set a default for GPG_TTY.
574
575 2004-09-30  Werner Koch  <wk@g10code.com>
576
577         * gpgsm.c (i18n_init): Always use LC_ALL.
578
579         * certdump.c (gpgsm_format_name): Factored code out to ..
580         (gpgsm_format_name2): .. new.
581         (gpgsm_print_name): Factored code out to ..
582         (gpgsm_print_name2): .. new.
583         (print_dn_part): New arg TRANSLATE.  Changed all callers.
584         (print_dn_parts): Ditto.
585         (gpgsm_format_keydesc): Do not translate the SUBJECT; we require
586         it to stay UTF-8 but we still want to filter out bad control
587         characters.
588
589         * Makefile.am: Adjusted for gettext 0.14.
590
591         * keylist.c (list_cert_colon): Make sure that the expired flag has
592         a higher precedence than the invalid flag. 
593
594 2004-09-29  Werner Koch  <wk@g10code.com>
595
596         * import.c (parse_p12): Write an error status line for bad
597         passphrases. Add new arg CTRL and changed caller.
598         * export.c (export_p12): Likewise.
599
600 2004-09-14  Werner Koch  <wk@g10code.com>
601
602         * certchain.c (gpgsm_validate_chain): Give expired certificates a
603         higher error precedence and don't bother to check any CRL in that
604         case.
605
606 2004-08-24  Werner Koch  <wk@g10code.de>
607
608         * certlist.c: Fixed typo in ocsp OID.
609
610 2004-08-18  Werner Koch  <wk@g10code.de>
611
612         * certlist.c (gpgsm_cert_use_ocsp_p): New.
613         (cert_usage_p): Support it here.
614         * call-dirmngr.c (gpgsm_dirmngr_isvalid): Use it here.
615
616 2004-08-17  Marcus Brinkmann  <marcus@g10code.de>
617
618         * import.c: Fix typo in last change.
619
620 2004-08-17  Werner Koch  <wk@g10code.de>
621
622         * import.c (check_and_store): Do a full validation if
623         --with-validation is set.
624
625         * certchain.c (gpgsm_basic_cert_check): Print more detailed error
626         messages.
627         
628         * certcheck.c (do_encode_md): Partly support DSA.  Add new arg
629         PKALGO. Changed all callers to pass it.
630         (pk_algo_from_sexp): New.
631
632 2004-08-16  Werner Koch  <wk@g10code.de>
633
634         * gpgsm.c: New option --fixed-passphrase.
635         * import.c (popen_protect_tool): Pass it to the protect-tool.
636
637         * server.c (cmd_encrypt): Use DEFAULT_RECPLIST and not recplist
638         for encrypt-to keys.
639
640 2004-08-06  Werner Koch  <wk@g10code.com>
641
642         * gpgsm.c: New option --with-ephemeral-keys.
643         * keylist.c (list_internal_keys): Set it here.
644         (list_cert_raw): And indicate those keys.  Changed all our callers
645         to pass the new arg HD through.
646
647 2004-07-23  Werner Koch  <wk@g10code.de>
648
649         * certreqgen.c (proc_parameters): Do not allow key length below
650         1024.
651
652 2004-07-22  Werner Koch  <wk@g10code.de>
653
654         * keylist.c (list_cert_raw): Print the keygrip.
655
656 2004-07-20  Werner Koch  <wk@gnupg.org>
657
658         * certchain.c (gpgsm_validate_chain): The trust check didn't
659         worked anymore, probably due to the changes at 2003-03-04.  Fixed.
660
661 2004-06-06  Werner Koch  <wk@gnupg.org>
662
663         * certreqgen.c (get_parameter_uint, create_request): Create
664         an extension for key usage when requested. 
665
666 2004-05-12  Werner Koch  <wk@gnupg.org>
667
668         * gpgsm.c (main): Install emergency_cleanup also as an atexit
669         handler.
670
671         * verify.c (gpgsm_verify): Removed the separate error code
672         handling for KSBA.  We use shared error codes anyway.
673
674         * export.c (export_p12): Removed debugging code.
675
676         * encrypt.c (gpgsm_encrypt): Put the session key in to secure memory.
677
678 2004-05-11  Werner Koch  <wk@gnupg.org>
679
680         * sign.c (gpgsm_sign): Include the error source in the final error
681         message.
682         * decrypt.c (gpgsm_decrypt): Ditto.
683
684         * fingerprint.c (gpgsm_get_key_algo_info): New.
685         * sign.c (gpgsm_sign): Don't assume RSA in the status line.
686         * keylist.c (list_cert_colon): Really print the algorithm and key
687         length.
688         (list_cert_raw, list_cert_std): Ditto.
689         (list_cert_colon): Reorganized to be able to tell whether a root
690         certificate is trusted.
691
692         * gpgsm.c: New option --debug-allow-core-dump.
693
694         * gpgsm.h (opt): Add member CONFIG_FILENAME.
695         * gpgsm.c (main): Use it here instead of the local var.
696
697         * server.c (gpgsm_server): Print some additional information with
698         the hello in verbose mode.
699
700 2004-04-30  Werner Koch  <wk@gnupg.org>
701
702         * import.c (check_and_store): Do not update the stats for hidden
703         imports of issuer certs.
704         (popen_protect_tool): Request statusmessages from the protect-tool.
705         (parse_p12): Detect status messages. Add new arg STATS and update them.
706         (print_imported_summary): Include secret key stats.
707
708 2004-04-28  Werner Koch  <wk@gnupg.org>
709
710         * gpgsm.c: New command --keydb-clear-some-cert-flags.
711         * keydb.c (keydb_clear_some_cert_flags): New.
712         (keydb_update_keyblock, keydb_set_flags): Change error code
713         CONFLICT to NOT_LOCKED.
714
715 2004-04-26  Werner Koch  <wk@gnupg.org>
716
717         * gpgsm.c (main) <gpgconf>: Do not use /dev/null as default config
718         filename.
719
720         * call-agent.c (gpgsm_agent_pksign, gpgsm_agent_pkdecrypt) 
721         (gpgsm_agent_genkey, gpgsm_agent_istrusted) 
722         (gpgsm_agent_marktrusted, gpgsm_agent_havekey) 
723         (gpgsm_agent_passwd): Add new arg CTRL and changed all callers.
724         (start_agent): New arg CTRL.  Send progress item when starting a
725         new agent.
726         * sign.c (gpgsm_get_default_cert, get_default_signer): New arg
727         CTRL to be passed down to the agent function.
728         * decrypt.c (prepare_decryption): Ditto.
729         * certreqgen.c (proc_parameters, read_parameters): Ditto.
730         * certcheck.c (gpgsm_create_cms_signature): Ditto.
731
732 2004-04-23  Werner Koch  <wk@gnupg.org>
733
734         * keydb.c (keydb_add_resource): Try to compress the file on init.
735
736         * keylist.c (oidtranstbl): New.  OIDs collected from several sources.
737         (print_name_raw, print_names_raw, list_cert_raw): New.
738         (gpgsm_list_keys): Check the dump mode and pass it down as
739         necessary.
740
741 2004-04-22  Werner Koch  <wk@gnupg.org>
742
743         * gpgsm.c (main): New commands --dump-keys, --dump-external-keys,
744         --dump-secret-keys.
745
746 2004-04-13  Werner Koch  <wk@gnupg.org>
747
748         * misc.c (setup_pinentry_env): New.
749         * import.c (popen_protect_tool): Call it.
750         * export.c (popen_protect_tool): Call it.
751
752 2004-04-08  Werner Koch  <wk@gnupg.org>
753
754         * decrypt.c (gpgsm_decrypt): Return GPG_ERR_NO_DATA if it is not a 
755         encrypted message.
756
757 2004-04-07  Werner Koch  <wk@gnupg.org>
758
759         * gpgsm.c: New option --force-crl-refresh.
760         * call-dirmngr.c (gpgsm_dirmngr_isvalid): Pass option to dirmngr.
761
762 2004-04-05  Werner Koch  <wk@gnupg.org>
763
764         * server.c (get_status_string): Add STATUS_NEWSIG.
765         * verify.c (gpgsm_verify): Print STATUS_NEWSIG for each signature.
766
767         * certchain.c (gpgsm_validate_chain) <gpgsm_cert_use_cer_p>: Do
768         not just warn if a cert is not suitable; bail out immediately.
769
770 2004-04-01  Werner Koch  <wk@gnupg.org>
771
772         * call-dirmngr.c (isvalid_status_cb): New.
773         (unhexify_fpr): New. Taken from ../g10/call-agent.c
774         (gpgsm_dirmngr_isvalid): Add new arg CTRL, changed caller to pass
775         it thru.  Detect need to check the respondert cert and do that.
776         * certchain.c (gpgsm_validate_chain): Add new arg FLAGS.  Changed
777         all callers.
778
779 2004-03-24  Werner Koch  <wk@gnupg.org>
780
781         * sign.c (gpgsm_sign): Include a short list of capabilities.
782
783 2004-03-17  Werner Koch  <wk@gnupg.org>
784
785         * gpgsm.c (main) <gpgconf>: Fixed default value quoting.
786
787 2004-03-16  Werner Koch  <wk@gnupg.org>
788
789         * gpgsm.c (main): Implemented --gpgconf-list.
790
791 2004-03-15  Werner Koch  <wk@gnupg.org>
792
793         * keylist.c (list_cert_colon): Hack to set the expired flag.
794
795 2004-03-09  Werner Koch  <wk@gnupg.org>
796
797         * gpgsm.c (main): Correctly intitialze USE_OCSP flag.
798
799         * keydb.c (keydb_delete): s/GPG_ERR_CONFLICT/GPG_ERR_NOT_LOCKED/
800
801 2004-03-04  Werner Koch  <wk@gnupg.org>
802
803         * call-dirmngr.c (gpgsm_dirmngr_isvalid): New arg ISSUER_CERT.
804
805         * certchain.c (is_cert_still_valid): New.  Code moved from ...
806         (gpgsm_validate_chain): ... here because we now need to check at
807         two places and at a later stage, so that we can pass the issuer
808         cert down to the dirmngr.
809
810 2004-03-03  Werner Koch  <wk@gnupg.org>
811
812         * call-agent.c (start_agent): Replaced pinentry setup code by a
813         call to a new common function.
814
815         * certdump.c (gpgsm_format_keydesc): Make sure the string is
816         returned as utf-8.
817
818         * export.c (gpgsm_export): Make sure that we don't export more
819         than one certificate.
820
821 2004-03-02  Werner Koch  <wk@gnupg.org>
822
823         * export.c (create_duptable, destroy_duptable)
824         (insert_duptable): New.
825         (gpgsm_export): Avoid duplicates.
826
827 2004-02-26  Werner Koch  <wk@gnupg.org>
828
829         * certchain.c (compare_certs): New.
830         (gpgsm_validate_chain): Fixed infinite certificate checks after
831         bad signatures.
832
833 2004-02-24  Werner Koch  <wk@gnupg.org>
834
835         * keylist.c (list_cert_colon): Print the fingerprint as the
836         cert-id for root certificates.
837
838 2004-02-21  Werner Koch  <wk@gnupg.org>
839
840         * keylist.c (list_internal_keys): Return error codes.
841         (list_external_keys, gpgsm_list_keys): Ditto.
842         * server.c (do_listkeys): Ditto.
843
844         * gpgsm.c (main): Display a key description for --passwd.
845         * call-agent.c (gpgsm_agent_passwd): New arg DESC.
846
847 2004-02-20  Werner Koch  <wk@gnupg.org>
848
849         * gpgsm.c (main): New option --debug-ignore-expiration.
850         * certchain.c (gpgsm_validate_chain): Use it here.
851
852         * certlist.c (cert_usage_p): Apply extKeyUsage.
853
854 2004-02-19  Werner Koch  <wk@gnupg.org>
855
856         * export.c (export_p12, popen_protect_tool)
857         (gpgsm_p12_export): New.
858         * gpgsm.c (main): New command --export-secret-key-p12. 
859
860 2004-02-18  Werner Koch  <wk@gnupg.org>
861
862         * gpgsm.c (set_debug): Set the new --debug-level flags.
863         (main): New option --gpgconf-list.  
864         (main): Do not setup -u and -r keys when not required.
865         (main): Setup the used character set.
866
867         * keydb.c (keydb_add_resource): Print a hint to start the
868         gpg-agent.
869
870 2004-02-17  Werner Koch  <wk@gnupg.org>
871
872         * gpgsm.c: Fixed value parsing for --with-validation.
873         * call-agent.c (start_agent): Ignore an empty GPG_AGENT_INFO.
874         * call-dirmngr.c (start_dirmngr): Likewise for DIRMNGR_INFO.
875
876         * gpgsm.c: New option --with-md5-fingerprint.
877         * keylist.c (list_cert_std): Print MD5 fpr.
878
879         * gpgsm.c: New options --with-validation.
880         * server.c (option_handler): New option "with-validation".
881         * keylist.c (list_cert_std, list_internal_keys): New args CTRL and
882         WITH_VALIDATION. Changed callers to set it.
883         (list_external_cb, list_external_keys): Pass CTRL to the callback.
884         (list_cert_colon): Add arg CTRL.  Check validation if requested.
885         * certchain.c (unknown_criticals, allowed_ca, check_cert_policy) 
886         (gpgsm_validate_chain): New args LISTMODE and FP.
887         (do_list): New helper for info output.
888         (find_up): New arg FIND_NEXT.
889         (gpgsm_validate_chain): After a bad signature try again with other
890         CA certificates.
891
892         * import.c (print_imported_status): New arg NEW_CERT. Print
893         additional STATUS_IMPORT_OK becuase that is what gpgme expects.
894         (check_and_store): Always call above function after import.
895         * server.c (get_status_string): Added STATUS_IMPORT_OK.
896
897 2004-02-13  Werner Koch  <wk@gnupg.org>
898
899         * certcheck.c (gpgsm_create_cms_signature): Format a description
900         for use by the pinentry.
901         * decrypt.c (gpgsm_decrypt): Ditto. Free HEXKEYGRIP.
902         * certdump.c (format_name_cookie, format_name_writer) 
903         (gpgsm_format_name): New.
904         (gpgsm_format_serial): New.
905         (gpgsm_format_keydesc): New.
906         * call-agent.c (gpgsm_agent_pksign): New arg DESC.
907         (gpgsm_agent_pkdecrypt): Ditto.
908
909         * encrypt.c (init_dek): Check for too weak algorithms.
910
911         * import.c (parse_p12, popen_protect_tool): New.
912
913         * base64.c (gpgsm_create_reader): New arg ALLOW_MULTI_PEM.
914         Changed all callers.
915         (base64_reader_cb): Handle it here.
916         (gpgsm_reader_eof_seen): New.
917         (base64_reader_cb): Set a flag for EOF.
918         (simple_reader_cb): Ditto.
919
920 2004-02-12  Werner Koch  <wk@gnupg.org>
921
922         * gpgsm.h, gpgsm.c: New option --protect-tool-program.
923         * gpgsm.c (run_protect_tool): Use it.
924
925 2004-02-11  Werner Koch  <wk@gnupg.org>
926
927         * Makefile.am (AM_CPPFLAGS): Pass directory constants via -D; this
928         will allow to override directory names at make time.
929
930 2004-02-02  Werner Koch  <wk@gnupg.org>
931
932         * import.c (check_and_store): Import certificates even with
933         missing issuer's cert.  Fixed an "depending on the verbose
934         setting" bug.
935
936         * certchain.c (gpgsm_validate_chain): Mark revoked certs in the
937         keybox.
938
939         * keylist.c (list_cert_colon): New arg VALIDITY; use it to print a
940         revoked flag.
941         (list_internal_keys): Retrieve validity flag.
942         (list_external_cb): Pass 0 as validity flag.
943         * keydb.c (keydb_get_flags, keydb_set_flags): New.
944         (keydb_set_cert_flags): New.
945         (lock_all): Return a proper error code.
946         (keydb_lock): New.
947         (keydb_delete): Don't lock but check that it has been locked.
948         (keydb_update_keyblock): Ditto.
949         * delete.c (delete_one): Take a lock.
950
951 2004-01-30  Werner Koch  <wk@gnupg.org>
952
953         * certchain.c (check_cert_policy): Fixed read error checking.
954         (check_cert_policy): With no critical policies issue only a
955         warning if the policy file does not exists.
956
957         * sign.c (add_certificate_list): Decrement N for the first cert.
958
959 2004-01-29  Werner Koch  <wk@gnupg.org>
960
961         * certdump.c (parse_dn_part): Map common OIDs to human readable
962         labels.  Make sure that a value won't get truncated if it includes
963         a Nul.
964
965 2004-01-28  Werner Koch  <wk@gnupg.org>
966
967         * certchain.c (gpgsm_validate_chain): Changed the message printed
968         for an untrusted root certificate.
969
970 2004-01-27  Werner Koch  <wk@gnupg.org>
971
972         * certdump.c (parse_dn_part): Pretty print the nameDistinguisher OID.
973         (print_dn_part): Do not delimit multiple RDN by " + ".  Handle
974         multi-valued RDNs in a special way, i.e. in the order specified by
975         the certificate.
976         (print_dn_parts): Simplified. 
977
978 2004-01-16  Werner Koch  <wk@gnupg.org>
979
980         * sign.c (gpgsm_sign): Print an error message on all failures.
981         * decrypt.c (gpgsm_decrypt): Ditto.
982
983 2003-12-17  Werner Koch  <wk@gnupg.org>
984
985         * server.c (gpgsm_server): Add arg DEFAULT_RECPLIST.
986         (cmd_encrypt): Add all enrypt-to marked certs to the list.
987         * encrypt.c (gpgsm_encrypt): Check that real recipients are
988         available.
989         * gpgsm.c (main): Make the --encrypt-to and --no-encrypt-to
990         options work.  Pass the list of recients to gpgsm_server.
991         * gpgsm.h (certlist_s): Add field IS_ENCRYPT_TO.
992         (opt): Add NO_ENCRYPT_TO.
993         * certlist.c (gpgsm_add_to_certlist): New arg IS_ENCRYPT_TO.
994         Changed all callers and ignore duplicate entries.
995         (is_cert_in_certlist): New.
996         (gpgsm_add_cert_to_certlist): New.
997
998         * certdump.c (gpgsm_print_serial): Cleaned up cast use in strtoul.
999         (gpgsm_dump_serial): Ditto.
1000
1001         * decrypt.c (gpgsm_decrypt): Replaced ERR by RC.
1002
1003 2003-12-16  Werner Koch  <wk@gnupg.org>
1004
1005         * gpgsm.c (main): Set the prefixes for assuan logging.
1006
1007         * sign.c (gpgsm_sign): Add validation checks for the default
1008         certificate.
1009
1010         * gpgsm.c: Add -k as alias for --list-keys and -K for
1011         --list-secret-keys.
1012
1013 2003-12-15  Werner Koch  <wk@gnupg.org>
1014
1015         * encrypt.c (init_dek): Use gry_create_nonce for the IV; there is
1016         not need for real strong random here and it even better protect
1017         the random bits used for the key.
1018
1019 2003-12-01  Werner Koch  <wk@gnupg.org>
1020
1021         * gpgsm.c, gpgsm.h: New options --{enable,disable}-ocsp.
1022         (gpgsm_init_default_ctrl): Set USE_OCSP to the default value.
1023         * certchain.c (gpgsm_validate_chain): Handle USE_OCSP.
1024         * call-dirmngr.c (gpgsm_dirmngr_isvalid): Add arg USE_OCSP and
1025         proceed accordingly.
1026
1027 2003-11-19  Werner Koch  <wk@gnupg.org>
1028
1029         * verify.c (gpgsm_verify): Use "0" instead of an empty string for
1030         the VALIDSIG status.
1031
1032 2003-11-18  Werner Koch  <wk@gnupg.org>
1033
1034         * verify.c (gpgsm_verify): Fixed for changes API of gcry_md_info.
1035
1036         * certchain.c (unknown_criticals): Fixed an error code test.
1037
1038 2003-11-12  Werner Koch  <wk@gnupg.org>
1039
1040         Adjusted for API changes in Libksba.
1041
1042 2003-10-31  Werner Koch  <wk@gnupg.org>
1043
1044         * certchain.c (gpgsm_validate_chain): Changed to use ksba_isotime_t.
1045         * verify.c (strtimestamp_r, gpgsm_verify): Ditto.
1046         * sign.c (gpgsm_sign): Ditto.
1047         * keylist.c (print_time, list_cert_std, list_cert_colon): Ditto.
1048         * certdump.c (gpgsm_print_time, gpgsm_dump_time, gpgsm_dump_cert):
1049         Ditto.
1050
1051 2003-10-25  Werner Koch  <wk@gnupg.org>
1052
1053         * certreqgen.c (read_parameters): Fixed faulty of !spacep().
1054
1055 2003-08-20  Marcus Brinkmann  <marcus@g10code.de>
1056
1057         * encrypt.c (encode_session_key): Allocate enough space.  Cast key
1058         byte to unsigned char to prevent sign extension.
1059         (encrypt_dek): Check return value before error.
1060
1061 2003-08-14  Timo Schulz  <twoaday@freakmail.de>
1062
1063         * encrypt.c (encode_session_key): Use new Libgcrypt interface.
1064         
1065 2003-07-31  Werner Koch  <wk@gnupg.org>
1066
1067         * Makefile.am (gpgsm_LDADD): Added INTLLIBS.
1068
1069 2003-07-29  Werner Koch  <wk@gnupg.org>
1070
1071         * gpgsm.c (main): Add secmem features and set the random seed file.
1072         (gpgsm_exit): Update the random seed file and enable debug output.
1073
1074 2003-07-27  Werner Koch  <wk@gnupg.org>
1075
1076         Adjusted for gcry_mpi_print and gcry_mpi_scan API change.
1077
1078 2003-06-24  Werner Koch  <wk@gnupg.org>
1079
1080         * server.c (gpgsm_status_with_err_code): New.
1081         * verify.c (gpgsm_verify): Use it here instead of the old
1082         tokenizing version.
1083
1084         * verify.c (strtimestamp): Renamed to strtimestamp_r
1085
1086         Adjusted for changes in the libgcrypt API. Some more fixes for the
1087         libgpg-error stuff.  
1088
1089 2003-06-04  Werner Koch  <wk@gnupg.org>
1090
1091         * call-agent.c (init_membuf,put_membuf,get_membuf): Removed.
1092         Include new membuf header and changed used type.
1093
1094         Renamed error codes from INVALID to INV and removed _ERROR suffixes.
1095
1096 2003-06-03  Werner Koch  <wk@gnupg.org>
1097
1098         Changed all error codes in all files to the new libgpg-error scheme.
1099
1100         * gpgsm.h: Include gpg-error.h .
1101         * Makefile.am: Link with libgpg-error.
1102
1103 2003-04-29  Werner Koch  <wk@gnupg.org>
1104
1105         * Makefile.am: Use libassuan.  Don't override LDFLAGS anymore.
1106         * server.c (register_commands): Adjust for new Assuan semantics.
1107
1108 2002-12-03  Werner Koch  <wk@gnupg.org>
1109
1110         * call-agent.c (gpgsm_agent_passwd): New.
1111         * gpgsm.c (main): New command --passwd and --call-protect-tool
1112         (run_protect_tool): New.
1113
1114 2002-11-25  Werner Koch  <wk@gnupg.org>
1115
1116         * verify.c (gpgsm_verify): Handle content-type attribute. 
1117
1118 2002-11-13  Werner Koch  <wk@gnupg.org>
1119
1120         * call-agent.c (start_agent): Try to use $GPG_TTY instead of
1121         ttyname.  Changed ttyname to test stdin becuase it can be assumed
1122         that output redirection is more common that input redirection.
1123
1124 2002-11-12  Werner Koch  <wk@gnupg.org>
1125
1126         * gpgsm.c: New command --call-dirmngr. 
1127         * call-dirmngr.c (gpgsm_dirmngr_run_command)
1128         (run_command_inq_cb,run_command_cb)
1129         (run_command_status_cb): New.
1130
1131 2002-11-11  Werner Koch  <wk@gnupg.org>
1132
1133         * certcheck.c (gpgsm_check_cms_signature): Don't double free
1134         s_sig but free s_pkey at leave.
1135
1136 2002-11-10  Werner Koch  <wk@gnupg.org>
1137
1138         * gpgsm.c: Removed duplicate --list-secret-key entry.
1139
1140 2002-09-19  Werner Koch  <wk@gnupg.org>
1141
1142         * certcheck.c (gpgsm_check_cert_sig): Add cert hash debugging.
1143
1144         * certchain.c (find_up): Print info when the cert was not found 
1145         by the autorithyKeyIdentifier.
1146
1147 2002-09-03  Werner Koch  <wk@gnupg.org>
1148
1149         * gpgsm.c (main): Disable the internal libgcrypt locking.
1150
1151 2002-08-21  Werner Koch  <wk@gnupg.org>
1152
1153         * import.c (print_imported_summary): Cleaned up.  Print new
1154         not_imported value.
1155         (check_and_store): Update non_imported counter.
1156         (print_import_problem): New.
1157         (check_and_store): Print error status message.
1158         * server.c (get_status_string): Added STATUS_IMPORT_PROBLEM.
1159
1160 2002-08-20  Werner Koch  <wk@gnupg.org>
1161
1162         * gpgsm.c (main): Use the log file only in server mode.
1163
1164         * import.c (print_imported_summary): New.
1165         (check_and_store): Update the counters, take new argument.
1166         (import_one): Factored out core of gpgsm_import.
1167         (gpgsm_import): Print counters.
1168         (gpgsm_import_files): New.
1169         * gpgsm.c (main): Use the new function for import.
1170
1171 2002-08-19  Werner Koch  <wk@gnupg.org>
1172
1173         * decrypt.c (gpgsm_decrypt): Return a better error status token.
1174         * verify.c (gpgsm_verify): Don't error on messages with no signing
1175         time or no message digest.  This is only the case for messages
1176         without any signed attributes.
1177
1178 2002-08-16  Werner Koch  <wk@gnupg.org>
1179
1180         * certpath.c: Renamed to ..
1181         * certchain.c: this. Renamed all all other usages of "path" in the
1182         context of certificates to "chain".
1183
1184         * call-agent.c (learn_cb): Special treatment when the issuer
1185         certificate is missing.
1186
1187 2002-08-10  Werner Koch  <wk@gnupg.org>
1188
1189         * Makefile.am (INCLUDES): Add definition for localedir.
1190
1191         * keylist.c (list_cert_colon): Print the short fingerprint in the
1192         key ID field.
1193         * fingerprint.c (gpgsm_get_short_fingerprint): New.
1194         * verify.c (gpgsm_verify): Print more verbose info for a good
1195         signature.
1196
1197 2002-08-09  Werner Koch  <wk@gnupg.org>
1198
1199         * decrypt.c (prepare_decryption): Hack to detected already
1200         unpkcsedone keys.
1201
1202         * gpgsm.c (emergency_cleanup): New.
1203         (main): Initialize the signal handler.
1204
1205         * sign.c (gpgsm_sign): Reset the hash context for subsequent
1206         signers and release it at the end.
1207
1208 2002-08-05  Werner Koch  <wk@gnupg.org>
1209
1210         * server.c (cmd_signer): New command "SIGNER"
1211         (register_commands): Register it.
1212         (cmd_sign): Pass the signer list to gpgsm_sign.
1213         * certlist.c (gpgsm_add_to_certlist): Add SECRET argument, check
1214         for secret key if set and changed all callers.
1215         * sign.c (gpgsm_sign): New argument SIGNERLIST and implemt
1216         multiple signers.
1217         * gpgsm.c (main): Support more than one -u.
1218         
1219         * server.c (cmd_recipient): Return reason code 1 for No_Public_Key
1220         which is actually what gets returned from add_to_certlist.
1221         
1222 2002-07-26  Werner Koch  <wk@gnupg.org>
1223
1224         * certcheck.c (gpgsm_check_cert_sig): Implement proper cleanup.
1225         (gpgsm_check_cms_signature): Ditto.
1226
1227 2002-07-22  Werner Koch  <wk@gnupg.org>
1228
1229         * keydb.c (keydb_add_resource): Register a lock file.
1230         (lock_all, unlock_all): Implemented.
1231
1232         * delete.c: New.
1233         * gpgsm.c: Made --delete-key work.
1234         * server.c (cmd_delkeys): New.
1235         (register_commands): New command DELKEYS.
1236
1237         * decrypt.c (gpgsm_decrypt): Print a convenience note when RC2 is
1238         used and a STATUS_ERROR with the algorithm oid.
1239
1240 2002-07-03  Werner Koch  <wk@gnupg.org>
1241
1242         * server.c (gpgsm_status2): Insert a blank between all optional
1243         arguments when using assuan.
1244         * server.c (cmd_recipient): No more need for extra blank in constants.
1245         * import.c (print_imported_status): Ditto.
1246         * gpgsm.c (main): Ditto.
1247
1248 2002-07-02  Werner Koch  <wk@gnupg.org>
1249
1250         * verify.c (gpgsm_verify): Extend the STATUS_BADSIG line with
1251         the fingerprint.
1252
1253         * certpath.c (check_cert_policy): Don't use log_error to print a
1254         warning.
1255
1256         * keydb.c (keydb_store_cert): Add optional ar EXISTED and changed
1257         all callers.
1258         * call-agent.c (learn_cb): Print info message only for real imports.
1259
1260         * import.c (gpgsm_import): Moved duplicated code to ...
1261         (check_and_store): new function.  Added magic to import the entire
1262         chain. Print status only for real imports and moved printing code
1263         to ..
1264         (print_imported_status): New.
1265
1266         * call-dirmngr.c (gpgsm_dirmngr_isvalid): print status of dirmngr
1267         call in very verbose mode.
1268
1269         * gpgsm.c (main): Use the same error codes for STATUS_INV_RECP as
1270         with the server mode.
1271
1272 2002-06-29  Werner Koch  <wk@gnupg.org>
1273
1274         * gpgsm.c: New option --auto-issuer-key-retrieve.
1275         * certpath.c (find_up): Try to retrieve an issuer key from an
1276         external source and from the ephemeral key DB.
1277         (find_up_store_certs_cb): New.
1278
1279         * keydb.c (keydb_set_ephemeral): Does now return the old
1280         state.  Call the backend only when required.
1281
1282         * call-dirmngr.c (start_dirmngr): Use GNUPG_DEFAULT_DIRMNGR.
1283         (lookup_status_cb): Issue status only when CTRL is not NULL.
1284         (gpgsm_dirmngr_lookup): Document that CTRL is optional.
1285
1286         * call-agent.c (start_agent): Use GNUPG_DEFAULT_AGENT.
1287
1288 2002-06-28  Werner Koch  <wk@gnupg.org>
1289
1290         * server.c (cmd_recipient): Add more reason codes.
1291
1292 2002-06-27  Werner Koch  <wk@gnupg.org>
1293
1294         * certpath.c (gpgsm_basic_cert_check): Use
1295         --debug-no-path-validation to also bypass this basic check.
1296
1297         * gpgsm.c (main): Use GNUPG_DEFAULT_HOMEDIR constant.
1298
1299         * call-agent.c (start_agent): Create and pass the list of FD to
1300         keep in the child to assuan.
1301         * call-dirmngr.c (start_dirmngr): Ditto.
1302
1303 2002-06-26  Werner Koch  <wk@gnupg.org>
1304
1305         * import.c (gpgsm_import): Print an STATUS_IMPORTED.
1306
1307         * gpgsm.c: --debug-no-path-validation does not take an argument.
1308
1309 2002-06-25  Werner Koch  <wk@gnupg.org>
1310
1311         * certdump.c (print_dn_part): Always print a leading slash,
1312         removed NEED_DELIM arg and changed caller.
1313
1314         * export.c (gpgsm_export): Print LFs to FP and not stdout.
1315         (print_short_info): Ditto.  Make use of gpgsm_print_name.
1316
1317         * server.c (cmd_export): Use output-fd instead of data lines; this
1318         was actually the specified way.
1319
1320 2002-06-24  Werner Koch  <wk@gnupg.org>
1321
1322         * gpgsm.c: Removed duped help entry for --list-keys.
1323         
1324         * gpgsm.c, gpgsm.h: New option --debug-no-path-validation.
1325
1326         * certpath.c (gpgsm_validate_path): Use it here instead of the
1327         debug flag hack.
1328
1329         * certpath.c (check_cert_policy): Return No_Policy_Match if the
1330         policy file could not be opened.
1331
1332 2002-06-20  Werner Koch  <wk@gnupg.org>
1333
1334         * certlist.c (gpgsm_add_to_certlist): Fixed locating of a
1335         certificate with the required key usage.
1336
1337         * gpgsm.c (main): Fixed a segv when using --outfile without an
1338         argument.
1339
1340         * keylist.c (print_capabilities): Also check for non-repudiation
1341         and data encipherment.
1342         * certlist.c (cert_usage_p): Test for signing and encryption was
1343         swapped.  Add a case for certification usage, handle
1344         non-repudiation and data encipherment.
1345         (gpgsm_cert_use_cert_p): New.
1346         (gpgsm_add_to_certlist): Added a CTRL argument and changed all
1347         callers to pass it.
1348         * certpath.c (gpgsm_validate_path): Use it here to print a status
1349         message. Added a CTRL argument and changed all callers to pass it.
1350         * decrypt.c (gpgsm_decrypt): Print a status message for wrong key
1351         usage.
1352         * verify.c (gpgsm_verify): Ditto.
1353         * keydb.c (classify_user_id): Allow a colon delimited fingerprint.
1354
1355 2002-06-19  Werner Koch  <wk@gnupg.org>
1356
1357         * call-agent.c (learn_cb): Use log_info instead of log_error on
1358         successful import.
1359
1360         * keydb.c (keydb_set_ephemeral): New.
1361         (keydb_store_cert): New are ephemeral, changed all callers.
1362         * keylist.c (list_external_cb): Store cert as ephemeral.
1363         * export.c (gpgsm_export): Kludge to export epehmeral certificates.
1364
1365         * gpgsm.c (main): New command --list-external-keys.
1366         
1367 2002-06-17  Werner Koch  <wk@gnupg.org>
1368
1369         * certreqgen.c (read_parameters): Improved error handling.
1370         (gpgsm_genkey): Print error message.
1371
1372 2002-06-13  Werner Koch  <wk@gnupg.org>
1373
1374         * gpgsm.c (main): New option --log-file.
1375
1376 2002-06-12  Werner Koch  <wk@gnupg.org>
1377
1378         * call-dirmngr.c (lookup_status_cb): New.
1379         (gpgsm_dirmngr_lookup): Use the status CB.  Add new arg CTRL and
1380         changed caller to pass it.
1381
1382         * gpgsm.c (open_fwrite): New.
1383         (main): Allow --output for --verify.
1384
1385         * sign.c (hash_and_copy_data): New.
1386         (gpgsm_sign): Implemented normal (non-detached) signatures.
1387         * gpgsm.c (main): Ditto.
1388         
1389         * certpath.c (gpgsm_validate_path): Special error handling for
1390         no policy match.
1391
1392 2002-06-10  Werner Koch  <wk@gnupg.org>
1393
1394         * server.c (get_status_string): Add STATUS_ERROR.
1395
1396         * certpath.c (gpgsm_validate_path): Tweaked the error checking to 
1397         return error codes in a more sensitive way.
1398         * verify.c (gpgsm_verify): Send status TRUST_NEVER also for a bad
1399         CA certificate and when the certificate has been revoked.  Issue
1400         TRUST_FULLY even when the cert has expired.  Append an error token
1401         to these status lines.  Issue the new generic error status when a
1402         cert was not found and when leaving the function.
1403
1404 2002-06-04  Werner Koch  <wk@gnupg.org>
1405
1406         * gpgsm.c (main): New command --list-sigs
1407         * keylist.c (list_cert_std): New.  Use it whenever colon mode is
1408         not used.
1409         (list_cert_chain): New.
1410
1411 2002-05-31  Werner Koch  <wk@gnupg.org>
1412
1413         * gpgsm.c (main): Don't print the "go ahead" message for an
1414         invalid command.
1415
1416 2002-05-23  Werner Koch  <wk@gnupg.org>
1417
1418         * import.c (gpgsm_import): Add error messages.
1419
1420 2002-05-21  Werner Koch  <wk@gnupg.org>
1421
1422         * keylist.c (list_internal_keys): Renamed from gpgsm_list_keys.
1423         (list_external_keys): New.
1424         (gpgsm_list_keys): Dispatcher for above.
1425         * call-dirmngr.c (lookup_cb,pattern_from_strlist)
1426         (gpgsm_dirmngr_lookup): New.
1427         * server.c (option_handler): Handle new option --list-mode.
1428         (do_listkeys): Handle options and actually use the mode argument.
1429         (get_status_string): New code TRUNCATED.
1430
1431         * import.c (gpgsm_import): Try to identify the type of input and
1432         handle certs-only messages.
1433
1434 2002-05-14  Werner Koch  <wk@gnupg.org>
1435
1436         * gpgsm.c: New option --faked-system-time
1437         * sign.c (gpgsm_sign): And use it here.
1438         * certpath.c (gpgsm_validate_path): Ditto.
1439
1440 2002-05-03  Werner Koch  <wk@gnupg.org>
1441
1442         * certpath.c (gpgsm_validate_path): Added EXPTIME arg and changed
1443         all callers.
1444         * verify.c (gpgsm_verify): Tweaked usage of log_debug and
1445         log_error.  Return EXPSIG status and add expiretime to VALIDSIG.
1446
1447 2002-04-26  Werner Koch  <wk@gnupg.org>
1448
1449         * gpgsm.h (DBG_AGENT,DBG_AGENT_VALUE): Replaced by DBG_ASSUAN_*.
1450         Changed all users.
1451
1452         * call-agent.c (start_agent): Be more silent without -v.
1453         * call-dirmngr.c (start_dirmngr): Ditto.
1454
1455 2002-04-25  Werner Koch  <wk@gnupg.org>
1456
1457         * call-agent.c (start_agent): Make copies of old locales and check
1458         for setlocale.
1459
1460 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
1461
1462         * call-agent.c (start_agent): Fix error handling logic so the
1463         locale is always correctly reset.
1464
1465 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
1466
1467         * server.c (option_handler): Accept display, ttyname, ttytype,
1468         lc_ctype and lc_messages options.
1469         * gpgsm.c (main): Allocate memory for these options.
1470         * gpgsm.h (struct opt): Make corresponding members non-const.
1471
1472 2002-04-24  Marcus Brinkmann  <marcus@g10code.de>
1473
1474         * gpgsm.h (struct opt): New members display, ttyname, ttytype,
1475         lc_ctype, lc_messages.
1476         * gpgsm.c (enum cmd_and_opt_values): New members oDisplay,
1477         oTTYname, oTTYtype, oLCctype, oLCmessages.
1478         (opts): New entries for these options.
1479         (main): Handle these new options.
1480         * call-agent.c (start_agent): Set the various display and tty
1481         parameter after resetting.
1482
1483 2002-04-18  Werner Koch  <wk@gnupg.org>
1484
1485         * certreqgen.c (gpgsm_genkey): Write status output on success.
1486
1487 2002-04-15  Werner Koch  <wk@gnupg.org>
1488
1489         * gpgsm.c (main): Check ksba version.
1490
1491         * certpath.c (find_up): New to use the authorithKeyIdentifier.
1492         Use it in all other functions to locate the signing cert..
1493
1494 2002-04-11  Werner Koch  <wk@gnupg.org>
1495
1496         * certlist.c (cert_usable_p): New.
1497         (gpgsm_cert_use_sign_p,gpgsm_cert_use_encrypt_p): New.
1498         (gpgsm_cert_use_verify_p,gpgsm_cert_use_decrypt_p): New.
1499         (gpgsm_add_to_certlist): Check the key usage.
1500         * sign.c (gpgsm_sign): Ditto.
1501         * verify.c (gpgsm_verify): Print a message wehn an unsuitable
1502         certificate was used.
1503         * decrypt.c (gpgsm_decrypt): Ditto
1504         * keylist.c (print_capabilities): Determine values from the cert.
1505
1506 2002-03-28  Werner Koch  <wk@gnupg.org>
1507
1508         * keylist.c (list_cert_colon): Fixed listing of crt record; the
1509         issuer is not at the right place.  Print a chainingID.
1510         * certpath.c (gpgsm_walk_cert_chain): Be a bit more silent on
1511         common errors.
1512
1513 2002-03-21  Werner Koch  <wk@gnupg.org>
1514
1515         * export.c: New.
1516         * gpgsm.c: Add command --export.
1517         * server.c (cmd_export): New.
1518         
1519 2002-03-13  Werner Koch  <wk@gnupg.org>
1520
1521         * decrypt.c (gpgsm_decrypt): Allow multiple recipients.
1522
1523 2002-03-12  Werner Koch  <wk@gnupg.org>
1524
1525         * certpath.c (check_cert_policy): Print the policy list.
1526
1527         * verify.c (gpgsm_verify): Detect certs-only message.
1528
1529 2002-03-11  Werner Koch  <wk@gnupg.org>
1530
1531         * import.c (gpgsm_import): Print a notice about imported certificates
1532         when in verbose mode.
1533
1534         * gpgsm.c (main): Print INV_RECP status.
1535         * server.c (cmd_recipient): Ditto.
1536
1537         * server.c (gpgsm_status2): New.  Allows for a list of strings.
1538         (gpgsm_status): Divert to gpgsm_status2.
1539
1540         * encrypt.c (gpgsm_encrypt): Don't use a default key when no
1541         recipients are given.  Print a NO_RECP status.
1542
1543 2002-03-06  Werner Koch  <wk@gnupg.org>
1544
1545         * server.c (cmd_listkeys, cmd_listsecretkeys): Divert to
1546         (do_listkeys): new.  Add pattern parsing.
1547
1548         * keylist.c (gpgsm_list_keys): Handle selection pattern.
1549
1550         * gpgsm.c: New command --learn-card
1551         * call-agent.c (learn_cb,gpgsm_agent_learn): New.
1552
1553         * gpgsm.c (main): Print error messages for non-implemented commands.
1554
1555         * base64.c (base64_reader_cb): Use case insensitive compare of the
1556         Content-Type string to detect plain base-64.
1557
1558 2002-03-05  Werner Koch  <wk@gnupg.org>
1559
1560         * gpgsm.c, gpgsm.h: Add local_user.
1561         * sign.c (gpgsm_get_default_cert): New.
1562         (get_default_signer): Use the new function if local_user is not
1563         set otherwise used that value.
1564         * encrypt.c (get_default_recipient): Removed.
1565         (gpgsm_encrypt): Use gpgsm_get_default_cert.
1566
1567         * verify.c (gpgsm_verify): Better error text for a bad signature
1568         found by comparing the hashs.
1569
1570 2002-02-27  Werner Koch  <wk@gnupg.org>
1571
1572         * call-dirmngr.c, call-agent.c: Add 2 more arguments to all uses
1573         of assuan_transact.
1574
1575 2002-02-25  Werner Koch  <wk@gnupg.org>
1576
1577         * server.c (option_handler): Allow to use -2 for "send all certs
1578         except the root cert".
1579         * sign.c (add_certificate_list): Implement it here.
1580         * certpath.c (gpgsm_is_root_cert): New.
1581
1582 2002-02-19  Werner Koch  <wk@gnupg.org>
1583
1584         * certpath.c (check_cert_policy): New.
1585         (gpgsm_validate_path): And call it from here.
1586         * gpgsm.c (main): New options --policy-file,
1587         --disable-policy-checks and --enable-policy-checks.
1588         * gpgsm.h (opt): Added policy_file, no_policy_checks.
1589
1590 2002-02-18  Werner Koch  <wk@gnupg.org>
1591
1592         * certpath.c (gpgsm_validate_path): Ask the agent to add the
1593         certificate into the trusted list.
1594         * call-agent.c (gpgsm_agent_marktrusted): New.
1595
1596 2002-02-07  Werner Koch  <wk@gnupg.org>
1597
1598         * certlist.c (gpgsm_add_to_certlist): Check that the specified
1599         name identifies a certificate unambiguously.
1600         (gpgsm_find_cert): Ditto.
1601
1602         * server.c (cmd_listkeys): Check that the data stream is available.
1603         (cmd_listsecretkeys): Ditto.
1604         (has_option): New.
1605         (cmd_sign): Fix ambiguousity in option recognition.
1606
1607         * gpgsm.c (main): Enable --logger-fd.
1608
1609         * encrypt.c (gpgsm_encrypt): Increased buffer size for better
1610         performance.
1611
1612         * call-agent.c (gpgsm_agent_pksign): Check the S-Exp received from
1613         the agent.
1614
1615         * keylist.c (list_cert_colon): Filter out control characters.
1616
1617 2002-02-06  Werner Koch  <wk@gnupg.org>
1618
1619         * decrypt.c (gpgsm_decrypt): Bail out after an decryption error.
1620
1621         * server.c (reset_notify): Close input and output FDs.
1622         (cmd_encrypt,cmd_decrypt,cmd_verify,cmd_sign.cmd_import)
1623         (cmd_genkey): Close the FDs and release the recipient list even in
1624         the error case.
1625
1626 2002-02-01  Marcus Brinkmann  <marcus@g10code.de>
1627
1628         * sign.c (gpgsm_sign): Do not release certificate twice.
1629
1630 2002-01-29  Werner Koch  <wk@gnupg.org>
1631
1632         * call-agent.c (gpgsm_agent_havekey): New.
1633         * keylist.c (list_cert_colon): New arg HAVE_SECRET, print "crs"
1634         when we know that the secret key is available.
1635         (gpgsm_list_keys): New arg MODE, check whether a secret key is
1636         available.  Changed all callers.
1637         * gpgsm.c (main): New command --list-secret-keys.
1638         * server.c (cmd_listsecretkeys): New.
1639         (cmd_listkeys): Return secret keys with "crs" record.
1640
1641 2002-01-28  Werner Koch  <wk@gnupg.org>
1642
1643         * certreqgen.c (create_request): Store the email address in the req.
1644
1645 2002-01-25  Werner Koch  <wk@gnupg.org>
1646
1647         * gpgsm.c (main): Disable core dumps.
1648
1649         * sign.c (add_certificate_list): New.
1650         (gpgsm_sign): Add the certificates to the CMS object.
1651         * certpath.c (gpgsm_walk_cert_chain): New.
1652         * gpgsm.h (server_control_s): Add included_certs.
1653         * gpgsm.c: Add option --include-certs.
1654         (gpgsm_init_default_ctrl): New.
1655         (main): Call it.
1656         * server.c (gpgsm_server): Ditto.
1657         (option_handler): Support --include-certs.
1658
1659 2002-01-23  Werner Koch  <wk@gnupg.org>
1660
1661         * certpath.c (gpgsm_validate_path): Print the DN of a missing issuer.
1662         * certdump.c (gpgsm_dump_string): New.
1663         (print_dn): Replaced by above.
1664
1665 2002-01-22  Werner Koch  <wk@gnupg.org>
1666
1667         * certpath.c (unknown_criticals): New.
1668         (allowed_ca): New.
1669         (gpgsm_validate_path): Check validity, CA attribute, path length
1670         and unknown critical extensions.
1671
1672 2002-01-21  Werner Koch  <wk@gnupg.org>
1673
1674         * gpgsm.c: Add option --enable-crl-checks.
1675
1676         * call-agent.c (start_agent): Implemented socket based access.
1677         * call-dirmngr.c (start_dirmngr): Ditto.
1678
1679 2002-01-20  Werner Koch  <wk@gnupg.org>
1680
1681         * server.c (option_handler): New.
1682         (gpgsm_server): Register it with assuan.
1683
1684 2002-01-19  Werner Koch  <wk@gnupg.org>
1685
1686         * server.c (gpgsm_server): Use assuan_deinit_server and setup
1687         assuan logging if enabled.
1688         * call-agent.c (inq_ciphertext_cb): Don't show the session key in
1689         an Assuan log file.
1690
1691         * gpgsm.c (my_strusage): Take bugreport address from configure.ac
1692
1693 2002-01-15  Werner Koch  <wk@gnupg.org>
1694
1695         * import.c (gpgsm_import): Just do a basic cert check before
1696         storing it.
1697         * certpath.c (gpgsm_basic_cert_check): New.
1698
1699         * keydb.c (keydb_store_cert): New.
1700         * import.c (store_cert): Removed and change all caller to use
1701         the new function.
1702         * verify.c (store_cert): Ditto.
1703
1704         * certlist.c (gpgsm_add_to_certlist): Validate the path
1705
1706         * certpath.c (gpgsm_validate_path): Check the trust list.
1707         * call-agent.c (gpgsm_agent_istrusted): New.
1708
1709 2002-01-14  Werner Koch  <wk@gnupg.org>
1710
1711         * call-dirmngr.c (inq_certificate): Changed for new interface semantic.
1712         * certlist.c (gpgsm_find_cert): New.
1713
1714 2002-01-13  Werner Koch  <wk@gnupg.org>
1715
1716         * fingerprint.c (gpgsm_get_certid): Print the serial and not the
1717         hash after the dot.
1718
1719 2002-01-11  Werner Koch  <wk@gnupg.org>
1720
1721         * call-dirmngr.c: New.
1722         * certpath.c (gpgsm_validate_path): Check the CRL here.
1723         * fingerprint.c (gpgsm_get_certid): New.
1724         * gpgsm.c: New options --dirmngr-program and --disable-crl-checks.
1725
1726 2002-01-10  Werner Koch  <wk@gnupg.org>
1727
1728         * base64.c (gpgsm_create_writer): Allow to set the object name
1729
1730 2002-01-08  Werner Koch  <wk@gnupg.org>
1731
1732         * keydb.c (spacep): Removed because it is now in util.c
1733
1734         * server.c (cmd_genkey): New.
1735         * certreqgen.c: New.  The parameter handling code has been taken
1736         from gnupg/g10/keygen.c version 1.0.6.
1737         * call-agent.c (gpgsm_agent_genkey): New.
1738
1739 2002-01-02  Werner Koch  <wk@gnupg.org>
1740
1741         * server.c (rc_to_assuan_status): Removed and changed all callers
1742         to use map_to_assuan_status.
1743
1744 2001-12-20  Werner Koch  <wk@gnupg.org>
1745
1746         * verify.c (gpgsm_verify): Implemented non-detached signature
1747         verification.  Add OUT_FP arg, initialize a writer and changed all
1748         callers.
1749         * server.c (cmd_verify): Pass an out_fp if one has been set.
1750
1751         * base64.c (base64_reader_cb): Try to detect an S/MIME body part.
1752
1753         * certdump.c (print_sexp): Renamed to gpgsm_dump_serial, made
1754         global.
1755         (print_time): Renamed to gpgsm_dump_time, made global.
1756         (gpgsm_dump_serial): Take a real S-Expression as argument and
1757         print the first item.
1758         * keylist.c (list_cert_colon): Ditto.
1759         * keydb.c (keydb_search_issuer_sn): Ditto.
1760         * decrypt.c (print_integer_sexp): Removed and made callers 
1761         use gpgsm_dump_serial.
1762         * verify.c (print_time): Removed, made callers use gpgsm_dump_time.
1763         
1764 2001-12-19  Marcus Brinkmann  <marcus@g10code.de>
1765
1766         * call-agent.c (start_agent): Add new argument to assuan_pipe_connect.
1767
1768 2001-12-18  Werner Koch  <wk@gnupg.org>
1769
1770         * verify.c (print_integer_sexp): Renamed from print_integer and
1771         print the serial number according to the S-Exp rules.
1772         * decrypt.c (print_integer_sexp): Ditto.
1773
1774 2001-12-17  Werner Koch  <wk@gnupg.org>
1775
1776         * keylist.c (list_cert_colon): Changed for new return value of
1777         get_serial.
1778         * keydb.c (keydb_search_issuer_sn): Ditto.
1779         * certcheck.c (gpgsm_check_cert_sig): Likewise for other S-Exp
1780         returingin functions.
1781         * fingerprint.c (gpgsm_get_keygrip): Ditto.
1782         * encrypt.c (encrypt_dek): Ditto
1783         * certcheck.c (gpgsm_check_cms_signature): Ditto
1784         * decrypt.c (prepare_decryption): Ditto.
1785         * call-agent.c (gpgsm_agent_pkdecrypt): Removed arg ciphertextlen,
1786         use KsbaSexp type and calculate the length.
1787
1788         * certdump.c (print_sexp): Remaned from print_integer, changed caller.
1789
1790         * Makefile.am: Use the LIBGCRYPT and LIBKSBA variables.
1791
1792         * fingerprint.c (gpgsm_get_keygrip): Use the new
1793         gcry_pk_get_keygrip to calculate the grip - note the algorithm and
1794         therefore the grip values changed.
1795
1796 2001-12-15  Werner Koch  <wk@gnupg.org>
1797
1798         * certcheck.c (gpgsm_check_cms_signature): Removed the faked-key
1799         kludge.
1800         (gpgsm_create_cms_signature): Removed the commented fake key
1801         code.  This makes the function pretty simple.
1802
1803         * gpgsm.c (main): Renamed the default key database to "keyring.kbx".
1804
1805         * decrypt.c (gpgsm_decrypt): Write STATUS_DECRYPTION_*.
1806         * sign.c (gpgsm_sign): Write a STATUS_SIG_CREATED.
1807
1808 2001-12-14  Werner Koch  <wk@gnupg.org>
1809
1810         * keylist.c (list_cert_colon): Kludge to show an email address
1811         encoded in the subject's DN.
1812
1813         * verify.c (gpgsm_verify): Add hash debug helpers
1814         * sign.c (gpgsm_sign): Ditto.
1815
1816         * base64.c (base64_reader_cb): Reset the linelen when we need to
1817         skip the line and adjusted test; I somehow forgot about DeMorgan.
1818
1819         * server.c (cmd_encrypt,cmd_decrypt,cmd_sign,cmd_verify) 
1820         (cmd_import): Close the FDs on success.
1821         (close_message_fd): New.
1822         (input_notify): Setting autodetect_encoding to 0 after initializing
1823         it to 0 is pretty pointless.  Easy to fix.
1824
1825         * gpgsm.c (main): New option --debug-wait n, so that it is
1826         possible to attach gdb when used in server mode.
1827
1828         * sign.c (get_default_signer): Use keydb_classify_name here.
1829
1830 2001-12-14  Marcus Brinkmann  <marcus@g10code.de>
1831
1832         * call-agent.c (LINELENGTH): Removed.
1833         (gpgsm_agent_pksign): Use ASSUAN_LINELENGTH, not LINELENGTH.
1834         (gpgsm_agent_pkdecrypt): Likewise.
1835
1836 2001-12-13  Werner Koch  <wk@gnupg.org>
1837
1838         * keylist.c (list_cert_colon): Print alternative names of subject
1839         and a few other values.
1840
1841 2001-12-12  Werner Koch  <wk@gnupg.org>
1842
1843         * gpgsm.c (main): New options --assume-{armor,base64,binary}. 
1844         * base64.c (base64_reader_cb): Fixed non-autodetection mode.
1845
1846 2001-12-04  Werner Koch  <wk@gnupg.org>
1847
1848         * call-agent.c (read_from_agent): Check for inquire responses.
1849         (request_reply): Handle them using a new callback arg, changed all
1850         callers.
1851         (gpgsm_agent_pkdecrypt): New.
1852
1853 2001-11-27  Werner Koch  <wk@gnupg.org>
1854
1855         * base64.c: New.  Changed all other functions to use this instead
1856         of direct creation of ksba_reader/writer.
1857         * gpgsm.c (main): Set ctrl.auto_encoding unless --no-armor is used.
1858
1859 2001-11-26  Werner Koch  <wk@gnupg.org>
1860
1861         * gpgsm.c: New option --agent-program
1862         * call-agent.c (start_agent): Allow to override the default path
1863         to the agent.
1864
1865         * keydb.c (keydb_add_resource): Create keybox
1866
1867         * keylist.c (gpgsm_list_keys): Fixed non-server keylisting.
1868
1869         * server.c (rc_to_assuan_status): New.  Use it for all commands.
1870
1871         
1872  Copyright 2001, 2002, 2003, 2004, 2005,
1873            2006 Free Software Foundation, Inc.
1874
1875  This file is free software; as a special exception the author gives
1876  unlimited permission to copy and/or distribute it, with or without
1877  modifications, as long as this notice is preserved.
1878
1879  This file is distributed in the hope that it will be useful, but
1880  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
1881  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.