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