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