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