Doc fixes, moved some fizmes to TODO, fixed minor bugs.
[gnupg.git] / sm / ChangeLog
1 2002-03-13  Werner Koch  <wk@gnupg.org>
2
3         * decrypt.c (gpgsm_decrypt): Allow multiple recipients.
4
5 2002-03-12  Werner Koch  <wk@gnupg.org>
6
7         * certpath.c (check_cert_policy): Print the policy list.
8
9         * verify.c (gpgsm_verify): Detect certs-only message.
10
11 2002-03-11  Werner Koch  <wk@gnupg.org>
12
13         * import.c (gpgsm_import): Print a notice about imported certificates
14         when in verbose mode.
15
16         * gpgsm.c (main): Print INV_RECP status.
17         * server.c (cmd_recipient): Ditto.
18
19         * server.c (gpgsm_status2): New.  Allows for a list of strings.
20         (gpgsm_status): Divert to gpgsm_status2.
21
22         * encrypt.c (gpgsm_encrypt): Don't use a default key when no
23         recipients are given.  Print a NO_RECP status.
24
25 2002-03-06  Werner Koch  <wk@gnupg.org>
26
27         * server.c (cmd_listkeys, cmd_listsecretkeys): Divert to
28         (do_listkeys): new.  Add pattern parsing.
29
30         * keylist.c (gpgsm_list_keys): Handle selection pattern.
31
32         * gpgsm.c: New command --learn-card
33         * call-agent.c (learn_cb,gpgsm_agent_learn): New.
34
35         * gpgsm.c (main): Print error messages for non-implemented commands.
36
37         * base64.c (base64_reader_cb): Use case insensitive compare of the
38         Content-Type string to detect plain base-64.
39
40 2002-03-05  Werner Koch  <wk@gnupg.org>
41
42         * gpgsm.c, gpgsm.h: Add local_user.
43         * sign.c (gpgsm_get_default_cert): New.
44         (get_default_signer): Use the new function if local_user is not
45         set otherwise used that value.
46         * encrypt.c (get_default_recipient): Removed.
47         (gpgsm_encrypt): Use gpgsm_get_default_cert.
48
49         * verify.c (gpgsm_verify): Better error text for a bad signature
50         found by comparing the hashs.
51
52 2002-02-27  Werner Koch  <wk@gnupg.org>
53
54         * call-dirmngr.c, call-agent.c: Add 2 more arguments to all uses
55         of assuan_transact.
56
57 2002-02-25  Werner Koch  <wk@gnupg.org>
58
59         * server.c (option_handler): Allow to use -2 for "send all certs
60         except the root cert".
61         * sign.c (add_certificate_list): Implement it here.
62         * certpath.c (gpgsm_is_root_cert): New.
63
64 2002-02-19  Werner Koch  <wk@gnupg.org>
65
66         * certpath.c (check_cert_policy): New.
67         (gpgsm_validate_path): And call it from here.
68         * gpgsm.c (main): New options --policy-file,
69         --disable-policy-checks and --enable-policy-checks.
70         * gpgsm.h (opt): Added policy_file, no_policy_checks.
71
72 2002-02-18  Werner Koch  <wk@gnupg.org>
73
74         * certpath.c (gpgsm_validate_path): Ask the agent to add the
75         certificate into the trusted list.
76         * call-agent.c (gpgsm_agent_marktrusted): New.
77
78 2002-02-07  Werner Koch  <wk@gnupg.org>
79
80         * certlist.c (gpgsm_add_to_certlist): Check that the specified
81         name identifies a certificate unambiguously.
82         (gpgsm_find_cert): Ditto.
83
84         * server.c (cmd_listkeys): Check that the data stream is available.
85         (cmd_listsecretkeys): Ditto.
86         (has_option): New.
87         (cmd_sign): Fix ambiguousity in option recognition.
88
89         * gpgsm.c (main): Enable --logger-fd.
90
91         * encrypt.c (gpgsm_encrypt): Increased buffer size for better
92         performance.
93
94         * call-agent.c (gpgsm_agent_pksign): Check the S-Exp received from
95         the agent.
96
97         * keylist.c (list_cert_colon): Filter out control characters.
98
99 2002-02-06  Werner Koch  <wk@gnupg.org>
100
101         * decrypt.c (gpgsm_decrypt): Bail out after an decryption error.
102
103         * server.c (reset_notify): Close input and output FDs.
104         (cmd_encrypt,cmd_decrypt,cmd_verify,cmd_sign.cmd_import)
105         (cmd_genkey): Close the FDs and release the recipient list even in
106         the error case.
107
108 2002-02-01  Marcus Brinkmann  <marcus@g10code.de>
109
110         * sign.c (gpgsm_sign): Do not release certificate twice.
111
112 2002-01-29  Werner Koch  <wk@gnupg.org>
113
114         * call-agent.c (gpgsm_agent_havekey): New.
115         * keylist.c (list_cert_colon): New arg HAVE_SECRET, print "crs"
116         when we know that the secret key is available.
117         (gpgsm_list_keys): New arg MODE, check whether a secret key is
118         available.  Changed all callers.
119         * gpgsm.c (main): New command --list-secret-keys.
120         * server.c (cmd_listsecretkeys): New.
121         (cmd_listkeys): Return secret keys with "crs" record.
122
123 2002-01-28  Werner Koch  <wk@gnupg.org>
124
125         * certreqgen.c (create_request): Store the email address in the req.
126
127 2002-01-25  Werner Koch  <wk@gnupg.org>
128
129         * gpgsm.c (main): Disable core dumps.
130
131         * sign.c (add_certificate_list): New.
132         (gpgsm_sign): Add the certificates to the CMS object.
133         * certpath.c (gpgsm_walk_cert_chain): New.
134         * gpgsm.h (server_control_s): Add included_certs.
135         * gpgsm.c: Add option --include-certs.
136         (gpgsm_init_default_ctrl): New.
137         (main): Call it.
138         * server.c (gpgsm_server): Ditto.
139         (option_handler): Support --include-certs.
140
141 2002-01-23  Werner Koch  <wk@gnupg.org>
142
143         * certpath.c (gpgsm_validate_path): Print the DN of a missing issuer.
144         * certdump.c (gpgsm_dump_string): New.
145         (print_dn): Replaced by above.
146
147 2002-01-22  Werner Koch  <wk@gnupg.org>
148
149         * certpath.c (unknown_criticals): New.
150         (allowed_ca): New.
151         (gpgsm_validate_path): Check validity, CA attribute, path length
152         and unknown critical extensions.
153
154 2002-01-21  Werner Koch  <wk@gnupg.org>
155
156         * gpgsm.c: Add option --enable-crl-checks.
157
158         * call-agent.c (start_agent): Implemented socket based access.
159         * call-dirmngr.c (start_dirmngr): Ditto.
160
161 2002-01-20  Werner Koch  <wk@gnupg.org>
162
163         * server.c (option_handler): New.
164         (gpgsm_server): Register it with assuan.
165
166 2002-01-19  Werner Koch  <wk@gnupg.org>
167
168         * server.c (gpgsm_server): Use assuan_deinit_server and setup
169         assuan logging if enabled.
170         * call-agent.c (inq_ciphertext_cb): Don't show the session key in
171         an Assuan log file.
172
173         * gpgsm.c (my_strusage): Take bugreport address from configure.ac
174
175 2002-01-15  Werner Koch  <wk@gnupg.org>
176
177         * import.c (gpgsm_import): Just do a basic cert check before
178         storing it.
179         * certpath.c (gpgsm_basic_cert_check): New.
180
181         * keydb.c (keydb_store_cert): New.
182         * import.c (store_cert): Removed and change all caller to use
183         the new function.
184         * verify.c (store_cert): Ditto.
185
186         * certlist.c (gpgsm_add_to_certlist): Validate the path
187
188         * certpath.c (gpgsm_validate_path): Check the trust list.
189         * call-agent.c (gpgsm_agent_istrusted): New.
190
191 2002-01-14  Werner Koch  <wk@gnupg.org>
192
193         * call-dirmngr.c (inq_certificate): Changed for new interface semantic.
194         * certlist.c (gpgsm_find_cert): New.
195
196 2002-01-13  Werner Koch  <wk@gnupg.org>
197
198         * fingerprint.c (gpgsm_get_certid): Print the serial and not the
199         hash after the dot.
200
201 2002-01-11  Werner Koch  <wk@gnupg.org>
202
203         * call-dirmngr.c: New.
204         * certpath.c (gpgsm_validate_path): Check the CRL here.
205         * fingerprint.c (gpgsm_get_certid): New.
206         * gpgsm.c: New options --dirmngr-program and --disable-crl-checks.
207
208 2002-01-10  Werner Koch  <wk@gnupg.org>
209
210         * base64.c (gpgsm_create_writer): Allow to set the object name
211
212 2002-01-08  Werner Koch  <wk@gnupg.org>
213
214         * keydb.c (spacep): Removed because it is now in util.c
215
216         * server.c (cmd_genkey): New.
217         * certreqgen.c: New.  The parameter handling code has been taken
218         from gnupg/g10/keygen.c version 1.0.6.
219         * call-agent.c (gpgsm_agent_genkey): New.
220
221 2002-01-02  Werner Koch  <wk@gnupg.org>
222
223         * server.c (rc_to_assuan_status): Removed and changed all callers
224         to use map_to_assuan_status.
225
226 2001-12-20  Werner Koch  <wk@gnupg.org>
227
228         * verify.c (gpgsm_verify): Implemented non-detached signature
229         verification.  Add OUT_FP arg, initialize a writer and changed all
230         callers.
231         * server.c (cmd_verify): Pass an out_fp if one has been set.
232
233         * base64.c (base64_reader_cb): Try to detect an S/MIME body part.
234
235         * certdump.c (print_sexp): Renamed to gpgsm_dump_serial, made
236         global.
237         (print_time): Renamed to gpgsm_dump_time, made global.
238         (gpgsm_dump_serial): Take a real S-Expression as argument and
239         print the first item.
240         * keylist.c (list_cert_colon): Ditto.
241         * keydb.c (keydb_search_issuer_sn): Ditto.
242         * decrypt.c (print_integer_sexp): Removed and made callers 
243         use gpgsm_dump_serial.
244         * verify.c (print_time): Removed, made callers use gpgsm_dump_time.
245         
246 2001-12-19  Marcus Brinkmann  <marcus@g10code.de>
247
248         * call-agent.c (start_agent): Add new argument to assuan_pipe_connect.
249
250 2001-12-18  Werner Koch  <wk@gnupg.org>
251
252         * verify.c (print_integer_sexp): Renamed from print_integer and
253         print the serial number according to the S-Exp rules.
254         * decrypt.c (print_integer_sexp): Ditto.
255
256 2001-12-17  Werner Koch  <wk@gnupg.org>
257
258         * keylist.c (list_cert_colon): Changed for new return value of
259         get_serial.
260         * keydb.c (keydb_search_issuer_sn): Ditto.
261         * certcheck.c (gpgsm_check_cert_sig): Likewise for other S-Exp
262         returingin functions.
263         * fingerprint.c (gpgsm_get_keygrip): Ditto.
264         * encrypt.c (encrypt_dek): Ditto
265         * certcheck.c (gpgsm_check_cms_signature): Ditto
266         * decrypt.c (prepare_decryption): Ditto.
267         * call-agent.c (gpgsm_agent_pkdecrypt): Removed arg ciphertextlen,
268         use KsbaSexp type and calculate the length.
269
270         * certdump.c (print_sexp): Remaned from print_integer, changed caller.
271
272         * Makefile.am: Use the LIBGCRYPT and LIBKSBA variables.
273
274         * fingerprint.c (gpgsm_get_keygrip): Use the new
275         gcry_pk_get_keygrip to calculate the grip - note the algorithm and
276         therefore the grip values changed.
277
278 2001-12-15  Werner Koch  <wk@gnupg.org>
279
280         * certcheck.c (gpgsm_check_cms_signature): Removed the faked-key
281         kludge.
282         (gpgsm_create_cms_signature): Removed the commented fake key
283         code.  This makes the function pretty simple.
284
285         * gpgsm.c (main): Renamed the default key database to "keyring.kbx".
286
287         * decrypt.c (gpgsm_decrypt): Write STATUS_DECRYPTION_*.
288         * sign.c (gpgsm_sign): Write a STATUS_SIG_CREATED.
289
290 2001-12-14  Werner Koch  <wk@gnupg.org>
291
292         * keylist.c (list_cert_colon): Kludge to show an email address
293         encoded in the subject's DN.
294
295         * verify.c (gpgsm_verify): Add hash debug helpers
296         * sign.c (gpgsm_sign): Ditto.
297
298         * base64.c (base64_reader_cb): Reset the linelen when we need to
299         skip the line and adjusted test; I somehow forgot about DeMorgan.
300
301         * server.c (cmd_encrypt,cmd_decrypt,cmd_sign,cmd_verify) 
302         (cmd_import): Close the FDs on success.
303         (close_message_fd): New.
304         (input_notify): Setting autodetect_encoding to 0 after initializing
305         it to 0 is pretty pointless.  Easy to fix.
306
307         * gpgsm.c (main): New option --debug-wait n, so that it is
308         possible to attach gdb when used in server mode.
309
310         * sign.c (get_default_signer): Use keydb_classify_name here.
311
312 2001-12-14  Marcus Brinkmann  <marcus@g10code.de>
313
314         * call-agent.c (LINELENGTH): Removed.
315         (gpgsm_agent_pksign): Use ASSUAN_LINELENGTH, not LINELENGTH.
316         (gpgsm_agent_pkdecrypt): Likewise.
317
318 2001-12-13  Werner Koch  <wk@gnupg.org>
319
320         * keylist.c (list_cert_colon): Print alternative names of subject
321         and a few other values.
322
323 2001-12-12  Werner Koch  <wk@gnupg.org>
324
325         * gpgsm.c (main): New options --assume-{armor,base64,binary}. 
326         * base64.c (base64_reader_cb): Fixed non-autodetection mode.
327
328 2001-12-04  Werner Koch  <wk@gnupg.org>
329
330         * call-agent.c (read_from_agent): Check for inquire responses.
331         (request_reply): Handle them using a new callback arg, changed all
332         callers.
333         (gpgsm_agent_pkdecrypt): New.
334
335 2001-11-27  Werner Koch  <wk@gnupg.org>
336
337         * base64.c: New.  Changed all other functions to use this instead
338         of direct creation of ksba_reader/writer.
339         * gpgsm.c (main): Set ctrl.auto_encoding unless --no-armor is used.
340
341 2001-11-26  Werner Koch  <wk@gnupg.org>
342
343         * gpgsm.c: New option --agent-program
344         * call-agent.c (start_agent): Allow to override the default path
345         to the agent.
346
347         * keydb.c (keydb_add_resource): Create keybox
348
349         * keylist.c (gpgsm_list_keys): Fixed non-server keylisting.
350
351         * server.c (rc_to_assuan_status): New.  Use it for all commands.
352
353         
354  Copyright 2001, 2002 Free Software Foundation, Inc.
355
356  This file is free software; as a special exception the author gives
357  unlimited permission to copy and/or distribute it, with or without
358  modifications, as long as this notice is preserved.
359
360  This file is distributed in the hope that it will be useful, but
361  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
362  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.