Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/bn/bn_print.c |
Source code | Switch to Preprocessed file |
Line | Source | Count | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | /* | - | ||||||||||||||||||
2 | * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved. | - | ||||||||||||||||||
3 | * | - | ||||||||||||||||||
4 | * Licensed under the OpenSSL license (the "License"). You may not use | - | ||||||||||||||||||
5 | * this file except in compliance with the License. You can obtain a copy | - | ||||||||||||||||||
6 | * in the file LICENSE in the source distribution or at | - | ||||||||||||||||||
7 | * https://www.openssl.org/source/license.html | - | ||||||||||||||||||
8 | */ | - | ||||||||||||||||||
9 | - | |||||||||||||||||||
10 | #include <stdio.h> | - | ||||||||||||||||||
11 | #include "internal/ctype.h" | - | ||||||||||||||||||
12 | #include <limits.h> | - | ||||||||||||||||||
13 | #include "internal/cryptlib.h" | - | ||||||||||||||||||
14 | #include <openssl/buffer.h> | - | ||||||||||||||||||
15 | #include "bn_lcl.h" | - | ||||||||||||||||||
16 | - | |||||||||||||||||||
17 | static const char Hex[] = "0123456789ABCDEF"; | - | ||||||||||||||||||
18 | - | |||||||||||||||||||
19 | /* Must 'OPENSSL_free' the returned data */ | - | ||||||||||||||||||
20 | char *BN_bn2hex(const BIGNUM *a) | - | ||||||||||||||||||
21 | { | - | ||||||||||||||||||
22 | int i, j, v, z = 0; | - | ||||||||||||||||||
23 | char *buf; | - | ||||||||||||||||||
24 | char *p; | - | ||||||||||||||||||
25 | - | |||||||||||||||||||
26 | if (BN_is_zero(a))
| 5-1728 | ||||||||||||||||||
27 | return OPENSSL_strdup("0"); executed 5 times by 1 test: return CRYPTO_strdup("0", __FILE__, 27); Executed by:
| 5 | ||||||||||||||||||
28 | buf = OPENSSL_malloc(a->top * BN_BYTES * 2 + 2); | - | ||||||||||||||||||
29 | if (buf == NULL) {
| 0-1728 | ||||||||||||||||||
30 | BNerr(BN_F_BN_BN2HEX, ERR_R_MALLOC_FAILURE); | - | ||||||||||||||||||
31 | goto err; never executed: goto err; | 0 | ||||||||||||||||||
32 | } | - | ||||||||||||||||||
33 | p = buf; | - | ||||||||||||||||||
34 | if (a->neg)
| 733-995 | ||||||||||||||||||
35 | *p++ = '-'; executed 733 times by 1 test: *p++ = '-'; Executed by:
| 733 | ||||||||||||||||||
36 | for (i = a->top - 1; i >= 0; i--) {
| 1728-7472 | ||||||||||||||||||
37 | for (j = BN_BITS2 - 8; j >= 0; j -= 8) {
| 7472-59776 | ||||||||||||||||||
38 | /* strip leading zeros */ | - | ||||||||||||||||||
39 | v = (int)((a->d[i] >> j) & 0xff); | - | ||||||||||||||||||
40 | if (z || v != 0) {
| 1728-47804 | ||||||||||||||||||
41 | *p++ = Hex[v >> 4]; | - | ||||||||||||||||||
42 | *p++ = Hex[v & 0x0f]; | - | ||||||||||||||||||
43 | z = 1; | - | ||||||||||||||||||
44 | } executed 49532 times by 1 test: end of block Executed by:
| 49532 | ||||||||||||||||||
45 | } executed 59776 times by 1 test: end of block Executed by:
| 59776 | ||||||||||||||||||
46 | } executed 7472 times by 1 test: end of block Executed by:
| 7472 | ||||||||||||||||||
47 | *p = '\0'; | - | ||||||||||||||||||
48 | err: code before this statement executed 1728 times by 1 test: err: Executed by:
| 1728 | ||||||||||||||||||
49 | return buf; executed 1728 times by 1 test: return buf; Executed by:
| 1728 | ||||||||||||||||||
50 | } | - | ||||||||||||||||||
51 | - | |||||||||||||||||||
52 | /* Must 'OPENSSL_free' the returned data */ | - | ||||||||||||||||||
53 | char *BN_bn2dec(const BIGNUM *a) | - | ||||||||||||||||||
54 | { | - | ||||||||||||||||||
55 | int i = 0, num, ok = 0, n, tbytes; | - | ||||||||||||||||||
56 | char *buf = NULL; | - | ||||||||||||||||||
57 | char *p; | - | ||||||||||||||||||
58 | BIGNUM *t = NULL; | - | ||||||||||||||||||
59 | BN_ULONG *bn_data = NULL, *lp; | - | ||||||||||||||||||
60 | int bn_data_num; | - | ||||||||||||||||||
61 | - | |||||||||||||||||||
62 | /*- | - | ||||||||||||||||||
63 | * get an upper bound for the length of the decimal integer | - | ||||||||||||||||||
64 | * num <= (BN_num_bits(a) + 1) * log(2) | - | ||||||||||||||||||
65 | * <= 3 * BN_num_bits(a) * 0.101 + log(2) + 1 (rounding error) | - | ||||||||||||||||||
66 | * <= 3 * BN_num_bits(a) / 10 + 3 * BN_num_bits / 1000 + 1 + 1 | - | ||||||||||||||||||
67 | */ | - | ||||||||||||||||||
68 | i = BN_num_bits(a) * 3; | - | ||||||||||||||||||
69 | num = (i / 10 + i / 1000 + 1) + 1; | - | ||||||||||||||||||
70 | tbytes = num + 3; /* negative and terminator and one spare? */ | - | ||||||||||||||||||
71 | bn_data_num = num / BN_DEC_NUM + 1; | - | ||||||||||||||||||
72 | bn_data = OPENSSL_malloc(bn_data_num * sizeof(BN_ULONG)); | - | ||||||||||||||||||
73 | buf = OPENSSL_malloc(tbytes); | - | ||||||||||||||||||
74 | if (buf == NULL || bn_data == NULL) {
| 0-18302 | ||||||||||||||||||
75 | BNerr(BN_F_BN_BN2DEC, ERR_R_MALLOC_FAILURE); | - | ||||||||||||||||||
76 | goto err; never executed: goto err; | 0 | ||||||||||||||||||
77 | } | - | ||||||||||||||||||
78 | if ((t = BN_dup(a)) == NULL)
| 0-18302 | ||||||||||||||||||
79 | goto err; never executed: goto err; | 0 | ||||||||||||||||||
80 | - | |||||||||||||||||||
81 | p = buf; | - | ||||||||||||||||||
82 | lp = bn_data; | - | ||||||||||||||||||
83 | if (BN_is_zero(t)) {
| 1160-17142 | ||||||||||||||||||
84 | *p++ = '0'; | - | ||||||||||||||||||
85 | *p++ = '\0'; | - | ||||||||||||||||||
86 | } else { executed 1160 times by 1 test: end of block Executed by:
| 1160 | ||||||||||||||||||
87 | if (BN_is_negative(t))
| 1906-15236 | ||||||||||||||||||
88 | *p++ = '-'; executed 1906 times by 1 test: *p++ = '-'; Executed by:
| 1906 | ||||||||||||||||||
89 | - | |||||||||||||||||||
90 | while (!BN_is_zero(t)) {
| 17142-35612 | ||||||||||||||||||
91 | if (lp - bn_data >= bn_data_num)
| 0-35612 | ||||||||||||||||||
92 | goto err; never executed: goto err; | 0 | ||||||||||||||||||
93 | *lp = BN_div_word(t, BN_DEC_CONV); | - | ||||||||||||||||||
94 | if (*lp == (BN_ULONG)-1)
| 0-35612 | ||||||||||||||||||
95 | goto err; never executed: goto err; | 0 | ||||||||||||||||||
96 | lp++; | - | ||||||||||||||||||
97 | } executed 35612 times by 1 test: end of block Executed by:
| 35612 | ||||||||||||||||||
98 | lp--; | - | ||||||||||||||||||
99 | /* | - | ||||||||||||||||||
100 | * We now have a series of blocks, BN_DEC_NUM chars in length, where | - | ||||||||||||||||||
101 | * the last one needs truncation. The blocks need to be reversed in | - | ||||||||||||||||||
102 | * order. | - | ||||||||||||||||||
103 | */ | - | ||||||||||||||||||
104 | n = BIO_snprintf(p, tbytes - (size_t)(p - buf), BN_DEC_FMT1, *lp); | - | ||||||||||||||||||
105 | if (n < 0)
| 0-17142 | ||||||||||||||||||
106 | goto err; never executed: goto err; | 0 | ||||||||||||||||||
107 | p += n; | - | ||||||||||||||||||
108 | while (lp != bn_data) {
| 17142-18470 | ||||||||||||||||||
109 | lp--; | - | ||||||||||||||||||
110 | n = BIO_snprintf(p, tbytes - (size_t)(p - buf), BN_DEC_FMT2, *lp); | - | ||||||||||||||||||
111 | if (n < 0)
| 0-18470 | ||||||||||||||||||
112 | goto err; never executed: goto err; | 0 | ||||||||||||||||||
113 | p += n; | - | ||||||||||||||||||
114 | } executed 18470 times by 1 test: end of block Executed by:
| 18470 | ||||||||||||||||||
115 | } executed 17142 times by 1 test: end of block Executed by:
| 17142 | ||||||||||||||||||
116 | ok = 1; | - | ||||||||||||||||||
117 | err: code before this statement executed 18302 times by 1 test: err: Executed by:
| 18302 | ||||||||||||||||||
118 | OPENSSL_free(bn_data); | - | ||||||||||||||||||
119 | BN_free(t); | - | ||||||||||||||||||
120 | if (ok)
| 0-18302 | ||||||||||||||||||
121 | return buf; executed 18302 times by 1 test: return buf; Executed by:
| 18302 | ||||||||||||||||||
122 | OPENSSL_free(buf); | - | ||||||||||||||||||
123 | return NULL; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
124 | } | - | ||||||||||||||||||
125 | - | |||||||||||||||||||
126 | int BN_hex2bn(BIGNUM **bn, const char *a) | - | ||||||||||||||||||
127 | { | - | ||||||||||||||||||
128 | BIGNUM *ret = NULL; | - | ||||||||||||||||||
129 | BN_ULONG l = 0; | - | ||||||||||||||||||
130 | int neg = 0, h, m, i, j, k, c; | - | ||||||||||||||||||
131 | int num; | - | ||||||||||||||||||
132 | - | |||||||||||||||||||
133 | if (a == NULL || *a == '\0')
| 0-8393 | ||||||||||||||||||
134 | return 0; never executed: return 0; | 0 | ||||||||||||||||||
135 | - | |||||||||||||||||||
136 | if (*a == '-') {
| 1796-6597 | ||||||||||||||||||
137 | neg = 1; | - | ||||||||||||||||||
138 | a++; | - | ||||||||||||||||||
139 | } executed 1796 times by 1 test: end of block Executed by:
| 1796 | ||||||||||||||||||
140 | - | |||||||||||||||||||
141 | for (i = 0; i <= INT_MAX / 4 && ossl_isxdigit(a[i]); i++)
| 0-803016 | ||||||||||||||||||
142 | continue; executed 794623 times by 2 tests: continue; Executed by:
| 794623 | ||||||||||||||||||
143 | - | |||||||||||||||||||
144 | if (i == 0 || i > INT_MAX / 4)
| 0-8393 | ||||||||||||||||||
145 | goto err; never executed: goto err; | 0 | ||||||||||||||||||
146 | - | |||||||||||||||||||
147 | num = i + neg; | - | ||||||||||||||||||
148 | if (bn == NULL)
| 0-8393 | ||||||||||||||||||
149 | return num; never executed: return num; | 0 | ||||||||||||||||||
150 | - | |||||||||||||||||||
151 | /* a is the start of the hex digits, and it is 'i' long */ | - | ||||||||||||||||||
152 | if (*bn == NULL) {
| 212-8181 | ||||||||||||||||||
153 | if ((ret = BN_new()) == NULL)
| 0-8181 | ||||||||||||||||||
154 | return 0; never executed: return 0; | 0 | ||||||||||||||||||
155 | } else { executed 8181 times by 2 tests: end of block Executed by:
| 8181 | ||||||||||||||||||
156 | ret = *bn; | - | ||||||||||||||||||
157 | BN_zero(ret); | - | ||||||||||||||||||
158 | } executed 212 times by 1 test: end of block Executed by:
| 212 | ||||||||||||||||||
159 | - | |||||||||||||||||||
160 | /* i is the number of hex digits */ | - | ||||||||||||||||||
161 | if (bn_expand(ret, i * 4) == NULL)
| 0-8393 | ||||||||||||||||||
162 | goto err; never executed: goto err; | 0 | ||||||||||||||||||
163 | - | |||||||||||||||||||
164 | j = i; /* least significant 'hex' */ | - | ||||||||||||||||||
165 | m = 0; | - | ||||||||||||||||||
166 | h = 0; | - | ||||||||||||||||||
167 | while (j > 0) {
| 8393-53559 | ||||||||||||||||||
168 | m = (BN_BYTES * 2 <= j) ? BN_BYTES * 2 : j;
| 6418-47141 | ||||||||||||||||||
169 | l = 0; | - | ||||||||||||||||||
170 | for (;;) { | - | ||||||||||||||||||
171 | c = a[j - m]; | - | ||||||||||||||||||
172 | k = OPENSSL_hexchar2int(c); | - | ||||||||||||||||||
173 | if (k < 0)
| 0-794623 | ||||||||||||||||||
174 | k = 0; /* paranoia */ never executed: k = 0; | 0 | ||||||||||||||||||
175 | l = (l << 4) | k; | - | ||||||||||||||||||
176 | - | |||||||||||||||||||
177 | if (--m <= 0) {
| 53559-741064 | ||||||||||||||||||
178 | ret->d[h++] = l; | - | ||||||||||||||||||
179 | break; executed 53559 times by 2 tests: break; Executed by:
| 53559 | ||||||||||||||||||
180 | } | - | ||||||||||||||||||
181 | } executed 741064 times by 2 tests: end of block Executed by:
| 741064 | ||||||||||||||||||
182 | j -= BN_BYTES * 2; | - | ||||||||||||||||||
183 | } executed 53559 times by 2 tests: end of block Executed by:
| 53559 | ||||||||||||||||||
184 | ret->top = h; | - | ||||||||||||||||||
185 | bn_correct_top(ret); | - | ||||||||||||||||||
186 | - | |||||||||||||||||||
187 | *bn = ret; | - | ||||||||||||||||||
188 | bn_check_top(ret); | - | ||||||||||||||||||
189 | /* Don't set the negative flag if it's zero. */ | - | ||||||||||||||||||
190 | if (ret->top != 0)
| 111-8282 | ||||||||||||||||||
191 | ret->neg = neg; executed 8282 times by 2 tests: ret->neg = neg; Executed by:
| 8282 | ||||||||||||||||||
192 | return num; executed 8393 times by 2 tests: return num; Executed by:
| 8393 | ||||||||||||||||||
193 | err: | - | ||||||||||||||||||
194 | if (*bn == NULL)
| 0 | ||||||||||||||||||
195 | BN_free(ret); never executed: BN_free(ret); | 0 | ||||||||||||||||||
196 | return 0; never executed: return 0; | 0 | ||||||||||||||||||
197 | } | - | ||||||||||||||||||
198 | - | |||||||||||||||||||
199 | int BN_dec2bn(BIGNUM **bn, const char *a) | - | ||||||||||||||||||
200 | { | - | ||||||||||||||||||
201 | BIGNUM *ret = NULL; | - | ||||||||||||||||||
202 | BN_ULONG l = 0; | - | ||||||||||||||||||
203 | int neg = 0, i, j; | - | ||||||||||||||||||
204 | int num; | - | ||||||||||||||||||
205 | - | |||||||||||||||||||
206 | if (a == NULL || *a == '\0')
| 0-44 | ||||||||||||||||||
207 | return 0; never executed: return 0; | 0 | ||||||||||||||||||
208 | if (*a == '-') {
| 3-41 | ||||||||||||||||||
209 | neg = 1; | - | ||||||||||||||||||
210 | a++; | - | ||||||||||||||||||
211 | } executed 3 times by 1 test: end of block Executed by:
| 3 | ||||||||||||||||||
212 | - | |||||||||||||||||||
213 | for (i = 0; i <= INT_MAX / 4 && ossl_isdigit(a[i]); i++)
| 0-1130 | ||||||||||||||||||
214 | continue; executed 1086 times by 1 test: continue; Executed by:
| 1086 | ||||||||||||||||||
215 | - | |||||||||||||||||||
216 | if (i == 0 || i > INT_MAX / 4)
| 0-44 | ||||||||||||||||||
217 | goto err; never executed: goto err; | 0 | ||||||||||||||||||
218 | - | |||||||||||||||||||
219 | num = i + neg; | - | ||||||||||||||||||
220 | if (bn == NULL)
| 0-44 | ||||||||||||||||||
221 | return num; never executed: return num; | 0 | ||||||||||||||||||
222 | - | |||||||||||||||||||
223 | /* | - | ||||||||||||||||||
224 | * a is the start of the digits, and it is 'i' long. We chop it into | - | ||||||||||||||||||
225 | * BN_DEC_NUM digits at a time | - | ||||||||||||||||||
226 | */ | - | ||||||||||||||||||
227 | if (*bn == NULL) {
| 9-35 | ||||||||||||||||||
228 | if ((ret = BN_new()) == NULL)
| 0-9 | ||||||||||||||||||
229 | return 0; never executed: return 0; | 0 | ||||||||||||||||||
230 | } else { executed 9 times by 1 test: end of block Executed by:
| 9 | ||||||||||||||||||
231 | ret = *bn; | - | ||||||||||||||||||
232 | BN_zero(ret); | - | ||||||||||||||||||
233 | } executed 35 times by 1 test: end of block Executed by:
| 35 | ||||||||||||||||||
234 | - | |||||||||||||||||||
235 | /* i is the number of digits, a bit of an over expand */ | - | ||||||||||||||||||
236 | if (bn_expand(ret, i * 4) == NULL)
| 0-44 | ||||||||||||||||||
237 | goto err; never executed: goto err; | 0 | ||||||||||||||||||
238 | - | |||||||||||||||||||
239 | j = BN_DEC_NUM - i % BN_DEC_NUM; | - | ||||||||||||||||||
240 | if (j == BN_DEC_NUM)
| 2-42 | ||||||||||||||||||
241 | j = 0; executed 2 times by 1 test: j = 0; Executed by:
| 2 | ||||||||||||||||||
242 | l = 0; | - | ||||||||||||||||||
243 | while (--i >= 0) {
| 44-1086 | ||||||||||||||||||
244 | l *= 10; | - | ||||||||||||||||||
245 | l += *a - '0'; | - | ||||||||||||||||||
246 | a++; | - | ||||||||||||||||||
247 | if (++j == BN_DEC_NUM) {
| 89-997 | ||||||||||||||||||
248 | if (!BN_mul_word(ret, BN_DEC_CONV)
| 0-89 | ||||||||||||||||||
249 | || !BN_add_word(ret, l))
| 0-89 | ||||||||||||||||||
250 | goto err; never executed: goto err; | 0 | ||||||||||||||||||
251 | l = 0; | - | ||||||||||||||||||
252 | j = 0; | - | ||||||||||||||||||
253 | } executed 89 times by 1 test: end of block Executed by:
| 89 | ||||||||||||||||||
254 | } executed 1086 times by 1 test: end of block Executed by:
| 1086 | ||||||||||||||||||
255 | - | |||||||||||||||||||
256 | bn_correct_top(ret); | - | ||||||||||||||||||
257 | *bn = ret; | - | ||||||||||||||||||
258 | bn_check_top(ret); | - | ||||||||||||||||||
259 | /* Don't set the negative flag if it's zero. */ | - | ||||||||||||||||||
260 | if (ret->top != 0)
| 8-36 | ||||||||||||||||||
261 | ret->neg = neg; executed 36 times by 1 test: ret->neg = neg; Executed by:
| 36 | ||||||||||||||||||
262 | return num; executed 44 times by 1 test: return num; Executed by:
| 44 | ||||||||||||||||||
263 | err: | - | ||||||||||||||||||
264 | if (*bn == NULL)
| 0 | ||||||||||||||||||
265 | BN_free(ret); never executed: BN_free(ret); | 0 | ||||||||||||||||||
266 | return 0; never executed: return 0; | 0 | ||||||||||||||||||
267 | } | - | ||||||||||||||||||
268 | - | |||||||||||||||||||
269 | int BN_asc2bn(BIGNUM **bn, const char *a) | - | ||||||||||||||||||
270 | { | - | ||||||||||||||||||
271 | const char *p = a; | - | ||||||||||||||||||
272 | - | |||||||||||||||||||
273 | if (*p == '-')
| 5-9 | ||||||||||||||||||
274 | p++; executed 5 times by 1 test: p++; Executed by:
| 5 | ||||||||||||||||||
275 | - | |||||||||||||||||||
276 | if (p[0] == '0' && (p[1] == 'X' || p[1] == 'x')) {
| 1-8 | ||||||||||||||||||
277 | if (!BN_hex2bn(bn, p + 2))
| 0-3 | ||||||||||||||||||
278 | return 0; never executed: return 0; | 0 | ||||||||||||||||||
279 | } else { executed 3 times by 1 test: end of block Executed by:
| 3 | ||||||||||||||||||
280 | if (!BN_dec2bn(bn, p))
| 0-11 | ||||||||||||||||||
281 | return 0; never executed: return 0; | 0 | ||||||||||||||||||
282 | } executed 11 times by 1 test: end of block Executed by:
| 11 | ||||||||||||||||||
283 | /* Don't set the negative flag if it's zero. */ | - | ||||||||||||||||||
284 | if (*a == '-' && (*bn)->top != 0)
| 1-9 | ||||||||||||||||||
285 | (*bn)->neg = 1; executed 4 times by 1 test: (*bn)->neg = 1; Executed by:
| 4 | ||||||||||||||||||
286 | return 1; executed 14 times by 1 test: return 1; Executed by:
| 14 | ||||||||||||||||||
287 | } | - | ||||||||||||||||||
288 | - | |||||||||||||||||||
289 | # ifndef OPENSSL_NO_STDIO | - | ||||||||||||||||||
290 | int BN_print_fp(FILE *fp, const BIGNUM *a) | - | ||||||||||||||||||
291 | { | - | ||||||||||||||||||
292 | BIO *b; | - | ||||||||||||||||||
293 | int ret; | - | ||||||||||||||||||
294 | - | |||||||||||||||||||
295 | if ((b = BIO_new(BIO_s_file())) == NULL)
| 0 | ||||||||||||||||||
296 | return 0; never executed: return 0; | 0 | ||||||||||||||||||
297 | BIO_set_fp(b, fp, BIO_NOCLOSE); | - | ||||||||||||||||||
298 | ret = BN_print(b, a); | - | ||||||||||||||||||
299 | BIO_free(b); | - | ||||||||||||||||||
300 | return ret; never executed: return ret; | 0 | ||||||||||||||||||
301 | } | - | ||||||||||||||||||
302 | # endif | - | ||||||||||||||||||
303 | - | |||||||||||||||||||
304 | int BN_print(BIO *bp, const BIGNUM *a) | - | ||||||||||||||||||
305 | { | - | ||||||||||||||||||
306 | int i, j, v, z = 0; | - | ||||||||||||||||||
307 | int ret = 0; | - | ||||||||||||||||||
308 | - | |||||||||||||||||||
309 | if ((a->neg) && BIO_write(bp, "-", 1) != 1)
| 0-11205 | ||||||||||||||||||
310 | goto end; never executed: goto end; | 0 | ||||||||||||||||||
311 | if (BN_is_zero(a) && BIO_write(bp, "0", 1) != 1)
| 0-10874 | ||||||||||||||||||
312 | goto end; never executed: goto end; | 0 | ||||||||||||||||||
313 | for (i = a->top - 1; i >= 0; i--) {
| 11205-30388 | ||||||||||||||||||
314 | for (j = BN_BITS2 - 4; j >= 0; j -= 4) {
| 30388-486208 | ||||||||||||||||||
315 | /* strip leading zeros */ | - | ||||||||||||||||||
316 | v = (int)((a->d[i] >> j) & 0x0f); | - | ||||||||||||||||||
317 | if (z || v != 0) {
| 10874-346049 | ||||||||||||||||||
318 | if (BIO_write(bp, &Hex[v], 1) != 1)
| 0-356923 | ||||||||||||||||||
319 | goto end; never executed: goto end; | 0 | ||||||||||||||||||
320 | z = 1; | - | ||||||||||||||||||
321 | } executed 356923 times by 1 test: end of block Executed by:
| 356923 | ||||||||||||||||||
322 | } executed 486208 times by 1 test: end of block Executed by:
| 486208 | ||||||||||||||||||
323 | } executed 30388 times by 1 test: end of block Executed by:
| 30388 | ||||||||||||||||||
324 | ret = 1; | - | ||||||||||||||||||
325 | end: code before this statement executed 11205 times by 1 test: end: Executed by:
| 11205 | ||||||||||||||||||
326 | return ret; executed 11205 times by 1 test: return ret; Executed by:
| 11205 | ||||||||||||||||||
327 | } | - | ||||||||||||||||||
328 | - | |||||||||||||||||||
329 | char *BN_options(void) | - | ||||||||||||||||||
330 | { | - | ||||||||||||||||||
331 | static int init = 0; | - | ||||||||||||||||||
332 | static char data[16]; | - | ||||||||||||||||||
333 | - | |||||||||||||||||||
334 | if (!init) {
| 0 | ||||||||||||||||||
335 | init++; | - | ||||||||||||||||||
336 | #ifdef BN_LLONG | - | ||||||||||||||||||
337 | BIO_snprintf(data, sizeof(data), "bn(%zu,%zu)", | - | ||||||||||||||||||
338 | sizeof(BN_ULLONG) * 8, sizeof(BN_ULONG) * 8); | - | ||||||||||||||||||
339 | #else | - | ||||||||||||||||||
340 | BIO_snprintf(data, sizeof(data), "bn(%zu,%zu)", | - | ||||||||||||||||||
341 | sizeof(BN_ULONG) * 8, sizeof(BN_ULONG) * 8); | - | ||||||||||||||||||
342 | #endif | - | ||||||||||||||||||
343 | } never executed: end of block | 0 | ||||||||||||||||||
344 | return data; never executed: return data; | 0 | ||||||||||||||||||
345 | } | - | ||||||||||||||||||
Source code | Switch to Preprocessed file |