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