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