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