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