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