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