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