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