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