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