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