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