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