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