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