* keygen.c (ask_key_flags): New. (ask_algo): Call it here in --expert mode
[gnupg.git] / sm / ChangeLog
1 2003-07-31  Werner Koch  <wk@gnupg.org>
2
3         * Makefile.am (gpgsm_LDADD): Added INTLLIBS.
4
5 2003-07-29  Werner Koch  <wk@gnupg.org>
6
7         * gpgsm.c (main): Add secmem features and set the random seed file.
8         (gpgsm_exit): Update the random seed file and enable debug output.
9
10 2003-07-27  Werner Koch  <wk@gnupg.org>
11
12         Adjusted for gcry_mpi_print and gcry_mpi_scan API change.
13
14 2003-06-24  Werner Koch  <wk@gnupg.org>
15
16         * server.c (gpgsm_status_with_err_code): New.
17         * verify.c (gpgsm_verify): Use it here instead of the old
18         tokenizing version.
19
20         * verify.c (strtimestamp): Renamed to strtimestamp_r
21
22         Adjusted for changes in the libgcrypt API. Some more fixes for the
23         libgpg-error stuff.  
24
25 2003-06-04  Werner Koch  <wk@gnupg.org>
26
27         * call-agent.c (init_membuf,put_membuf,get_membuf): Removed.
28         Include new membuf header and changed used type.
29
30         Renamed error codes from INVALID to INV and removed _ERROR suffixes.
31
32 2003-06-03  Werner Koch  <wk@gnupg.org>
33
34         Changed all error codes in all files to the new libgpg-error scheme.
35
36         * gpgsm.h: Include gpg-error.h .
37         * Makefile.am: Link with libgpg-error.
38
39 2003-04-29  Werner Koch  <wk@gnupg.org>
40
41         * Makefile.am: Use libassuan.  Don't override LDFLAGS anymore.
42         * server.c (register_commands): Adjust for new Assuan semantics.
43
44 2002-12-03  Werner Koch  <wk@gnupg.org>
45
46         * call-agent.c (gpgsm_agent_passwd): New.
47         * gpgsm.c (main): New command --passwd and --call-protect-tool
48         (run_protect_tool): New.
49
50 2002-11-25  Werner Koch  <wk@gnupg.org>
51
52         * verify.c (gpgsm_verify): Handle content-type attribute. 
53
54 2002-11-13  Werner Koch  <wk@gnupg.org>
55
56         * call-agent.c (start_agent): Try to use $GPG_TTY instead of
57         ttyname.  Changed ttyname to test stdin becuase it can be assumed
58         that output redirection is more common that input redirection.
59
60 2002-11-12  Werner Koch  <wk@gnupg.org>
61
62         * gpgsm.c: New command --call-dirmngr. 
63         * call-dirmngr.c (gpgsm_dirmngr_run_command)
64         (run_command_inq_cb,run_command_cb)
65         (run_command_status_cb): New.
66
67 2002-11-11  Werner Koch  <wk@gnupg.org>
68
69         * certcheck.c (gpgsm_check_cms_signature): Don't double free
70         s_sig but free s_pkey at leave.
71
72 2002-11-10  Werner Koch  <wk@gnupg.org>
73
74         * gpgsm.c: Removed duplicate --list-secret-key entry.
75
76 2002-09-19  Werner Koch  <wk@gnupg.org>
77
78         * certcheck.c (gpgsm_check_cert_sig): Add cert hash debugging.
79
80         * certchain.c (find_up): Print info when the cert was not found 
81         by the autorithyKeyIdentifier.
82
83 2002-09-03  Werner Koch  <wk@gnupg.org>
84
85         * gpgsm.c (main): Disable the internal libgcrypt locking.
86
87 2002-08-21  Werner Koch  <wk@gnupg.org>
88
89         * import.c (print_imported_summary): Cleaned up.  Print new
90         not_imported value.
91         (check_and_store): Update non_imported counter.
92         (print_import_problem): New.
93         (check_and_store): Print error status message.
94         * server.c (get_status_string): Added STATUS_IMPORT_PROBLEM.
95
96 2002-08-20  Werner Koch  <wk@gnupg.org>
97
98         * gpgsm.c (main): Use the log file only in server mode.
99
100         * import.c (print_imported_summary): New.
101         (check_and_store): Update the counters, take new argument.
102         (import_one): Factored out core of gpgsm_import.
103         (gpgsm_import): Print counters.
104         (gpgsm_import_files): New.
105         * gpgsm.c (main): Use the new function for import.
106
107 2002-08-19  Werner Koch  <wk@gnupg.org>
108
109         * decrypt.c (gpgsm_decrypt): Return a better error status token.
110         * verify.c (gpgsm_verify): Don't error on messages with no signing
111         time or no message digest.  This is only the case for messages
112         without any signed attributes.
113
114 2002-08-16  Werner Koch  <wk@gnupg.org>
115
116         * certpath.c: Renamed to ..
117         * certchain.c: this. Renamed all all other usages of "path" in the
118         context of certificates to "chain".
119
120         * call-agent.c (learn_cb): Special treatment when the issuer
121         certificate is missing.
122
123 2002-08-10  Werner Koch  <wk@gnupg.org>
124
125         * Makefile.am (INCLUDES): Add definition for localedir.
126
127         * keylist.c (list_cert_colon): Print the short fingerprint in the
128         key ID field.
129         * fingerprint.c (gpgsm_get_short_fingerprint): New.
130         * verify.c (gpgsm_verify): Print more verbose info for a good
131         signature.
132
133 2002-08-09  Werner Koch  <wk@gnupg.org>
134
135         * decrypt.c (prepare_decryption): Hack to detected already
136         unpkcsedone keys.
137
138         * gpgsm.c (emergency_cleanup): New.
139         (main): Initialize the signal handler.
140
141         * sign.c (gpgsm_sign): Reset the hash context for subsequent
142         signers and release it at the end.
143
144 2002-08-05  Werner Koch  <wk@gnupg.org>
145
146         * server.c (cmd_signer): New command "SIGNER"
147         (register_commands): Register it.
148         (cmd_sign): Pass the signer list to gpgsm_sign.
149         * certlist.c (gpgsm_add_to_certlist): Add SECRET argument, check
150         for secret key if set and changed all callers.
151         * sign.c (gpgsm_sign): New argument SIGNERLIST and implemt
152         multiple signers.
153         * gpgsm.c (main): Support more than one -u.
154         
155         * server.c (cmd_recipient): Return reason code 1 for No_Public_Key
156         which is actually what gets returned from add_to_certlist.
157         
158 2002-07-26  Werner Koch  <wk@gnupg.org>
159
160         * certcheck.c (gpgsm_check_cert_sig): Implement proper cleanup.
161         (gpgsm_check_cms_signature): Ditto.
162
163 2002-07-22  Werner Koch  <wk@gnupg.org>
164
165         * keydb.c (keydb_add_resource): Register a lock file.
166         (lock_all, unlock_all): Implemented.
167
168         * delete.c: New.
169         * gpgsm.c: Made --delete-key work.
170         * server.c (cmd_delkeys): New.
171         (register_commands): New command DELKEYS.
172
173         * decrypt.c (gpgsm_decrypt): Print a convenience note when RC2 is
174         used and a STATUS_ERROR with the algorithm oid.
175
176 2002-07-03  Werner Koch  <wk@gnupg.org>
177
178         * server.c (gpgsm_status2): Insert a blank between all optional
179         arguments when using assuan.
180         * server.c (cmd_recipient): No more need for extra blank in constants.
181         * import.c (print_imported_status): Ditto.
182         * gpgsm.c (main): Ditto.
183
184 2002-07-02  Werner Koch  <wk@gnupg.org>
185
186         * verify.c (gpgsm_verify): Extend the STATUS_BADSIG line with
187         the fingerprint.
188
189         * certpath.c (check_cert_policy): Don't use log_error to print a
190         warning.
191
192         * keydb.c (keydb_store_cert): Add optional ar EXISTED and changed
193         all callers.
194         * call-agent.c (learn_cb): Print info message only for real imports.
195
196         * import.c (gpgsm_import): Moved duplicated code to ...
197         (check_and_store): new function.  Added magic to import the entire
198         chain. Print status only for real imports and moved printing code
199         to ..
200         (print_imported_status): New.
201
202         * call-dirmngr.c (gpgsm_dirmngr_isvalid): print status of dirmngr
203         call in very verbose mode.
204
205         * gpgsm.c (main): Use the same error codes for STATUS_INV_RECP as
206         with the server mode.
207
208 2002-06-29  Werner Koch  <wk@gnupg.org>
209
210         * gpgsm.c: New option --auto-issuer-key-retrieve.
211         * certpath.c (find_up): Try to retrieve an issuer key from an
212         external source and from the ephemeral key DB.
213         (find_up_store_certs_cb): New.
214
215         * keydb.c (keydb_set_ephemeral): Does now return the old
216         state.  Call the backend only when required.
217
218         * call-dirmngr.c (start_dirmngr): Use GNUPG_DEFAULT_DIRMNGR.
219         (lookup_status_cb): Issue status only when CTRL is not NULL.
220         (gpgsm_dirmngr_lookup): Document that CTRL is optional.
221
222         * call-agent.c (start_agent): Use GNUPG_DEFAULT_AGENT.
223
224 2002-06-28  Werner Koch  <wk@gnupg.org>
225
226         * server.c (cmd_recipient): Add more reason codes.
227
228 2002-06-27  Werner Koch  <wk@gnupg.org>
229
230         * certpath.c (gpgsm_basic_cert_check): Use
231         --debug-no-path-validation to also bypass this basic check.
232
233         * gpgsm.c (main): Use GNUPG_DEFAULT_HOMEDIR constant.
234
235         * call-agent.c (start_agent): Create and pass the list of FD to
236         keep in the child to assuan.
237         * call-dirmngr.c (start_dirmngr): Ditto.
238
239 2002-06-26  Werner Koch  <wk@gnupg.org>
240
241         * import.c (gpgsm_import): Print an STATUS_IMPORTED.
242
243         * gpgsm.c: --debug-no-path-validation does not take an argument.
244
245 2002-06-25  Werner Koch  <wk@gnupg.org>
246
247         * certdump.c (print_dn_part): Always print a leading slash,
248         removed NEED_DELIM arg and changed caller.
249
250         * export.c (gpgsm_export): Print LFs to FP and not stdout.
251         (print_short_info): Ditto.  Make use of gpgsm_print_name.
252
253         * server.c (cmd_export): Use output-fd instead of data lines; this
254         was actually the specified way.
255
256 2002-06-24  Werner Koch  <wk@gnupg.org>
257
258         * gpgsm.c: Removed duped help entry for --list-keys.
259         
260         * gpgsm.c, gpgsm.h: New option --debug-no-path-validation.
261
262         * certpath.c (gpgsm_validate_path): Use it here instead of the
263         debug flag hack.
264
265         * certpath.c (check_cert_policy): Return No_Policy_Match if the
266         policy file could not be opened.
267
268 2002-06-20  Werner Koch  <wk@gnupg.org>
269
270         * certlist.c (gpgsm_add_to_certlist): Fixed locating of a
271         certificate with the required key usage.
272
273         * gpgsm.c (main): Fixed a segv when using --outfile without an
274         argument.
275
276         * keylist.c (print_capabilities): Also check for non-repudiation
277         and data encipherment.
278         * certlist.c (cert_usage_p): Test for signing and encryption was
279         swapped.  Add a case for certification usage, handle
280         non-repudiation and data encipherment.
281         (gpgsm_cert_use_cert_p): New.
282         (gpgsm_add_to_certlist): Added a CTRL argument and changed all
283         callers to pass it.
284         * certpath.c (gpgsm_validate_path): Use it here to print a status
285         message. Added a CTRL argument and changed all callers to pass it.
286         * decrypt.c (gpgsm_decrypt): Print a status message for wrong key
287         usage.
288         * verify.c (gpgsm_verify): Ditto.
289         * keydb.c (classify_user_id): Allow a colon delimited fingerprint.
290
291 2002-06-19  Werner Koch  <wk@gnupg.org>
292
293         * call-agent.c (learn_cb): Use log_info instead of log_error on
294         successful import.
295
296         * keydb.c (keydb_set_ephemeral): New.
297         (keydb_store_cert): New are ephemeral, changed all callers.
298         * keylist.c (list_external_cb): Store cert as ephemeral.
299         * export.c (gpgsm_export): Kludge to export epehmeral certificates.
300
301         * gpgsm.c (main): New command --list-external-keys.
302         
303 2002-06-17  Werner Koch  <wk@gnupg.org>
304
305         * certreqgen.c (read_parameters): Improved error handling.
306         (gpgsm_genkey): Print error message.
307
308 2002-06-13  Werner Koch  <wk@gnupg.org>
309
310         * gpgsm.c (main): New option --log-file.
311
312 2002-06-12  Werner Koch  <wk@gnupg.org>
313
314         * call-dirmngr.c (lookup_status_cb): New.
315         (gpgsm_dirmngr_lookup): Use the status CB.  Add new arg CTRL and
316         changed caller to pass it.
317
318         * gpgsm.c (open_fwrite): New.
319         (main): Allow --output for --verify.
320
321         * sign.c (hash_and_copy_data): New.
322         (gpgsm_sign): Implemented normal (non-detached) signatures.
323         * gpgsm.c (main): Ditto.
324         
325         * certpath.c (gpgsm_validate_path): Special error handling for
326         no policy match.
327
328 2002-06-10  Werner Koch  <wk@gnupg.org>
329
330         * server.c (get_status_string): Add STATUS_ERROR.
331
332         * certpath.c (gpgsm_validate_path): Tweaked the error checking to 
333         return error codes in a more sensitive way.
334         * verify.c (gpgsm_verify): Send status TRUST_NEVER also for a bad
335         CA certificate and when the certificate has been revoked.  Issue
336         TRUST_FULLY even when the cert has expired.  Append an error token
337         to these status lines.  Issue the new generic error status when a
338         cert was not found and when leaving the function.
339
340 2002-06-04  Werner Koch  <wk@gnupg.org>
341
342         * gpgsm.c (main): New command --list-sigs
343         * keylist.c (list_cert_std): New.  Use it whenever colon mode is
344         not used.
345         (list_cert_chain): New.
346
347 2002-05-31  Werner Koch  <wk@gnupg.org>
348
349         * gpgsm.c (main): Don't print the "go ahead" message for an
350         invalid command.
351
352 2002-05-23  Werner Koch  <wk@gnupg.org>
353
354         * import.c (gpgsm_import): Add error messages.
355
356 2002-05-21  Werner Koch  <wk@gnupg.org>
357
358         * keylist.c (list_internal_keys): Renamed from gpgsm_list_keys.
359         (list_external_keys): New.
360         (gpgsm_list_keys): Dispatcher for above.
361         * call-dirmngr.c (lookup_cb,pattern_from_strlist)
362         (gpgsm_dirmngr_lookup): New.
363         * server.c (option_handler): Handle new option --list-mode.
364         (do_listkeys): Handle options and actually use the mode argument.
365         (get_status_string): New code TRUNCATED.
366
367         * import.c (gpgsm_import): Try to identify the type of input and
368         handle certs-only messages.
369
370 2002-05-14  Werner Koch  <wk@gnupg.org>
371
372         * gpgsm.c: New option --faked-system-time
373         * sign.c (gpgsm_sign): And use it here.
374         * certpath.c (gpgsm_validate_path): Ditto.
375
376 2002-05-03  Werner Koch  <wk@gnupg.org>
377
378         * certpath.c (gpgsm_validate_path): Added EXPTIME arg and changed
379         all callers.
380         * verify.c (gpgsm_verify): Tweaked usage of log_debug and
381         log_error.  Return EXPSIG status and add expiretime to VALIDSIG.
382
383 2002-04-26  Werner Koch  <wk@gnupg.org>
384
385         * gpgsm.h (DBG_AGENT,DBG_AGENT_VALUE): Replaced by DBG_ASSUAN_*.
386         Changed all users.
387
388         * call-agent.c (start_agent): Be more silent without -v.
389         * call-dirmngr.c (start_dirmngr): Ditto.
390
391 2002-04-25  Werner Koch  <wk@gnupg.org>
392
393         * call-agent.c (start_agent): Make copies of old locales and check
394         for setlocale.
395
396 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
397
398         * call-agent.c (start_agent): Fix error handling logic so the
399         locale is always correctly reset.
400
401 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
402
403         * server.c (option_handler): Accept display, ttyname, ttytype,
404         lc_ctype and lc_messages options.
405         * gpgsm.c (main): Allocate memory for these options.
406         * gpgsm.h (struct opt): Make corresponding members non-const.
407
408 2002-04-24  Marcus Brinkmann  <marcus@g10code.de>
409
410         * gpgsm.h (struct opt): New members display, ttyname, ttytype,
411         lc_ctype, lc_messages.
412         * gpgsm.c (enum cmd_and_opt_values): New members oDisplay,
413         oTTYname, oTTYtype, oLCctype, oLCmessages.
414         (opts): New entries for these options.
415         (main): Handle these new options.
416         * call-agent.c (start_agent): Set the various display and tty
417         parameter after resetting.
418
419 2002-04-18  Werner Koch  <wk@gnupg.org>
420
421         * certreqgen.c (gpgsm_genkey): Write status output on success.
422
423 2002-04-15  Werner Koch  <wk@gnupg.org>
424
425         * gpgsm.c (main): Check ksba version.
426
427         * certpath.c (find_up): New to use the authorithKeyIdentifier.
428         Use it in all other functions to locate the signing cert..
429
430 2002-04-11  Werner Koch  <wk@gnupg.org>
431
432         * certlist.c (cert_usable_p): New.
433         (gpgsm_cert_use_sign_p,gpgsm_cert_use_encrypt_p): New.
434         (gpgsm_cert_use_verify_p,gpgsm_cert_use_decrypt_p): New.
435         (gpgsm_add_to_certlist): Check the key usage.
436         * sign.c (gpgsm_sign): Ditto.
437         * verify.c (gpgsm_verify): Print a message wehn an unsuitable
438         certificate was used.
439         * decrypt.c (gpgsm_decrypt): Ditto
440         * keylist.c (print_capabilities): Determine values from the cert.
441
442 2002-03-28  Werner Koch  <wk@gnupg.org>
443
444         * keylist.c (list_cert_colon): Fixed listing of crt record; the
445         issuer is not at the right place.  Print a chainingID.
446         * certpath.c (gpgsm_walk_cert_chain): Be a bit more silent on
447         common errors.
448
449 2002-03-21  Werner Koch  <wk@gnupg.org>
450
451         * export.c: New.
452         * gpgsm.c: Add command --export.
453         * server.c (cmd_export): New.
454         
455 2002-03-13  Werner Koch  <wk@gnupg.org>
456
457         * decrypt.c (gpgsm_decrypt): Allow multiple recipients.
458
459 2002-03-12  Werner Koch  <wk@gnupg.org>
460
461         * certpath.c (check_cert_policy): Print the policy list.
462
463         * verify.c (gpgsm_verify): Detect certs-only message.
464
465 2002-03-11  Werner Koch  <wk@gnupg.org>
466
467         * import.c (gpgsm_import): Print a notice about imported certificates
468         when in verbose mode.
469
470         * gpgsm.c (main): Print INV_RECP status.
471         * server.c (cmd_recipient): Ditto.
472
473         * server.c (gpgsm_status2): New.  Allows for a list of strings.
474         (gpgsm_status): Divert to gpgsm_status2.
475
476         * encrypt.c (gpgsm_encrypt): Don't use a default key when no
477         recipients are given.  Print a NO_RECP status.
478
479 2002-03-06  Werner Koch  <wk@gnupg.org>
480
481         * server.c (cmd_listkeys, cmd_listsecretkeys): Divert to
482         (do_listkeys): new.  Add pattern parsing.
483
484         * keylist.c (gpgsm_list_keys): Handle selection pattern.
485
486         * gpgsm.c: New command --learn-card
487         * call-agent.c (learn_cb,gpgsm_agent_learn): New.
488
489         * gpgsm.c (main): Print error messages for non-implemented commands.
490
491         * base64.c (base64_reader_cb): Use case insensitive compare of the
492         Content-Type string to detect plain base-64.
493
494 2002-03-05  Werner Koch  <wk@gnupg.org>
495
496         * gpgsm.c, gpgsm.h: Add local_user.
497         * sign.c (gpgsm_get_default_cert): New.
498         (get_default_signer): Use the new function if local_user is not
499         set otherwise used that value.
500         * encrypt.c (get_default_recipient): Removed.
501         (gpgsm_encrypt): Use gpgsm_get_default_cert.
502
503         * verify.c (gpgsm_verify): Better error text for a bad signature
504         found by comparing the hashs.
505
506 2002-02-27  Werner Koch  <wk@gnupg.org>
507
508         * call-dirmngr.c, call-agent.c: Add 2 more arguments to all uses
509         of assuan_transact.
510
511 2002-02-25  Werner Koch  <wk@gnupg.org>
512
513         * server.c (option_handler): Allow to use -2 for "send all certs
514         except the root cert".
515         * sign.c (add_certificate_list): Implement it here.
516         * certpath.c (gpgsm_is_root_cert): New.
517
518 2002-02-19  Werner Koch  <wk@gnupg.org>
519
520         * certpath.c (check_cert_policy): New.
521         (gpgsm_validate_path): And call it from here.
522         * gpgsm.c (main): New options --policy-file,
523         --disable-policy-checks and --enable-policy-checks.
524         * gpgsm.h (opt): Added policy_file, no_policy_checks.
525
526 2002-02-18  Werner Koch  <wk@gnupg.org>
527
528         * certpath.c (gpgsm_validate_path): Ask the agent to add the
529         certificate into the trusted list.
530         * call-agent.c (gpgsm_agent_marktrusted): New.
531
532 2002-02-07  Werner Koch  <wk@gnupg.org>
533
534         * certlist.c (gpgsm_add_to_certlist): Check that the specified
535         name identifies a certificate unambiguously.
536         (gpgsm_find_cert): Ditto.
537
538         * server.c (cmd_listkeys): Check that the data stream is available.
539         (cmd_listsecretkeys): Ditto.
540         (has_option): New.
541         (cmd_sign): Fix ambiguousity in option recognition.
542
543         * gpgsm.c (main): Enable --logger-fd.
544
545         * encrypt.c (gpgsm_encrypt): Increased buffer size for better
546         performance.
547
548         * call-agent.c (gpgsm_agent_pksign): Check the S-Exp received from
549         the agent.
550
551         * keylist.c (list_cert_colon): Filter out control characters.
552
553 2002-02-06  Werner Koch  <wk@gnupg.org>
554
555         * decrypt.c (gpgsm_decrypt): Bail out after an decryption error.
556
557         * server.c (reset_notify): Close input and output FDs.
558         (cmd_encrypt,cmd_decrypt,cmd_verify,cmd_sign.cmd_import)
559         (cmd_genkey): Close the FDs and release the recipient list even in
560         the error case.
561
562 2002-02-01  Marcus Brinkmann  <marcus@g10code.de>
563
564         * sign.c (gpgsm_sign): Do not release certificate twice.
565
566 2002-01-29  Werner Koch  <wk@gnupg.org>
567
568         * call-agent.c (gpgsm_agent_havekey): New.
569         * keylist.c (list_cert_colon): New arg HAVE_SECRET, print "crs"
570         when we know that the secret key is available.
571         (gpgsm_list_keys): New arg MODE, check whether a secret key is
572         available.  Changed all callers.
573         * gpgsm.c (main): New command --list-secret-keys.
574         * server.c (cmd_listsecretkeys): New.
575         (cmd_listkeys): Return secret keys with "crs" record.
576
577 2002-01-28  Werner Koch  <wk@gnupg.org>
578
579         * certreqgen.c (create_request): Store the email address in the req.
580
581 2002-01-25  Werner Koch  <wk@gnupg.org>
582
583         * gpgsm.c (main): Disable core dumps.
584
585         * sign.c (add_certificate_list): New.
586         (gpgsm_sign): Add the certificates to the CMS object.
587         * certpath.c (gpgsm_walk_cert_chain): New.
588         * gpgsm.h (server_control_s): Add included_certs.
589         * gpgsm.c: Add option --include-certs.
590         (gpgsm_init_default_ctrl): New.
591         (main): Call it.
592         * server.c (gpgsm_server): Ditto.
593         (option_handler): Support --include-certs.
594
595 2002-01-23  Werner Koch  <wk@gnupg.org>
596
597         * certpath.c (gpgsm_validate_path): Print the DN of a missing issuer.
598         * certdump.c (gpgsm_dump_string): New.
599         (print_dn): Replaced by above.
600
601 2002-01-22  Werner Koch  <wk@gnupg.org>
602
603         * certpath.c (unknown_criticals): New.
604         (allowed_ca): New.
605         (gpgsm_validate_path): Check validity, CA attribute, path length
606         and unknown critical extensions.
607
608 2002-01-21  Werner Koch  <wk@gnupg.org>
609
610         * gpgsm.c: Add option --enable-crl-checks.
611
612         * call-agent.c (start_agent): Implemented socket based access.
613         * call-dirmngr.c (start_dirmngr): Ditto.
614
615 2002-01-20  Werner Koch  <wk@gnupg.org>
616
617         * server.c (option_handler): New.
618         (gpgsm_server): Register it with assuan.
619
620 2002-01-19  Werner Koch  <wk@gnupg.org>
621
622         * server.c (gpgsm_server): Use assuan_deinit_server and setup
623         assuan logging if enabled.
624         * call-agent.c (inq_ciphertext_cb): Don't show the session key in
625         an Assuan log file.
626
627         * gpgsm.c (my_strusage): Take bugreport address from configure.ac
628
629 2002-01-15  Werner Koch  <wk@gnupg.org>
630
631         * import.c (gpgsm_import): Just do a basic cert check before
632         storing it.
633         * certpath.c (gpgsm_basic_cert_check): New.
634
635         * keydb.c (keydb_store_cert): New.
636         * import.c (store_cert): Removed and change all caller to use
637         the new function.
638         * verify.c (store_cert): Ditto.
639
640         * certlist.c (gpgsm_add_to_certlist): Validate the path
641
642         * certpath.c (gpgsm_validate_path): Check the trust list.
643         * call-agent.c (gpgsm_agent_istrusted): New.
644
645 2002-01-14  Werner Koch  <wk@gnupg.org>
646
647         * call-dirmngr.c (inq_certificate): Changed for new interface semantic.
648         * certlist.c (gpgsm_find_cert): New.
649
650 2002-01-13  Werner Koch  <wk@gnupg.org>
651
652         * fingerprint.c (gpgsm_get_certid): Print the serial and not the
653         hash after the dot.
654
655 2002-01-11  Werner Koch  <wk@gnupg.org>
656
657         * call-dirmngr.c: New.
658         * certpath.c (gpgsm_validate_path): Check the CRL here.
659         * fingerprint.c (gpgsm_get_certid): New.
660         * gpgsm.c: New options --dirmngr-program and --disable-crl-checks.
661
662 2002-01-10  Werner Koch  <wk@gnupg.org>
663
664         * base64.c (gpgsm_create_writer): Allow to set the object name
665
666 2002-01-08  Werner Koch  <wk@gnupg.org>
667
668         * keydb.c (spacep): Removed because it is now in util.c
669
670         * server.c (cmd_genkey): New.
671         * certreqgen.c: New.  The parameter handling code has been taken
672         from gnupg/g10/keygen.c version 1.0.6.
673         * call-agent.c (gpgsm_agent_genkey): New.
674
675 2002-01-02  Werner Koch  <wk@gnupg.org>
676
677         * server.c (rc_to_assuan_status): Removed and changed all callers
678         to use map_to_assuan_status.
679
680 2001-12-20  Werner Koch  <wk@gnupg.org>
681
682         * verify.c (gpgsm_verify): Implemented non-detached signature
683         verification.  Add OUT_FP arg, initialize a writer and changed all
684         callers.
685         * server.c (cmd_verify): Pass an out_fp if one has been set.
686
687         * base64.c (base64_reader_cb): Try to detect an S/MIME body part.
688
689         * certdump.c (print_sexp): Renamed to gpgsm_dump_serial, made
690         global.
691         (print_time): Renamed to gpgsm_dump_time, made global.
692         (gpgsm_dump_serial): Take a real S-Expression as argument and
693         print the first item.
694         * keylist.c (list_cert_colon): Ditto.
695         * keydb.c (keydb_search_issuer_sn): Ditto.
696         * decrypt.c (print_integer_sexp): Removed and made callers 
697         use gpgsm_dump_serial.
698         * verify.c (print_time): Removed, made callers use gpgsm_dump_time.
699         
700 2001-12-19  Marcus Brinkmann  <marcus@g10code.de>
701
702         * call-agent.c (start_agent): Add new argument to assuan_pipe_connect.
703
704 2001-12-18  Werner Koch  <wk@gnupg.org>
705
706         * verify.c (print_integer_sexp): Renamed from print_integer and
707         print the serial number according to the S-Exp rules.
708         * decrypt.c (print_integer_sexp): Ditto.
709
710 2001-12-17  Werner Koch  <wk@gnupg.org>
711
712         * keylist.c (list_cert_colon): Changed for new return value of
713         get_serial.
714         * keydb.c (keydb_search_issuer_sn): Ditto.
715         * certcheck.c (gpgsm_check_cert_sig): Likewise for other S-Exp
716         returingin functions.
717         * fingerprint.c (gpgsm_get_keygrip): Ditto.
718         * encrypt.c (encrypt_dek): Ditto
719         * certcheck.c (gpgsm_check_cms_signature): Ditto
720         * decrypt.c (prepare_decryption): Ditto.
721         * call-agent.c (gpgsm_agent_pkdecrypt): Removed arg ciphertextlen,
722         use KsbaSexp type and calculate the length.
723
724         * certdump.c (print_sexp): Remaned from print_integer, changed caller.
725
726         * Makefile.am: Use the LIBGCRYPT and LIBKSBA variables.
727
728         * fingerprint.c (gpgsm_get_keygrip): Use the new
729         gcry_pk_get_keygrip to calculate the grip - note the algorithm and
730         therefore the grip values changed.
731
732 2001-12-15  Werner Koch  <wk@gnupg.org>
733
734         * certcheck.c (gpgsm_check_cms_signature): Removed the faked-key
735         kludge.
736         (gpgsm_create_cms_signature): Removed the commented fake key
737         code.  This makes the function pretty simple.
738
739         * gpgsm.c (main): Renamed the default key database to "keyring.kbx".
740
741         * decrypt.c (gpgsm_decrypt): Write STATUS_DECRYPTION_*.
742         * sign.c (gpgsm_sign): Write a STATUS_SIG_CREATED.
743
744 2001-12-14  Werner Koch  <wk@gnupg.org>
745
746         * keylist.c (list_cert_colon): Kludge to show an email address
747         encoded in the subject's DN.
748
749         * verify.c (gpgsm_verify): Add hash debug helpers
750         * sign.c (gpgsm_sign): Ditto.
751
752         * base64.c (base64_reader_cb): Reset the linelen when we need to
753         skip the line and adjusted test; I somehow forgot about DeMorgan.
754
755         * server.c (cmd_encrypt,cmd_decrypt,cmd_sign,cmd_verify) 
756         (cmd_import): Close the FDs on success.
757         (close_message_fd): New.
758         (input_notify): Setting autodetect_encoding to 0 after initializing
759         it to 0 is pretty pointless.  Easy to fix.
760
761         * gpgsm.c (main): New option --debug-wait n, so that it is
762         possible to attach gdb when used in server mode.
763
764         * sign.c (get_default_signer): Use keydb_classify_name here.
765
766 2001-12-14  Marcus Brinkmann  <marcus@g10code.de>
767
768         * call-agent.c (LINELENGTH): Removed.
769         (gpgsm_agent_pksign): Use ASSUAN_LINELENGTH, not LINELENGTH.
770         (gpgsm_agent_pkdecrypt): Likewise.
771
772 2001-12-13  Werner Koch  <wk@gnupg.org>
773
774         * keylist.c (list_cert_colon): Print alternative names of subject
775         and a few other values.
776
777 2001-12-12  Werner Koch  <wk@gnupg.org>
778
779         * gpgsm.c (main): New options --assume-{armor,base64,binary}. 
780         * base64.c (base64_reader_cb): Fixed non-autodetection mode.
781
782 2001-12-04  Werner Koch  <wk@gnupg.org>
783
784         * call-agent.c (read_from_agent): Check for inquire responses.
785         (request_reply): Handle them using a new callback arg, changed all
786         callers.
787         (gpgsm_agent_pkdecrypt): New.
788
789 2001-11-27  Werner Koch  <wk@gnupg.org>
790
791         * base64.c: New.  Changed all other functions to use this instead
792         of direct creation of ksba_reader/writer.
793         * gpgsm.c (main): Set ctrl.auto_encoding unless --no-armor is used.
794
795 2001-11-26  Werner Koch  <wk@gnupg.org>
796
797         * gpgsm.c: New option --agent-program
798         * call-agent.c (start_agent): Allow to override the default path
799         to the agent.
800
801         * keydb.c (keydb_add_resource): Create keybox
802
803         * keylist.c (gpgsm_list_keys): Fixed non-server keylisting.
804
805         * server.c (rc_to_assuan_status): New.  Use it for all commands.
806
807         
808  Copyright 2001, 2002, 2003 Free Software Foundation, Inc.
809
810  This file is free software; as a special exception the author gives
811  unlimited permission to copy and/or distribute it, with or without
812  modifications, as long as this notice is preserved.
813
814  This file is distributed in the hope that it will be useful, but
815  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
816  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.