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