OpenCoverage

base64.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssh/src/openbsd-compat/base64.c
Source codeSwitch to Preprocessed file
LineSourceCount
1/* $OpenBSD: base64.c,v 1.5 2006/10/21 09:55:03 otto Exp $ */-
2-
3/*-
4 * Copyright (c) 1996 by Internet Software Consortium.-
5 *-
6 * Permission to use, copy, modify, and distribute this software for any-
7 * purpose with or without fee is hereby granted, provided that the above-
8 * copyright notice and this permission notice appear in all copies.-
9 *-
10 * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS-
11 * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES-
12 * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE-
13 * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL-
14 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR-
15 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS-
16 * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS-
17 * SOFTWARE.-
18 */-
19-
20/*-
21 * Portions Copyright (c) 1995 by International Business Machines, Inc.-
22 *-
23 * International Business Machines, Inc. (hereinafter called IBM) grants-
24 * permission under its copyrights to use, copy, modify, and distribute this-
25 * Software with or without fee, provided that the above copyright notice and-
26 * all paragraphs of this notice appear in all copies, and that the name of IBM-
27 * not be used in connection with the marketing of any product incorporating-
28 * the Software or modifications thereof, without specific, written prior-
29 * permission.-
30 *-
31 * To the extent it has a right to do so, IBM grants an immunity from suit-
32 * under its patents, if any, for the use, sale or manufacture of products to-
33 * the extent that such products are used for performing Domain Name System-
34 * dynamic updates in TCP/IP networks by means of the Software. No immunity is-
35 * granted for any product per se or for any other function of any product.-
36 *-
37 * THE SOFTWARE IS PROVIDED "AS IS", AND IBM DISCLAIMS ALL WARRANTIES,-
38 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A-
39 * PARTICULAR PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL,-
40 * DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER ARISING-
41 * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE, EVEN-
42 * IF IBM IS APPRISED OF THE POSSIBILITY OF SUCH DAMAGES.-
43 */-
44-
45/* OPENBSD ORIGINAL: lib/libc/net/base64.c */-
46-
47#include "includes.h"-
48-
49#if (!defined(HAVE_B64_NTOP) && !defined(HAVE___B64_NTOP)) || (!defined(HAVE_B64_PTON) && !defined(HAVE___B64_PTON))-
50-
51#include <sys/types.h>-
52#include <sys/param.h>-
53#include <sys/socket.h>-
54#include <netinet/in.h>-
55#include <arpa/inet.h>-
56-
57#include <ctype.h>-
58#include <stdio.h>-
59-
60#include <stdlib.h>-
61#include <string.h>-
62-
63#include "base64.h"-
64-
65static const char Base64[] =-
66 "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";-
67static const char Pad64 = '=';-
68-
69/* (From RFC1521 and draft-ietf-dnssec-secext-03.txt)-
70 The following encoding technique is taken from RFC 1521 by Borenstein-
71 and Freed. It is reproduced here in a slightly edited form for-
72 convenience.-
73-
74 A 65-character subset of US-ASCII is used, enabling 6 bits to be-
75 represented per printable character. (The extra 65th character, "=",-
76 is used to signify a special processing function.)-
77-
78 The encoding process represents 24-bit groups of input bits as output-
79 strings of 4 encoded characters. Proceeding from left to right, a-
80 24-bit input group is formed by concatenating 3 8-bit input groups.-
81 These 24 bits are then treated as 4 concatenated 6-bit groups, each-
82 of which is translated into a single digit in the base64 alphabet.-
83-
84 Each 6-bit group is used as an index into an array of 64 printable-
85 characters. The character referenced by the index is placed in the-
86 output string.-
87-
88 Table 1: The Base64 Alphabet-
89-
90 Value Encoding Value Encoding Value Encoding Value Encoding-
91 0 A 17 R 34 i 51 z-
92 1 B 18 S 35 j 52 0-
93 2 C 19 T 36 k 53 1-
94 3 D 20 U 37 l 54 2-
95 4 E 21 V 38 m 55 3-
96 5 F 22 W 39 n 56 4-
97 6 G 23 X 40 o 57 5-
98 7 H 24 Y 41 p 58 6-
99 8 I 25 Z 42 q 59 7-
100 9 J 26 a 43 r 60 8-
101 10 K 27 b 44 s 61 9-
102 11 L 28 c 45 t 62 +-
103 12 M 29 d 46 u 63 /-
104 13 N 30 e 47 v-
105 14 O 31 f 48 w (pad) =-
106 15 P 32 g 49 x-
107 16 Q 33 h 50 y-
108-
109 Special processing is performed if fewer than 24 bits are available-
110 at the end of the data being encoded. A full encoding quantum is-
111 always completed at the end of a quantity. When fewer than 24 input-
112 bits are available in an input group, zero bits are added (on the-
113 right) to form an integral number of 6-bit groups. Padding at the-
114 end of the data is performed using the '=' character.-
115-
116 Since all base64 input is an integral number of octets, only the-
117 ------------------------------------------------- -
118 following cases can arise:-
119 -
120 (1) the final quantum of encoding input is an integral-
121 multiple of 24 bits; here, the final unit of encoded-
122 output will be an integral multiple of 4 characters-
123 with no "=" padding,-
124 (2) the final quantum of encoding input is exactly 8 bits;-
125 here, the final unit of encoded output will be two-
126 characters followed by two "=" padding characters, or-
127 (3) the final quantum of encoding input is exactly 16 bits;-
128 here, the final unit of encoded output will be three-
129 characters followed by one "=" padding character.-
130 */-
131-
132#if !defined(HAVE_B64_NTOP) && !defined(HAVE___B64_NTOP) -
133int-
134b64_ntop(u_char const *src, size_t srclength, char *target, size_t targsize)-
135{-
136 size_t datalength = 0;-
137 u_char input[3];-
138 u_char output[4];-
139 u_int i;-
140-
141 while (2 < srclength) {
2 < srclengthDescription
TRUEevaluated 10315 times by 5 tests
Evaluated by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
FALSEevaluated 873 times by 5 tests
Evaluated by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
873-10315
142 input[0] = *src++;-
143 input[1] = *src++;-
144 input[2] = *src++;-
145 srclength -= 3;-
146-
147 output[0] = input[0] >> 2;-
148 output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4);-
149 output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6);-
150 output[3] = input[2] & 0x3f;-
151-
152 if (datalength + 4 > targsize)
datalength + 4 > targsizeDescription
TRUEnever evaluated
FALSEevaluated 10315 times by 5 tests
Evaluated by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
0-10315
153 return (-1);
never executed: return (-1);
0
154 target[datalength++] = Base64[output[0]];-
155 target[datalength++] = Base64[output[1]];-
156 target[datalength++] = Base64[output[2]];-
157 target[datalength++] = Base64[output[3]];-
158 }
executed 10315 times by 5 tests: end of block
Executed by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
10315
159 -
160 /* Now we worry about padding. */-
161 if (0 != srclength) {
0 != srclengthDescription
TRUEevaluated 863 times by 5 tests
Evaluated by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
FALSEevaluated 10 times by 2 tests
Evaluated by:
  • ssh-keygen
  • test_sshbuf
10-863
162 /* Get what's left. */-
163 input[0] = input[1] = input[2] = '\0';-
164 for (i = 0; i < srclength; i++)
i < srclengthDescription
TRUEevaluated 1721 times by 5 tests
Evaluated by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
FALSEevaluated 863 times by 5 tests
Evaluated by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
863-1721
165 input[i] = *src++;
executed 1721 times by 5 tests: input[i] = *src++;
Executed by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
1721
166 -
167 output[0] = input[0] >> 2;-
168 output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4);-
169 output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6);-
170-
171 if (datalength + 4 > targsize)
datalength + 4 > targsizeDescription
TRUEnever evaluated
FALSEevaluated 863 times by 5 tests
Evaluated by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
0-863
172 return (-1);
never executed: return (-1);
0
173 target[datalength++] = Base64[output[0]];-
174 target[datalength++] = Base64[output[1]];-
175 if (srclength == 1)
srclength == 1Description
TRUEevaluated 5 times by 2 tests
Evaluated by:
  • ssh-keygen
  • test_sshbuf
