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