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