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