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