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