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