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