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