FALSEevaluated 858 times by 5 tests
Evaluated by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
5-858
176 target[datalength++] = Pad64;
executed 5 times by 2 tests: target[datalength++] = Pad64;
Executed by:
  • ssh-keygen
  • test_sshbuf
5
177 else-
178 target[datalength++] = Base64[output[2]];
executed 858 times by 5 tests: target[datalength++] = Base64[output[2]];
Executed by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
858
179 target[datalength++] = Pad64;-
180 }
executed 863 times by 5 tests: end of block
Executed by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
863
181 if (datalength >= targsize)
datalength >= targsizeDescription
TRUEnever evaluated
FALSEevaluated 873 times by 5 tests
Evaluated by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
0-873
182 return (-1);
never executed: return (-1);
0
183 target[datalength] = '\0'; /* Returned value doesn't count \0. */-
184 return (datalength);
executed 873 times by 5 tests: return (datalength);
Executed by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
873
185}-
186#endif /* !defined(HAVE_B64_NTOP) && !defined(HAVE___B64_NTOP) */-
187-
188#if !defined(HAVE_B64_PTON) && !defined(HAVE___B64_PTON)-
189-
190/* skips all whitespace anywhere.-
191 converts characters, four at a time, starting at (or after)-
192 src from base - 64 numbers into three 8 bit bytes in the target area.-
193 it returns the number of data bytes stored at the target, or -1 on error.-
194 */-
195-
196int-
197b64_pton(char const *src, u_char *target, size_t targsize)-
198{-
199 u_int tarindex, state;-
200 int ch;-
201 char *pos;-
202-
203 state = 0;-
204 tarindex = 0;-
205-
206 while ((ch = *src++) != '\0') {
(ch = *src++) != '\0'Description
TRUEevaluated 7506067 times by 5 tests
Evaluated by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
FALSEevaluated 186 times by 4 tests
Evaluated by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshkey
186-7506067
207 if (isspace(ch)) /* Skip whitespace anywhere. */
((*__ctype_b_l...int) _ISspace)Description
TRUEnever evaluated
FALSEevaluated 7506067 times by 5 tests
Evaluated by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
0-7506067
208 continue;
never executed: continue;
0
209-
210 if (ch == Pad64)
ch == Pad64Description
TRUEevaluated 22734 times by 4 tests
Evaluated by:
  • ssh-keygen
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
FALSEevaluated 7483333 times by 5 tests
Evaluated by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
22734-7483333
211 break;
executed 22734 times by 4 tests: break;
Executed by:
  • ssh-keygen
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
22734
212-
213 pos = strchr(Base64, ch);
__builtin_constant_p ( ch )Description
TRUEnever evaluated
FALSEevaluated 7483333 times by 5 tests
Evaluated by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
!__builtin_con...t_p ( Base64 )Description
TRUEnever evaluated
FALSEnever evaluated
( ch ) == '\0'Description
TRUEnever evaluated
FALSEnever evaluated
0-7483333
214 if (pos == 0) /* A non-base64 character. */
pos == 0Description
TRUEnever evaluated
FALSEevaluated 7483333 times by 5 tests
Evaluated by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
0-7483333
215 return (-1);
never executed: return (-1);
0
216-
217 switch (state) {-
218 case 0:
executed 1881972 times by 5 tests: case 0:
Executed by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
1881972
219 if (target) {
targetDescription
TRUEevaluated 1881972 times by 5 tests
Evaluated by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
FALSEnever evaluated
0-1881972
220 if (tarindex >= targsize)
tarindex >= targsizeDescription
TRUEnever evaluated
FALSEevaluated 1881972 times by 5 tests
Evaluated by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
0-1881972
221 return (-1);
never executed: return (-1);
0
222 target[tarindex] = (pos - Base64) << 2;-
223 }
executed 1881972 times by 5 tests: end of block
Executed by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
1881972
224 state = 1;-
225 break;
executed 1881972 times by 5 tests: break;
Executed by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
1881972
226 case 1:
executed 1881972 times by 5 tests: case 1:
Executed by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
1881972
227 if (target) {
targetDescription
TRUEevaluated 1881972 times by 5 tests
Evaluated by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
FALSEnever evaluated
0-1881972
228 if (tarindex + 1 >= targsize)
tarindex + 1 >= targsizeDescription
TRUEnever evaluated
FALSEevaluated 1881972 times by 5 tests
Evaluated by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
0-1881972
229 return (-1);
never executed: return (-1);
0
230 target[tarindex] |= (pos - Base64) >> 4;-
231 target[tarindex+1] = ((pos - Base64) & 0x0f)-
232 << 4 ;-
233 }
executed 1881972 times by 5 tests: end of block
Executed by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
1881972
234 tarindex++;-
235 state = 2;-
236 break;
executed 1881972 times by 5 tests: break;
Executed by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
1881972
237 case 2:
executed 1860151 times by 5 tests: case 2:
Executed by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
1860151
238 if (target) {
targetDescription
TRUEevaluated 1860151 times by 5 tests
Evaluated by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
FALSEnever evaluated
0-1860151
239 if (tarindex + 1 >= targsize)
tarindex + 1 >= targsizeDescription
TRUEnever evaluated
FALSEevaluated 1860151 times by 5 tests
Evaluated by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
0-1860151
240 return (-1);
never executed: return (-1);
0
241 target[tarindex] |= (pos - Base64) >> 2;-
242 target[tarindex+1] = ((pos - Base64) & 0x03)-
243 << 6;-
244 }
executed 1860151 times by 5 tests: end of block
Executed by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
1860151
245 tarindex++;-
246 state = 3;-
247 break;
executed 1860151 times by 5 tests: break;
Executed by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
1860151
248 case 3:
executed 1859238 times by 5 tests: case 3:
Executed by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
1859238
249 if (target) {
targetDescription
TRUEevaluated 1859238 times by 5 tests
Evaluated by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
FALSEnever evaluated
0-1859238
250 if (tarindex >= targsize)
tarindex >= targsizeDescription
TRUEnever evaluated
FALSEevaluated 1859238 times by 5 tests
Evaluated by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
0-1859238
251 return (-1);
never executed: return (-1);
0
252 target[tarindex] |= (pos - Base64);-
253 }
executed 1859238 times by 5 tests: end of block
Executed by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
1859238
254 tarindex++;-
255 state = 0;-
256 break;
executed 1859238 times by 5 tests: break;
Executed by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
1859238
257 }-
258 }
executed 7483333 times by 5 tests: end of block
Executed by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
7483333
259-
260 /*-
261 * We are done decoding Base-64 chars. Let's see if we ended-
262 * on a byte boundary, and/or with erroneous trailing characters.-
263 */-
264-
265 if (ch == Pad64) { /* We got a pad char. */
ch == Pad64Description
TRUEevaluated 22734 times by 4 tests
Evaluated by:
  • ssh-keygen
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
FALSEevaluated 186 times by 4 tests
Evaluated by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshkey
186-22734
266 ch = *src++; /* Skip it, get next. */-
267 switch (state) {-
268 case 0: /* Invalid = in first position */
never executed: case 0:
0
269 case 1: /* Invalid = in second position */
never executed: case 1:
0
270 return (-1);
never executed: return (-1);
0
271-
272 case 2: /* Valid, means one byte of info */
executed 21821 times by 4 tests: case 2:
Executed by:
  • ssh-keygen
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
21821
273 /* Skip any number of spaces. */-
274 for (; ch != '\0'; ch = *src++)
ch != '\0'Description
TRUEevaluated 21821 times by 4 tests
Evaluated by:
  • ssh-keygen
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
FALSEnever evaluated
0-21821
275 if (!isspace(ch))
! ((*__ctype_b...int) _ISspace)Description
TRUEevaluated 21821 times by 4 tests
Evaluated by:
  • ssh-keygen
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
FALSEnever evaluated
0-21821
276 break;
executed 21821 times by 4 tests: break;
Executed by:
  • ssh-keygen
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
21821
277 /* Make sure there is another trailing = sign. */-
278 if (ch != Pad64)
ch != Pad64Description
TRUEevaluated 64 times by 1 test
Evaluated by:
  • test_sshkey
FALSEevaluated 21757 times by 4 tests
Evaluated by:
  • ssh-keygen
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
64-21757
279 return (-1);
executed 64 times by 1 test: return (-1);
Executed by:
  • test_sshkey
64
280 ch = *src++; /* Skip the = */-
281 /* Fall through to "single trailing =" case. */-
282 /* FALLTHROUGH */-
283-
284 case 3: /* Valid, means two bytes of info */
code before this statement executed 21757 times by 4 tests: case 3:
Executed by:
  • ssh-keygen
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
executed 913 times by 4 tests: case 3:
Executed by:
  • ssh-keygen
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
913-21757
285 /*-
286 * We know this char is an =. Is there anything but-
287 * whitespace after it?-
288 */-
289 for (; ch != '\0'; ch = *src++)
ch != '\0'Description
TRUEevaluated 257 times by 2 tests
Evaluated by:
  • ssh-keygen
  • test_sshkey
FALSEevaluated 22414 times by 4 tests
Evaluated by:
  • ssh-keygen
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
257-22414
290 if (!isspace(ch))
! ((*__ctype_b...int) _ISspace)Description
TRUEevaluated 256 times by 1 test
Evaluated by:
  • test_sshkey
FALSEevaluated 1 time by 1 test
Evaluated by:
  • ssh-keygen
1-256
291 return (-1);
executed 256 times by 1 test: return (-1);
Executed by:
  • test_sshkey
256
292-
293 /*-
294 * Now make sure for cases 2 and 3 that the "extra"-
295 * bits that slopped past the last full byte were-
296 * zeros. If we don't check them, they become a-
297 * subliminal channel.-
298 */-
299 if (target && target[tarindex] != 0)
targetDescription
TRUEevaluated 22414 times by 4 tests
Evaluated by:
  • ssh-keygen
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
FALSEnever evaluated
target[tarindex] != 0Description
TRUEevaluated 108 times by 1 test
Evaluated by:
  • test_sshkey
FALSEevaluated 22306 times by 4 tests
Evaluated by:
  • ssh-keygen
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
0-22414
300 return (-1);
executed 108 times by 1 test: return (-1);
Executed by:
  • test_sshkey
108
301 }
executed 22306 times by 4 tests: end of block
Executed by:
  • ssh-keygen
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
22306
302 } else {
executed 22306 times by 4 tests: end of block
Executed by:
  • ssh-keygen
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
22306
303 /*-
304 * We ended by seeing the end of the string. Make sure we-
305 * have no partial bytes lying around.-
306 */-
307 if (state != 0)
state != 0Description
TRUEnever evaluated
FALSEevaluated 186 times by 4 tests
Evaluated by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshkey
0-186
308 return (-1);
never executed: return (-1);
0
309 }
executed 186 times by 4 tests: end of block
Executed by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshkey
186
310-
311 return (tarindex);
executed 22492 times by 5 tests: return (tarindex);
Executed by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_sshbuf
  • test_sshkey
22492
312}-
313-
314#endif /* !defined(HAVE_B64_PTON) && !defined(HAVE___B64_PTON) */-
315#endif -
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.2.2