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