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