OpenCoverage

ssh-add.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssh/src/ssh-add.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4-
5-
6-
7-
8-
9-
10-
11-
12-
13extern char *__progname;-
14-
15-
16static char *default_files[] = {-
17-
18 ".ssh" "/id_rsa",-
19 ".ssh" "/id_dsa",-
20-
21 ".ssh" "/id_ecdsa",-
22-
23-
24 ".ssh" "/id_ed25519",-
25 ".ssh" "/id_xmss",-
26 -
27((void *)0)-
28-
29};-
30-
31static int fingerprint_hash = 2;-
32-
33-
34static int lifetime = 0;-
35-
36-
37static int confirm = 0;-
38-
39-
40static u_int maxsign = 0;-
41static u_int minleft = 0;-
42-
43-
44static char *pass = -
45 ((void *)0)-
46 ;-
47static void-
48clear_pass(void)-
49{-
50 if (pass
passDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
51 explicit_bzero(pass, strlen(pass));-
52 free(pass);-
53 pass = -
54 ((void *)0)-
55 ;-
56 }
never executed: end of block
0
57}
never executed: end of block
0
58-
59static int-
60delete_file(int agent_fd, const char *filename, int key_only, int qflag)-
61{-
62 struct sshkey *public, *cert = -
63 ((void *)0)-
64 ;-
65 char *certpath = -
66 ((void *)0)-
67 , *comment = -
68 ((void *)0)-
69 ;-
70 int r, ret = -1;-
71-
72 if ((
(r = sshkey_lo...comment)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshkey_load_public(filename, &public, &comment)) != 0
(r = sshkey_lo...comment)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
73 printf("Bad key file %s: %s\n", filename, ssh_err(r));-
74 return
never executed: return -1;
-1;
never executed: return -1;
0
75 }-
76 if ((
(r = ssh_remov... public)) == 0Description
TRUEnever evaluated
FALSEnever evaluated
r = ssh_remove_identity(agent_fd, public)) == 0
(r = ssh_remov... public)) == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
77 if (!qflag
!qflagDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
78 fprintf(-
79 stderr-
80 , "Identity removed: %s (%s)\n",-
81 filename, comment);-
82 }
never executed: end of block
0
83 ret = 0;-
84 }
never executed: end of block
else
0
85 fprintf(
never executed: fprintf( stderr , "Could not remove identity \"%s\": %s\n", filename, ssh_err(r));
0
86 stderr
never executed: fprintf( stderr , "Could not remove identity \"%s\": %s\n", filename, ssh_err(r));
0
87 , "Could not remove identity \"%s\": %s\n",
never executed: fprintf( stderr , "Could not remove identity \"%s\": %s\n", filename, ssh_err(r));
0
88 filename, ssh_err(r));
never executed: fprintf( stderr , "Could not remove identity \"%s\": %s\n", filename, ssh_err(r));
0
89-
90 if (key_only
key_onlyDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
91 goto
never executed: goto out;
out;
never executed: goto out;
0
92-
93-
94 free(comment);-
95 comment = -
96 ((void *)0)-
97 ;-
98 xasprintf(&certpath, "%s-cert.pub", filename);-
99 if ((
(r = sshkey_lo...comment)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshkey_load_public(certpath, &cert, &comment)) != 0
(r = sshkey_lo...comment)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
100 if (r != -24
r != -24Description
TRUEnever evaluated
FALSEnever evaluated
||
0
101 (*
(*__errno_location ()) != 2Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) != 2Description
TRUEnever evaluated
FALSEnever evaluated
0
102 !=
(*__errno_location ()) != 2Description
TRUEnever evaluated
FALSEnever evaluated
0
103 2
(*__errno_location ()) != 2Description
TRUEnever evaluated
FALSEnever evaluated
0
104 )-
105 error("Failed to load certificate \"%s\": %s",
never executed: error("Failed to load certificate \"%s\": %s", certpath, ssh_err(r));
0
106 certpath, ssh_err(r));
never executed: error("Failed to load certificate \"%s\": %s", certpath, ssh_err(r));
0
107 goto
never executed: goto out;
out;
never executed: goto out;
0
108 }-
109-
110 if (!sshkey_equal_public(cert, public)
!sshkey_equal_...(cert, public)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
111 fatal("Certificate %s does not match private key %s",
never executed: fatal("Certificate %s does not match private key %s", certpath, filename);
0
112 certpath, filename);
never executed: fatal("Certificate %s does not match private key %s", certpath, filename);
0
113-
114 if ((
(r = ssh_remov...d, cert)) == 0Description
TRUEnever evaluated
FALSEnever evaluated
r = ssh_remove_identity(agent_fd, cert)) == 0
(r = ssh_remov...d, cert)) == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
115 if (!qflag
!qflagDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
116 fprintf(-
117 stderr-
118 , "Identity removed: %s (%s)\n",-
119 certpath, comment);-
120 }
never executed: end of block
0
121 ret = 0;-
122 }
never executed: end of block
else
0
123 fprintf(
never executed: fprintf( stderr , "Could not remove identity \"%s\": %s\n", certpath, ssh_err(r));
0
124 stderr
never executed: fprintf( stderr , "Could not remove identity \"%s\": %s\n", certpath, ssh_err(r));
0
125 , "Could not remove identity \"%s\": %s\n",
never executed: fprintf( stderr , "Could not remove identity \"%s\": %s\n", certpath, ssh_err(r));
0
126 certpath, ssh_err(r));
never executed: fprintf( stderr , "Could not remove identity \"%s\": %s\n", certpath, ssh_err(r));
0
127-
128 out:
code before this statement never executed: out:
0
129 sshkey_free(cert);-
130 sshkey_free(public);-
131 free(certpath);-
132 free(comment);-
133-
134 return
never executed: return ret;
ret;
never executed: return ret;
0
135}-
136-
137-
138static int-
139delete_all(int agent_fd, int qflag)-
140{-
141 int ret = -1;-
142-
143-
144-
145-
146-
147-
148 if (ssh_remove_all_identities(agent_fd, 2) == 0
ssh_remove_all...nt_fd, 2) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
149 ret = 0;
never executed: ret = 0;
0
150-
151 ssh_remove_all_identities(agent_fd, 1);-
152-
153 if (ret != 0
ret != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
154 fprintf(
never executed: fprintf( stderr , "Failed to remove all identities.\n");
0
155 stderr
never executed: fprintf( stderr , "Failed to remove all identities.\n");
0
156 , "Failed to remove all identities.\n");
never executed: fprintf( stderr , "Failed to remove all identities.\n");
0
157 else if (!qflag
!qflagDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
158 fprintf(
never executed: fprintf( stderr , "All identities removed.\n");
0
159 stderr
never executed: fprintf( stderr , "All identities removed.\n");
0
160 , "All identities removed.\n");
never executed: fprintf( stderr , "All identities removed.\n");
0
161-
162 return
never executed: return ret;
ret;
never executed: return ret;
0
163}-
164-
165static int-
166add_file(int agent_fd, const char *filename, int key_only, int qflag)-
167{-
168 struct sshkey *private, *cert;-
169 char *comment = -
170 ((void *)0)-
171 ;-
172 char msg[1024], *certpath = -
173 ((void *)0)-
174 ;-
175 int r, fd, ret = -1;-
176 size_t i;-
177 u_int32_t left;-
178 struct sshbuf *keyblob;-
179 struct ssh_identitylist *idlist;-
180-
181 if (-
182 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
183 filename
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
184 ) && __builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
185 "-"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
186 ) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
187 filename
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
188 ), __s2_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
189 "-"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
190 ), (!((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
191 filename
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
192 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
193 filename
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
194 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
195 "-"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
196 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
197 "-"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
198 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
199 filename
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
200 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
201 "-"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
202 ) : (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
203 filename
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
204 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
205 filename
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
206 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
207 filename
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
208 ) == 1) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
209 filename
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
210 ), __s1_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
211 "-"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
212 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
213 "-"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
214 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
215 "-"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
216 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
217 filename
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
218 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
219 "-"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
220 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
221 "-"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
222 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
223 filename
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
224 ))[0] - __s2[0]); if (__s1_len > 0
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
225 filename
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
226 ))[1] - __s2[1]); if (__s1_len > 1
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
227 filename
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
228 ))[2] - __s2[2]); if (__s1_len > 2
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( filename ))[3] - __s2[3]);
0
229 filename
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( filename ))[3] - __s2[3]);
0
230 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
231 "-"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
232 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
233 "-"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
234 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
235 "-"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
236 ) == 1) && (__s2_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
237 "-"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
238 ), __s2_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
239 filename
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
240 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
241 filename
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
242 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
243 filename
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
244 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
245 filename
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
246 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
247 "-"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
248 ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
249 filename
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
250 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
251 "-"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
252 ))[0] - __s2[0]); if (__s2_len > 0
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
253 "-"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
254 ))[1] - __s2[1]); if (__s2_len > 1
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
255 "-"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
256 ))[2] - __s2[2]); if (__s2_len > 2
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( "-" ))[3] - __s2[3]);
0
257 "-"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( "-" ))[3] - __s2[3]);
0
258 ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
259 filename
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
260 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
261 "-"
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
262 )))); })
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
263 == 0
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
264 fd = -
265 0-
266 ;-
267 filename = "(stdin)";-
268 }
never executed: end of block
else if ((
(fd = open(filename, 00 )) < 0Description
TRUEnever evaluated
FALSEnever evaluated
fd = open(filename,
(fd = open(filename, 00 )) < 0Description
TRUEnever evaluated
FALSEnever evaluated
0
269 00
(fd = open(filename, 00 )) < 0Description
TRUEnever evaluated
FALSEnever evaluated
0
270 )) < 0
(fd = open(filename, 00 )) < 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
271 perror(filename);-
272 return
never executed: return -1;
-1;
never executed: return -1;
0
273 }-
274-
275-
276-
277-
278-
279 if (fd !=
fd != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
280 0
fd != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
281 ) {-
282 if (sshkey_perm_ok(fd, filename) != 0
sshkey_perm_ok...filename) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
283 close(fd);-
284 return
never executed: return -1;
-1;
never executed: return -1;
0
285 }-
286 }
never executed: end of block
0
287 if ((
(keyblob = ssh...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
keyblob = sshbuf_new()) ==
(keyblob = ssh...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
288 ((void *)0)
(keyblob = ssh...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
289 )-
290 fatal("%s: sshbuf_new failed", __func__);
never executed: fatal("%s: sshbuf_new failed", __func__);
0
291 if ((
(r = sshkey_lo...keyblob)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshkey_load_file(fd, keyblob)) != 0
(r = sshkey_lo...keyblob)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
292 fprintf(-
293 stderr-
294 , "Error loading key \"%s\": %s\n",-
295 filename, ssh_err(r));-
296 sshbuf_free(keyblob);-
297 close(fd);-
298 return
never executed: return -1;
-1;
never executed: return -1;
0
299 }-
300 close(fd);-
301-
302-
303 if ((
(r = sshkey_pa...comment)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshkey_parse_private_fileblob(keyblob, "", &private,
(r = sshkey_pa...comment)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
304 &comment)) != 0
(r = sshkey_pa...comment)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
&& r != -43
r != -43Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
305 fprintf(-
306 stderr-
307 , "Error loading key \"%s\": %s\n",-
308 filename, ssh_err(r));-
309 goto
never executed: goto fail_load;
fail_load;
never executed: goto fail_load;
0
310 }-
311-
312 if (private
private == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
==
private == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
313 ((void *)0)
private == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
314 && pass !=
pass != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
315 ((void *)0)
pass != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
316 ) {-
317 if ((
(r = sshkey_pa...comment)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshkey_parse_private_fileblob(keyblob, pass, &private,
(r = sshkey_pa...comment)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
318 &comment)) != 0
(r = sshkey_pa...comment)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
&& r != -43
r != -43Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
319 fprintf(-
320 stderr-
321 , "Error loading key \"%s\": %s\n",-
322 filename, ssh_err(r));-
323 goto
never executed: goto fail_load;
fail_load;
never executed: goto fail_load;
0
324 }-
325 }
never executed: end of block
0
326 if (private
private == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
==
private == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
327 ((void *)0)
private == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
328 ) {-
329-
330 clear_pass();-
331 snprintf(msg, sizeof msg, "Enter passphrase for %s%s: ",-
332 filename, confirm ? " (will confirm each use)" : "");-
333 for (;;) {-
334 pass = read_passphrase(msg, 0x0002);-
335 if (-
336 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
337 pass
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
338 ) && __builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
339 ""
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
340 ) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
341 pass
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
342 ), __s2_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
343 ""
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
344 ), (!((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
345 pass
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
346 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
347 pass
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
348 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
349 ""
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
350 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
351 ""
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
352 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
353 pass
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
354 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
355 ""
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
356 ) : (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
357 pass
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
358 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
359 pass
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
360 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
361 pass
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
362 ) == 1) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
363 pass
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
364 ), __s1_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
365 ""
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
366 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
367 ""
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
368 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
369 ""
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
370 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
371 pass
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
372 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
373 ""
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
374 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
375 ""
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
376 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
377 pass
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
378 ))[0] - __s2[0]); if (__s1_len > 0
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
379 pass
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
380 ))[1] - __s2[1]); if (__s1_len > 1
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
381 pass
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
382 ))[2] - __s2[2]); if (__s1_len > 2
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( pass ))[3] - __s2[3]);
0
383 pass
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( pass ))[3] - __s2[3]);
0
384 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
385 ""
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
386 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
387 ""
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
388 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
389 ""
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
390 ) == 1) && (__s2_len = __builtin_strlen (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
391 ""
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
392 ), __s2_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
393 pass
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
394 ) && ((size_t)(const void *)((
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
395 pass
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
396 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
397 pass
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
398 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
399 pass
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
400 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
401 ""
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
402 ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
403 pass
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
404 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
405 ""
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
406 ))[0] - __s2[0]); if (__s2_len > 0
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
407 ""
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
408 ))[1] - __s2[1]); if (__s2_len > 1
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
409 ""
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
410 ))[2] - __s2[2]); if (__s2_len > 2
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( "" ))[3] - __s2[3]);
0
411 ""
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( "" ))[3] - __s2[3]);
0
412 ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
413 pass
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
414 ,
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
415 ""
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
416 )))); })
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
417 == 0
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
418 goto
never executed: goto fail_load;
fail_load;
never executed: goto fail_load;
0
419 if ((
(r = sshkey_pa...comment)) == 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshkey_parse_private_fileblob(keyblob, pass,
(r = sshkey_pa...comment)) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
420 &private, &comment)) == 0
(r = sshkey_pa...comment)) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
421 break;
never executed: break;
0
422 else if (r != -43
r != -43Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
423 fprintf(-
424 stderr-
425 ,-
426 "Error loading key \"%s\": %s\n",-
427 filename, ssh_err(r));-
428 fail_load:
code before this statement never executed: fail_load:
0
429 clear_pass();-
430 sshbuf_free(keyblob);-
431 return
never executed: return -1;
-1;
never executed: return -1;
0
432 }-
433 clear_pass();-
434 snprintf(msg, sizeof msg,-
435 "Bad passphrase, try again for %s%s: ", filename,-
436 confirm ? " (will confirm each use)" : "");-
437 }
never executed: end of block
0
438 }
never executed: end of block
0
439 if (comment ==
comment == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
440 ((void *)0)
comment == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
441 || *
*comment == '\0'Description
TRUEnever evaluated
FALSEnever evaluated
comment == '\0'
*comment == '\0'Description
TRUEnever evaluated
FALSEnever evaluated
)
0
442 comment = xstrdup(filename);
never executed: comment = xstrdup(filename);
0
443 sshbuf_free(keyblob);-
444-
445-
446 if ((
(r = sshkey_se...ilename)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshkey_set_filename(private, filename)) != 0
(r = sshkey_se...ilename)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
447 fprintf(-
448 stderr-
449 , "Could not add filename to private key: %s (%s)\n",-
450 filename, comment);-
451 goto
never executed: goto out;
out;
never executed: goto out;
0
452 }-
453 if (maxsign
maxsignDescription
TRUEnever evaluated
FALSEnever evaluated
&& minleft
minleftDescription
TRUEnever evaluated
FALSEnever evaluated
&&
0
454 (
(r = ssh_fetch...&idlist)) == 0Description
TRUEnever evaluated
FALSEnever evaluated
r = ssh_fetch_identitylist(agent_fd, &idlist)) == 0
(r = ssh_fetch...&idlist)) == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
455 for (i = 0; i < idlist->nkeys
i < idlist->nkeysDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
456 if (!sshkey_equal_public(idlist->keys[i], private)
!sshkey_equal_...s[i], private)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
457 continue;
never executed: continue;
0
458 left = sshkey_signatures_left(idlist->keys[i]);-
459 if (left < minleft
left < minleftDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
460 fprintf(-
461 stderr-
462 ,-
463 "Only %d signatures left.\n", left);-
464 break;
never executed: break;
0
465 }-
466 fprintf(-
467 stderr-
468 , "Skipping update: ");-
469 if (left == minleft
left == minleftDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
470 fprintf(-
471 stderr-
472 ,-
473 "required signatures left (%d).\n", left);-
474 }
never executed: end of block
else {
0
475 fprintf(-
476 stderr-
477 ,-
478 "more signatures left (%d) than"-
479 " required (%d).\n", left, minleft);-
480 }
never executed: end of block
0
481 ssh_free_identitylist(idlist);-
482 goto
never executed: goto out;
out;
never executed: goto out;
0
483 }-
484 ssh_free_identitylist(idlist);-
485 }
never executed: end of block
0
486-
487 if ((
(r = ssh_add_i...maxsign)) == 0Description
TRUEnever evaluated
FALSEnever evaluated
r = ssh_add_identity_constrained(agent_fd, private, comment,
(r = ssh_add_i...maxsign)) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
488 lifetime, confirm, maxsign)) == 0
(r = ssh_add_i...maxsign)) == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
489 ret = 0;-
490 if (!qflag
!qflagDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
491 fprintf(-
492 stderr-
493 , "Identity added: %s (%s)\n",-
494 filename, comment);-
495 if (lifetime != 0
lifetime != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
496 fprintf(-
497 stderr-
498 ,-
499 "Lifetime set to %d seconds\n", lifetime);-
500 }
never executed: end of block
0
501 if (confirm != 0
confirm != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
502 fprintf(-
503 stderr-
504 , "The user must confirm "-
505 "each use of the key\n");-
506 }
never executed: end of block
0
507 }
never executed: end of block
0
508 }
never executed: end of block
else {
0
509 fprintf(-
510 stderr-
511 , "Could not add identity \"%s\": %s\n",-
512 filename, ssh_err(r));-
513 }
never executed: end of block
0
514-
515-
516 if (key_only
key_onlyDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
517 goto
never executed: goto out;
out;
never executed: goto out;
0
518-
519-
520 xasprintf(&certpath, "%s-cert.pub", filename);-
521 if ((
(r = sshkey_lo...d *)0) )) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshkey_load_public(certpath, &cert,
(r = sshkey_lo...d *)0) )) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
522 ((void *)0)
(r = sshkey_lo...d *)0) )) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
523 )) != 0
(r = sshkey_lo...d *)0) )) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
524 if (r != -24
r != -24Description
TRUEnever evaluated
FALSEnever evaluated
||
0
525 (*
(*__errno_location ()) != 2Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) != 2Description
TRUEnever evaluated
FALSEnever evaluated
0
526 !=
(*__errno_location ()) != 2Description
TRUEnever evaluated
FALSEnever evaluated
0
527 2
(*__errno_location ()) != 2Description
TRUEnever evaluated
FALSEnever evaluated
0
528 )-
529 error("Failed to load certificate \"%s\": %s",
never executed: error("Failed to load certificate \"%s\": %s", certpath, ssh_err(r));
0
530 certpath, ssh_err(r));
never executed: error("Failed to load certificate \"%s\": %s", certpath, ssh_err(r));
0
531 goto
never executed: goto out;
out;
never executed: goto out;
0
532 }-
533-
534 if (!sshkey_equal_public(cert, private)
!sshkey_equal_...cert, private)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
535 error("Certificate %s does not match private key %s",-
536 certpath, filename);-
537 sshkey_free(cert);-
538 goto
never executed: goto out;
out;
never executed: goto out;
0
539 }-
540-
541-
542 if ((
(r = sshkey_to...private)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshkey_to_certified(private)) != 0
(r = sshkey_to...private)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
543 error("%s: sshkey_to_certified: %s", __func__, ssh_err(r));-
544 sshkey_free(cert);-
545 goto
never executed: goto out;
out;
never executed: goto out;
0
546 }-
547 if ((
(r = sshkey_ce...private)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshkey_cert_copy(cert, private)) != 0
(r = sshkey_ce...private)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
548 error("%s: sshkey_cert_copy: %s", __func__, ssh_err(r));-
549 sshkey_free(cert);-
550 goto
never executed: goto out;
out;
never executed: goto out;
0
551 }-
552 sshkey_free(cert);-
553-
554 if ((
(r = ssh_add_i...maxsign)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = ssh_add_identity_constrained(agent_fd, private, comment,
(r = ssh_add_i...maxsign)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
555 lifetime, confirm, maxsign)) != 0
(r = ssh_add_i...maxsign)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
556 error("Certificate %s (%s) add failed: %s", certpath,-
557 private->cert->key_id, ssh_err(r));-
558 goto
never executed: goto out;
out;
never executed: goto out;
0
559 }-
560-
561 if (!qflag
!qflagDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
562 fprintf(-
563 stderr-
564 , "Certificate added: %s (%s)\n", certpath,-
565 private->cert->key_id);-
566 if (lifetime != 0
lifetime != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
567 fprintf(-
568 stderr-
569 , "Lifetime set to %d seconds\n",-
570 lifetime);-
571 }
never executed: end of block
0
572 if (confirm != 0
confirm != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
573 fprintf(-
574 stderr-
575 , "The user must confirm each use "-
576 "of the key\n");-
577 }
never executed: end of block
0
578 }
never executed: end of block
0
579-
580 out:
code before this statement never executed: out:
0
581 free(certpath);-
582 free(comment);-
583 sshkey_free(private);-
584-
585 return
never executed: return ret;
ret;
never executed: return ret;
0
586}-
587-
588static int-
589update_card(int agent_fd, int add, const char *id, int qflag)-
590{-
591 char *pin = -
592 ((void *)0)-
593 ;-
594 int r, ret = -1;-
595-
596 if (add
addDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
597 if ((
(pin = read_pa...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
pin = read_passphrase("Enter passphrase for PKCS#11: ",
(pin = read_pa...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
598 0x0002)) ==
(pin = read_pa...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
599 ((void *)0)
(pin = read_pa...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
600 )-
601 return
never executed: return -1;
-1;
never executed: return -1;
0
602 }
never executed: end of block
0
603-
604 if ((
(r = ssh_updat...confirm)) == 0Description
TRUEnever evaluated
FALSEnever evaluated
r = ssh_update_card(agent_fd, add, id, pin ==
(r = ssh_updat...confirm)) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
605 ((void *)0)
(r = ssh_updat...confirm)) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
606 ? "" : pin,
(r = ssh_updat...confirm)) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
607 lifetime, confirm)) == 0
(r = ssh_updat...confirm)) == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
608 ret = 0;-
609 if (!qflag
!qflagDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
610 fprintf(-
611 stderr-
612 , "Card %s: %s\n",-
613 add ? "added" : "removed", id);-
614 }
never executed: end of block
0
615 }
never executed: end of block
else {
0
616 fprintf(-
617 stderr-
618 , "Could not %s card \"%s\": %s\n",-
619 add ? "add" : "remove", id, ssh_err(r));-
620 ret = -1;-
621 }
never executed: end of block
0
622 free(pin);-
623 return
never executed: return ret;
ret;
never executed: return ret;
0
624}-
625-
626static int-
627list_identities(int agent_fd, int do_fp)-
628{-
629 char *fp;-
630 int r;-
631 struct ssh_identitylist *idlist;-
632 u_int32_t left;-
633 size_t i;-
634-
635 if ((
(r = ssh_fetch...&idlist)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = ssh_fetch_identitylist(agent_fd, &idlist)) != 0
(r = ssh_fetch...&idlist)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
636 if (r != -48
r != -48Description
TRUEnever evaluated
FALSEnever evaluated
)
0
637 fprintf(
never executed: fprintf( stderr , "error fetching identities: %s\n", ssh_err(r));
0
638 stderr
never executed: fprintf( stderr , "error fetching identities: %s\n", ssh_err(r));
0
639 , "error fetching identities: %s\n",
never executed: fprintf( stderr , "error fetching identities: %s\n", ssh_err(r));
0
640 ssh_err(r));
never executed: fprintf( stderr , "error fetching identities: %s\n", ssh_err(r));
0
641 else-
642 printf("The agent has no identities.\n");
never executed: printf("The agent has no identities.\n");
0
643 return
never executed: return -1;
-1;
never executed: return -1;
0
644 }-
645 for (i = 0; i < idlist->nkeys
i < idlist->nkeysDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
646 if (do_fp
do_fpDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
647 fp = sshkey_fingerprint(idlist->keys[i],-
648 fingerprint_hash, SSH_FP_DEFAULT);-
649 printf("%u %s %s (%s)\n", sshkey_size(idlist->keys[i]),-
650 fp == -
651 ((void *)0) -
652 ? "(null)" : fp, idlist->comments[i],-
653 sshkey_type(idlist->keys[i]));-
654 free(fp);-
655 }
never executed: end of block
else {
0
656 if ((
(r = sshkey_wr...stdout )) != 0Description
TRUEnever evaluated
FALSEnever evaluated
r = sshkey_write(idlist->keys[i],
(r = sshkey_wr...stdout )) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
657 stdout
(r = sshkey_wr...stdout )) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
658 )) != 0
(r = sshkey_wr...stdout )) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
659 fprintf(-
660 stderr-
661 , "sshkey_write: %s\n",-
662 ssh_err(r));-
663 continue;
never executed: continue;
0
664 }-
665 fprintf(-
666 stdout-
667 , " %s", idlist->comments[i]);-
668 left = sshkey_signatures_left(idlist->keys[i]);-
669 if (left > 0
left > 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
670 fprintf(
never executed: fprintf( stdout , " [signatures left %d]", left);
0
671 stdout
never executed: fprintf( stdout , " [signatures left %d]", left);
0
672 ,
never executed: fprintf( stdout , " [signatures left %d]", left);
0
673 " [signatures left %d]", left);
never executed: fprintf( stdout , " [signatures left %d]", left);
0
674 fprintf(-
675 stdout-
676 , "\n");-
677 }
never executed: end of block
0
678 }-
679 ssh_free_identitylist(idlist);-
680 return
never executed: return 0;
0;
never executed: return 0;
0
681}-
682-
683static int-
684lock_agent(int agent_fd, int lock)-
685{-
686 char prompt[100], *p1, *p2;-
687 int r, passok = 1, ret = -1;-
688-
689 strlcpy(prompt, "Enter lock password: ", sizeof(prompt));-
690 p1 = read_passphrase(prompt, 0x0002);-
691 if (lock
lockDescription
TRUEnever evaluated
FALSEnever evaluated
)
{
0
692 strlcpy(prompt, "Again: ", sizeof prompt);-
693 p2 = read_passphrase(prompt, 0x0002);-
694 if (-
695 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
696 p1
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
697 ) && __builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
698 p2
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
699 ) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
700 p1
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
701 ), __s2_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
702 p2
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
703 ), (!((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
704 p1
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
705 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
706 p1
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
707 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
708 p2
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
709 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
710 p2
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
711 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
712 p1
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
713 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
714 p2
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
715 ) : (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
716 p1
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
717 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
718 p1
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
719 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
720 p1
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
721 ) == 1) && (__s1_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
722 p1
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
723 ), __s1_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
724 p2
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
725 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
726 p2
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
727 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
728 p2
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
729 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
730 p1
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
731 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
732 p2
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
733 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
734 p2
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
735 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
736 p1
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
737 ))[0] - __s2[0]); if (__s1_len > 0
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
738 p1
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
739 ))[1] - __s2[1]); if (__s1_len > 1
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
740 p1
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
741 ))[2] - __s2[2]); if (__s1_len > 2
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( p1 ))[3] - __s2[3]);
0
742 p1
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( p1 ))[3] - __s2[3]);
0
743 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
744 p2
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
745 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
746 p2
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
747 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
748 p2
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
749 ) == 1) && (__s2_len = __builtin_strlen (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
750 p2
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
751 ), __s2_len < 4) ? (__builtin_constant_p (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
752 p1
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
753 ) && ((size_t)(const void *)((
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
754 p1
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
755 ) + 1) - (size_t)(const void *)(
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
756 p1
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
757 ) == 1) ? __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
758 p1
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
759 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
760 p2
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
761 ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
762 p1
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
763 ); int __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
764 p2
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
765 ))[0] - __s2[0]); if (__s2_len > 0
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
766 p2
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
767 ))[1] - __s2[1]); if (__s2_len > 1
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
768 p2
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
769 ))[2] - __s2[2]); if (__s2_len > 2
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( p2 ))[3] - __s2[3]);
0
770 p2
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( p2 ))[3] - __s2[3]);
0
771 ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
772 p1
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
773 ,
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
774 p2
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
775 )))); })
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
776 != 0
__extension__ ... )))); }) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
777 fprintf(-
778 stderr-
779 , "Passwords do not match.\n");-
780 passok = 0;-
781 }
never executed: end of block
0
782 explicit_bzero(p2, strlen(p2));-
783 free(p2);-
784 }
never executed: end of block
0
785 if (passok
passokDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
786 if ((
(r = ssh_lock_...ock, p1)) == 0Description
TRUEnever evaluated
FALSEnever evaluated
r = ssh_lock_agent(agent_fd, lock, p1)) == 0
(r = ssh_lock_...ock, p1)) == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
787 fprintf(-
788 stderr-
789 , "Agent %slocked.\n", lock ? "" : "un");-
790 ret = 0;-
791 }
never executed: end of block
else {
0
792 fprintf(-
793 stderr-
794 , "Failed to %slock agent: %s\n",-
795 lock ? "" : "un", ssh_err(r));-
796 }
never executed: end of block
0
797 }-
798 explicit_bzero(p1, strlen(p1));-
799 free(p1);-
800 return
never executed: return (ret);
(ret);
never executed: return (ret);
0
801}-
802-
803static int-
804do_file(int agent_fd, int deleting, int key_only, char *file, int qflag)-
805{-
806 if (deleting
deletingDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
807 if (delete_file(agent_fd, file, key_only, qflag) == -1
delete_file(ag..., qflag) == -1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
808 return
never executed: return -1;
-1;
never executed: return -1;
0
809 }
never executed: end of block
else {
0
810 if (add_file(agent_fd, file, key_only, qflag) == -1
add_file(agent..., qflag) == -1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
811 return
never executed: return -1;
-1;
never executed: return -1;
0
812 }
never executed: end of block
0
813 return
never executed: return 0;
0;
never executed: return 0;
0
814}-
815-
816static void-
817usage(void)-
818{-
819 fprintf(-
820 stderr-
821 , "usage: %s [options] [file ...]\n", __progname);-
822 fprintf(-
823 stderr-
824 , "Options:\n");-
825 fprintf(-
826 stderr-
827 , " -l List fingerprints of all identities.\n");-
828 fprintf(-
829 stderr-
830 , " -E hash Specify hash algorithm used for fingerprints.\n");-
831 fprintf(-
832 stderr-
833 , " -L List public key parameters of all identities.\n");-
834 fprintf(-
835 stderr-
836 , " -k Load only keys and not certificates.\n");-
837 fprintf(-
838 stderr-
839 , " -c Require confirmation to sign using identities\n");-
840 fprintf(-
841 stderr-
842 , " -m minleft Maxsign is only changed if less than minleft are left (for XMSS)\n");-
843 fprintf(-
844 stderr-
845 , " -M maxsign Maximum number of signatures allowed (for XMSS)\n");-
846 fprintf(-
847 stderr-
848 , " -t life Set lifetime (in seconds) when adding identities.\n");-
849 fprintf(-
850 stderr-
851 , " -d Delete identity.\n");-
852 fprintf(-
853 stderr-
854 , " -D Delete all identities.\n");-
855 fprintf(-
856 stderr-
857 , " -x Lock agent.\n");-
858 fprintf(-
859 stderr-
860 , " -X Unlock agent.\n");-
861 fprintf(-
862 stderr-
863 , " -s pkcs11 Add keys from PKCS#11 provider.\n");-
864 fprintf(-
865 stderr-
866 , " -e pkcs11 Remove keys provided by PKCS#11 provider.\n");-
867 fprintf(-
868 stderr-
869 , " -q Be quiet after a successful operation.\n");-
870}
never executed: end of block
0
871-
872int-
873main(int argc, char **argv)-
874{-
875 extern char *BSDoptarg;-
876 extern int BSDoptind;-
877 int agent_fd;-
878 char *pkcs11provider = -
879 ((void *)0)-
880 ;-
881 int r, i, ch, deleting = 0, ret = 0, key_only = 0;-
882 int xflag = 0, lflag = 0, Dflag = 0, qflag = 0;-
883-
884 ssh_malloc_init();-
885-
886 sanitise_stdfd();-
887-
888 __progname = ssh_get_progname(argv[0]);-
889 seed_rng();-
890-
891-
892 -
893OPENSSL_add_all_algorithms_noconf()-
894 ;-
895-
896-
897 setvbuf(-
898 stdout-
899 , -
900 ((void *)0)-
901 , -
902 1-
903 , 0);-
904-
905-
906 switch (r = ssh_get_authentication_socket(&agent_fd)) {-
907 case
never executed: case 0:
0:
never executed: case 0:
0
908 break;
never executed: break;
0
909 case
never executed: case -47:
-47:
never executed: case -47:
0
910 fprintf(-
911 stderr-
912 , "Could not open a connection to your "-
913 "authentication agent.\n");-
914 exit(2);
never executed: exit(2);
0
915 default
never executed: default:
:
never executed: default:
code before this statement never executed: default:
0
916 fprintf(-
917 stderr-
918 , "Error connecting to agent: %s\n", ssh_err(r));-
919 exit(2);
never executed: exit(2);
0
920 }-
921-
922 while ((
(ch = BSDgetop...qs:t:")) != -1Description
TRUEnever evaluated
FALSEnever evaluated
ch = BSDgetopt(argc, argv, "klLcdDxXE:e:M:m:qs:t:")) != -1
(ch = BSDgetop...qs:t:")) != -1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
923 switch (ch) {-
924 case
never executed: case 'E':
'E':
never executed: case 'E':
0
925 fingerprint_hash = ssh_digest_alg_by_name(BSDoptarg);-
926 if (fingerprint_hash == -1
fingerprint_hash == -1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
927 fatal("Invalid hash algorithm \"%s\"", BSDoptarg);
never executed: fatal("Invalid hash algorithm \"%s\"", BSDoptarg);
0
928 break;
never executed: break;
0
929 case
never executed: case 'k':
'k':
never executed: case 'k':
0
930 key_only = 1;-
931 break;
never executed: break;
0
932 case
never executed: case 'l':
'l':
never executed: case 'l':
0
933 case
never executed: case 'L':
'L':
never executed: case 'L':
0
934 if (lflag != 0
lflag != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
935 fatal("-%c flag already specified", lflag);
never executed: fatal("-%c flag already specified", lflag);
0
936 lflag = ch;-
937 break;
never executed: break;
0
938 case
never executed: case 'x':
'x':
never executed: case 'x':
0
939 case
never executed: case 'X':
'X':
never executed: case 'X':
0
940 if (xflag != 0
xflag != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
941 fatal("-%c flag already specified", xflag);
never executed: fatal("-%c flag already specified", xflag);
0
942 xflag = ch;-
943 break;
never executed: break;
0
944 case
never executed: case 'c':
'c':
never executed: case 'c':
0
945 confirm = 1;-
946 break;
never executed: break;
0
947 case
never executed: case 'm':
'm':
never executed: case 'm':
0
948 minleft = (int)strtonum(BSDoptarg, 1, -
949 (0x7fffffff * 2U + 1U)-
950 , -
951 ((void *)0)-
952 );-
953 if (minleft == 0
minleft == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
954 usage();-
955 ret = 1;-
956 goto
never executed: goto done;
done;
never executed: goto done;
0
957 }-
958 break;
never executed: break;
0
959 case
never executed: case 'M':
'M':
never executed: case 'M':
0
960 maxsign = (int)strtonum(BSDoptarg, 1, -
961 (0x7fffffff * 2U + 1U)-
962 , -
963 ((void *)0)-
964 );-
965 if (maxsign == 0
maxsign == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
966 usage();-
967 ret = 1;-
968 goto
never executed: goto done;
done;
never executed: goto done;
0
969 }-
970 break;
never executed: break;
0
971 case
never executed: case 'd':
'd':
never executed: case 'd':
0
972 deleting = 1;-
973 break;
never executed: break;
0
974 case
never executed: case 'D':
'D':
never executed: case 'D':
0
975 Dflag = 1;-
976 break;
never executed: break;
0
977 case
never executed: case 's':
's':
never executed: case 's':
0
978 pkcs11provider = BSDoptarg;-
979 break;
never executed: break;
0
980 case
never executed: case 'e':
'e':
never executed: case 'e':
0
981 deleting = 1;-
982 pkcs11provider = BSDoptarg;-
983 break;
never executed: break;
0
984 case
never executed: case 't':
't':
never executed: case 't':
0
985 if ((
(lifetime = co...optarg)) == -1Description
TRUEnever evaluated
FALSEnever evaluated
lifetime = convtime(BSDoptarg)) == -1
(lifetime = co...optarg)) == -1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
986 fprintf(-
987 stderr-
988 , "Invalid lifetime\n");-
989 ret = 1;-
990 goto
never executed: goto done;
done;
never executed: goto done;
0
991 }-
992 break;
never executed: break;
0
993 case
never executed: case 'q':
'q':
never executed: case 'q':
0
994 qflag = 1;-
995 break;
never executed: break;
0
996 default
never executed: default:
:
never executed: default:
0
997 usage();-
998 ret = 1;-
999 goto
never executed: goto done;
done;
never executed: goto done;
0
1000 }-
1001 }-
1002-
1003 if ((
(xflag != 0) +...flag != 0) > 1Description
TRUEnever evaluated
FALSEnever evaluated
xflag != 0) + (lflag != 0) + (Dflag != 0) > 1
(xflag != 0) +...flag != 0) > 1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1004 fatal("Invalid combination of actions");
never executed: fatal("Invalid combination of actions");
0
1005 else if (xflag
xflagDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1006 if (lock_agent(agent_fd, xflag == 'x' ? 1 : 0) == -1
lock_agent(age...? 1 : 0) == -1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1007 ret = 1;
never executed: ret = 1;
0
1008 goto
never executed: goto done;
done;
never executed: goto done;
0
1009 } else if (lflag
lflagDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1010 if (list_identities(agent_fd, lflag == 'l' ? 1 : 0) == -1
list_identitie...? 1 : 0) == -1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1011 ret = 1;
never executed: ret = 1;
0
1012 goto
never executed: goto done;
done;
never executed: goto done;
0
1013 } else if (Dflag
DflagDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1014 if (delete_all(agent_fd, qflag) == -1
delete_all(age..., qflag) == -1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1015 ret = 1;
never executed: ret = 1;
0
1016 goto
never executed: goto done;
done;
never executed: goto done;
0
1017 }-
1018-
1019 argc -= BSDoptind;-
1020 argv += BSDoptind;-
1021 if (pkcs11provider !=
pkcs11provider != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1022 ((void *)0)
pkcs11provider != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1023 ) {-
1024 if (update_card(agent_fd, !deleting, pkcs11provider,
update_card(ag..., qflag) == -1Description
TRUEnever evaluated
FALSEnever evaluated
0
1025 qflag) == -1
update_card(ag..., qflag) == -1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1026 ret = 1;
never executed: ret = 1;
0
1027 goto
never executed: goto done;
done;
never executed: goto done;
0
1028 }-
1029 if (argc == 0
argc == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1030 char buf[-
1031 4096-
1032 ];-
1033 struct passwd *pw;-
1034 struct stat st;-
1035 int count = 0;-
1036-
1037 if ((
(pw = getpwuid...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
pw = getpwuid(getuid())) ==
(pw = getpwuid...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1038 ((void *)0)
(pw = getpwuid...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1039 ) {-
1040 fprintf(-
1041 stderr-
1042 , "No user found with uid %u\n",-
1043 (u_int)getuid());-
1044 ret = 1;-
1045 goto
never executed: goto done;
done;
never executed: goto done;
0
1046 }-
1047-
1048 for (i = 0; default_files[i]
default_files[i]Description
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
1049 snprintf(buf, sizeof(buf), "%s/%s", pw->pw_dir,-
1050 default_files[i]);-
1051 if (stat(buf, &st) < 0
stat(buf, &st) < 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1052 continue;
never executed: continue;
0
1053 if (do_file(agent_fd, deleting, key_only, buf,
do_file(agent_..., qflag) == -1Description
TRUEnever evaluated
FALSEnever evaluated
0
1054 qflag) == -1
do_file(agent_..., qflag) == -1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1055 ret = 1;
never executed: ret = 1;
0
1056 else-
1057 count++;
never executed: count++;
0
1058 }-
1059 if (count == 0
count == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1060 ret = 1;
never executed: ret = 1;
0
1061 }
never executed: end of block
else {
0
1062 for (i = 0; i < argc
i < argcDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
1063 if (do_file(agent_fd, deleting, key_only,
do_file(agent_..., qflag) == -1Description
TRUEnever evaluated
FALSEnever evaluated
0
1064 argv[i], qflag) == -1
do_file(agent_..., qflag) == -1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1065 ret = 1;
never executed: ret = 1;
0
1066 }
never executed: end of block
0
1067 }
never executed: end of block
0
1068 clear_pass();-
1069-
1070done:
code before this statement never executed: done:
0
1071 ssh_close_authentication_socket(agent_fd);-
1072 return
never executed: return ret;
ret;
never executed: return ret;
0
1073}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2