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