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