Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/ec/ecp_oct.c |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | - | |||||||||||||||||||||||||||||||||||||
2 | - | |||||||||||||||||||||||||||||||||||||
3 | int | - | ||||||||||||||||||||||||||||||||||||
4 | ec_GFp_simple_set_compressed_coordinates(const EC_GROUP * group, | - | ||||||||||||||||||||||||||||||||||||
5 | EC_POINT * point, const BIGNUM * x_, int y_bit, BN_CTX * ctx) | - | ||||||||||||||||||||||||||||||||||||
6 | { | - | ||||||||||||||||||||||||||||||||||||
7 | BN_CTX *new_ctx = | - | ||||||||||||||||||||||||||||||||||||
8 | ((void *)0) | - | ||||||||||||||||||||||||||||||||||||
9 | ; | - | ||||||||||||||||||||||||||||||||||||
10 | BIGNUM *tmp1, *tmp2, *x, *y; | - | ||||||||||||||||||||||||||||||||||||
11 | int ret = 0; | - | ||||||||||||||||||||||||||||||||||||
12 | - | |||||||||||||||||||||||||||||||||||||
13 | - | |||||||||||||||||||||||||||||||||||||
14 | ERR_clear_error(); | - | ||||||||||||||||||||||||||||||||||||
15 | - | |||||||||||||||||||||||||||||||||||||
16 | if (ctx ==
| 0-7 | ||||||||||||||||||||||||||||||||||||
17 | ((void *)0)
| 0-7 | ||||||||||||||||||||||||||||||||||||
18 | ) { | - | ||||||||||||||||||||||||||||||||||||
19 | ctx = new_ctx = BN_CTX_new(); | - | ||||||||||||||||||||||||||||||||||||
20 | if (ctx ==
| 0 | ||||||||||||||||||||||||||||||||||||
21 | ((void *)0)
| 0 | ||||||||||||||||||||||||||||||||||||
22 | ) | - | ||||||||||||||||||||||||||||||||||||
23 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||||||||||||||
24 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||
25 | y_bit = (y_bit != 0); | - | ||||||||||||||||||||||||||||||||||||
26 | - | |||||||||||||||||||||||||||||||||||||
27 | BN_CTX_start(ctx); | - | ||||||||||||||||||||||||||||||||||||
28 | if ((
| 0-7 | ||||||||||||||||||||||||||||||||||||
29 | ((void *)0)
| 0-7 | ||||||||||||||||||||||||||||||||||||
30 | ) | - | ||||||||||||||||||||||||||||||||||||
31 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
32 | if ((
| 0-7 | ||||||||||||||||||||||||||||||||||||
33 | ((void *)0)
| 0-7 | ||||||||||||||||||||||||||||||||||||
34 | ) | - | ||||||||||||||||||||||||||||||||||||
35 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
36 | if ((
| 0-7 | ||||||||||||||||||||||||||||||||||||
37 | ((void *)0)
| 0-7 | ||||||||||||||||||||||||||||||||||||
38 | ) | - | ||||||||||||||||||||||||||||||||||||
39 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
40 | if ((
| 0-7 | ||||||||||||||||||||||||||||||||||||
41 | ((void *)0)
| 0-7 | ||||||||||||||||||||||||||||||||||||
42 | ) | - | ||||||||||||||||||||||||||||||||||||
43 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
44 | - | |||||||||||||||||||||||||||||||||||||
45 | - | |||||||||||||||||||||||||||||||||||||
46 | - | |||||||||||||||||||||||||||||||||||||
47 | - | |||||||||||||||||||||||||||||||||||||
48 | - | |||||||||||||||||||||||||||||||||||||
49 | - | |||||||||||||||||||||||||||||||||||||
50 | - | |||||||||||||||||||||||||||||||||||||
51 | if (!BN_nnmod(x, x_, &group->field, ctx)
| 0-7 | ||||||||||||||||||||||||||||||||||||
52 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
53 | if (group->meth->field_decode == 0
| 0-7 | ||||||||||||||||||||||||||||||||||||
54 | - | |||||||||||||||||||||||||||||||||||||
55 | if (!group->meth->field_sqr(group, tmp2, x_, ctx)
| 0 | ||||||||||||||||||||||||||||||||||||
56 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
57 | if (!group->meth->field_mul(group, tmp1, tmp2, x_, ctx)
| 0 | ||||||||||||||||||||||||||||||||||||
58 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
59 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||||||||
60 | if (!BN_mod_sqr(tmp2, x_, &group->field, ctx)
| 0-7 | ||||||||||||||||||||||||||||||||||||
61 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
62 | if (!BN_mod_mul(tmp1, tmp2, x_, &group->field, ctx)
| 0-7 | ||||||||||||||||||||||||||||||||||||
63 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
64 | } executed 7 times by 1 test: end of block Executed by:
| 7 | ||||||||||||||||||||||||||||||||||||
65 | - | |||||||||||||||||||||||||||||||||||||
66 | - | |||||||||||||||||||||||||||||||||||||
67 | if (group->a_is_minus3
| 2-5 | ||||||||||||||||||||||||||||||||||||
68 | if (!BN_mod_lshift1_quick(tmp2, x, &group->field)
| 0-5 | ||||||||||||||||||||||||||||||||||||
69 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
70 | if (!BN_mod_add_quick(tmp2, tmp2, x, &group->field)
| 0-5 | ||||||||||||||||||||||||||||||||||||
71 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
72 | if (!BN_mod_sub_quick(tmp1, tmp1, tmp2, &group->field)
| 0-5 | ||||||||||||||||||||||||||||||||||||
73 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
74 | } executed 5 times by 1 test: else {end of block Executed by:
| 5 | ||||||||||||||||||||||||||||||||||||
75 | if (group->meth->field_decode
| 0-2 | ||||||||||||||||||||||||||||||||||||
76 | if (!group->meth->field_decode(group, tmp2, &group->a, ctx)
| 0-2 | ||||||||||||||||||||||||||||||||||||
77 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
78 | if (!BN_mod_mul(tmp2, tmp2, x, &group->field, ctx)
| 0-2 | ||||||||||||||||||||||||||||||||||||
79 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
80 | } executed 2 times by 1 test: else {end of block Executed by:
| 2 | ||||||||||||||||||||||||||||||||||||
81 | - | |||||||||||||||||||||||||||||||||||||
82 | if (!group->meth->field_mul(group, tmp2, &group->a, x, ctx)
| 0 | ||||||||||||||||||||||||||||||||||||
83 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
84 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||
85 | - | |||||||||||||||||||||||||||||||||||||
86 | if (!BN_mod_add_quick(tmp1, tmp1, tmp2, &group->field)
| 0-2 | ||||||||||||||||||||||||||||||||||||
87 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
88 | } executed 2 times by 1 test: end of block Executed by:
| 2 | ||||||||||||||||||||||||||||||||||||
89 | - | |||||||||||||||||||||||||||||||||||||
90 | - | |||||||||||||||||||||||||||||||||||||
91 | if (group->meth->field_decode
| 0-7 | ||||||||||||||||||||||||||||||||||||
92 | if (!group->meth->field_decode(group, tmp2, &group->b, ctx)
| 0-7 | ||||||||||||||||||||||||||||||||||||
93 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
94 | if (!BN_mod_add_quick(tmp1, tmp1, tmp2, &group->field)
| 0-7 | ||||||||||||||||||||||||||||||||||||
95 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
96 | } executed 7 times by 1 test: else {end of block Executed by:
| 7 | ||||||||||||||||||||||||||||||||||||
97 | if (!BN_mod_add_quick(tmp1, tmp1, &group->b, &group->field)
| 0 | ||||||||||||||||||||||||||||||||||||
98 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
99 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||
100 | - | |||||||||||||||||||||||||||||||||||||
101 | if (!BN_mod_sqrt(y, tmp1, &group->field, ctx)
| 0-7 | ||||||||||||||||||||||||||||||||||||
102 | unsigned long err = ERR_peek_last_error(); | - | ||||||||||||||||||||||||||||||||||||
103 | - | |||||||||||||||||||||||||||||||||||||
104 | if ((
| 0 | ||||||||||||||||||||||||||||||||||||
105 | ERR_clear_error(); | - | ||||||||||||||||||||||||||||||||||||
106 | ERR_put_error(16,(0xfff),(110),__FILE__,158); | - | ||||||||||||||||||||||||||||||||||||
107 | } never executed: elseend of block | 0 | ||||||||||||||||||||||||||||||||||||
108 | ERR_put_error(16,(0xfff),(3),__FILE__,160); never executed: ERR_put_error(16,(0xfff),(3),__FILE__,160); | 0 | ||||||||||||||||||||||||||||||||||||
109 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
110 | } | - | ||||||||||||||||||||||||||||||||||||
111 | if (y_bit != (((
| 0-7 | ||||||||||||||||||||||||||||||||||||
112 | if (((
| 0-3 | ||||||||||||||||||||||||||||||||||||
113 | int kron; | - | ||||||||||||||||||||||||||||||||||||
114 | - | |||||||||||||||||||||||||||||||||||||
115 | kron = BN_kronecker(x, &group->field, ctx); | - | ||||||||||||||||||||||||||||||||||||
116 | if (kron == -2
| 0 | ||||||||||||||||||||||||||||||||||||
117 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
118 | - | |||||||||||||||||||||||||||||||||||||
119 | if (kron == 1
| 0 | ||||||||||||||||||||||||||||||||||||
120 | ERR_put_error(16,(0xfff),(109),__FILE__,172); never executed: ERR_put_error(16,(0xfff),(109),__FILE__,172); | 0 | ||||||||||||||||||||||||||||||||||||
121 | else | - | ||||||||||||||||||||||||||||||||||||
122 | - | |||||||||||||||||||||||||||||||||||||
123 | - | |||||||||||||||||||||||||||||||||||||
124 | - | |||||||||||||||||||||||||||||||||||||
125 | - | |||||||||||||||||||||||||||||||||||||
126 | ERR_put_error(16,(0xfff),(110),__FILE__,178); never executed: ERR_put_error(16,(0xfff),(110),__FILE__,178); | 0 | ||||||||||||||||||||||||||||||||||||
127 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
128 | } | - | ||||||||||||||||||||||||||||||||||||
129 | if (!BN_usub(y, &group->field, y)
| 0-3 | ||||||||||||||||||||||||||||||||||||
130 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
131 | } executed 3 times by 1 test: end of block Executed by:
| 3 | ||||||||||||||||||||||||||||||||||||
132 | if (y_bit != (((
| 0-7 | ||||||||||||||||||||||||||||||||||||
133 | ERR_put_error(16,(0xfff),((4|64)),__FILE__,185); | - | ||||||||||||||||||||||||||||||||||||
134 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
135 | } | - | ||||||||||||||||||||||||||||||||||||
136 | if (!EC_POINT_set_affine_coordinates_GFp(group, point, x, y, ctx)
| 0-7 | ||||||||||||||||||||||||||||||||||||
137 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
138 | - | |||||||||||||||||||||||||||||||||||||
139 | ret = 1; | - | ||||||||||||||||||||||||||||||||||||
140 | - | |||||||||||||||||||||||||||||||||||||
141 | err: code before this statement executed 7 times by 1 test: err: Executed by:
| 7 | ||||||||||||||||||||||||||||||||||||
142 | BN_CTX_end(ctx); | - | ||||||||||||||||||||||||||||||||||||
143 | BN_CTX_free(new_ctx); | - | ||||||||||||||||||||||||||||||||||||
144 | return executed 7 times by 1 test: ret;return ret; Executed by:
executed 7 times by 1 test: return ret; Executed by:
| 7 | ||||||||||||||||||||||||||||||||||||
145 | } | - | ||||||||||||||||||||||||||||||||||||
146 | - | |||||||||||||||||||||||||||||||||||||
147 | - | |||||||||||||||||||||||||||||||||||||
148 | size_t | - | ||||||||||||||||||||||||||||||||||||
149 | ec_GFp_simple_point2oct(const EC_GROUP * group, const EC_POINT * point, point_conversion_form_t form, | - | ||||||||||||||||||||||||||||||||||||
150 | unsigned char *buf, size_t len, BN_CTX * ctx) | - | ||||||||||||||||||||||||||||||||||||
151 | { | - | ||||||||||||||||||||||||||||||||||||
152 | size_t ret; | - | ||||||||||||||||||||||||||||||||||||
153 | BN_CTX *new_ctx = | - | ||||||||||||||||||||||||||||||||||||
154 | ((void *)0) | - | ||||||||||||||||||||||||||||||||||||
155 | ; | - | ||||||||||||||||||||||||||||||||||||
156 | int used_ctx = 0; | - | ||||||||||||||||||||||||||||||||||||
157 | BIGNUM *x, *y; | - | ||||||||||||||||||||||||||||||||||||
158 | size_t field_len, i, skip; | - | ||||||||||||||||||||||||||||||||||||
159 | - | |||||||||||||||||||||||||||||||||||||
160 | if ((
| 1-94 | ||||||||||||||||||||||||||||||||||||
161 | && (
| 1-93 | ||||||||||||||||||||||||||||||||||||
162 | && (
| 0-1 | ||||||||||||||||||||||||||||||||||||
163 | ERR_put_error(16,(0xfff),(104),__FILE__,213); | - | ||||||||||||||||||||||||||||||||||||
164 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
165 | } | - | ||||||||||||||||||||||||||||||||||||
166 | if (EC_POINT_is_at_infinity(group, point) > 0
| 0-95 | ||||||||||||||||||||||||||||||||||||
167 | - | |||||||||||||||||||||||||||||||||||||
168 | if (buf !=
| 0 | ||||||||||||||||||||||||||||||||||||
169 | ((void *)0)
| 0 | ||||||||||||||||||||||||||||||||||||
170 | ) { | - | ||||||||||||||||||||||||||||||||||||
171 | if (len < 1
| 0 | ||||||||||||||||||||||||||||||||||||
172 | ERR_put_error(16,(0xfff),(100),__FILE__,220); | - | ||||||||||||||||||||||||||||||||||||
173 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||||||||||||||
174 | } | - | ||||||||||||||||||||||||||||||||||||
175 | buf[0] = 0; | - | ||||||||||||||||||||||||||||||||||||
176 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||
177 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||||||||||||||||||||||||||
178 | } | - | ||||||||||||||||||||||||||||||||||||
179 | - | |||||||||||||||||||||||||||||||||||||
180 | field_len = ((BN_num_bits(&group->field)+7)/8); | - | ||||||||||||||||||||||||||||||||||||
181 | ret = (
| 1-94 | ||||||||||||||||||||||||||||||||||||
182 | - | |||||||||||||||||||||||||||||||||||||
183 | - | |||||||||||||||||||||||||||||||||||||
184 | if (buf !=
| 46-49 | ||||||||||||||||||||||||||||||||||||
185 | ((void *)0)
| 46-49 | ||||||||||||||||||||||||||||||||||||
186 | ) { | - | ||||||||||||||||||||||||||||||||||||
187 | if (len < ret
| 0-49 | ||||||||||||||||||||||||||||||||||||
188 | ERR_put_error(16,(0xfff),(100),__FILE__,234); | - | ||||||||||||||||||||||||||||||||||||
189 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
190 | } | - | ||||||||||||||||||||||||||||||||||||
191 | if (ctx ==
| 0-49 | ||||||||||||||||||||||||||||||||||||
192 | ((void *)0)
| 0-49 | ||||||||||||||||||||||||||||||||||||
193 | ) { | - | ||||||||||||||||||||||||||||||||||||
194 | ctx = new_ctx = BN_CTX_new(); | - | ||||||||||||||||||||||||||||||||||||
195 | if (ctx ==
| 0 | ||||||||||||||||||||||||||||||||||||
196 | ((void *)0)
| 0 | ||||||||||||||||||||||||||||||||||||
197 | ) | - | ||||||||||||||||||||||||||||||||||||
198 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||||||||||||||
199 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||
200 | BN_CTX_start(ctx); | - | ||||||||||||||||||||||||||||||||||||
201 | used_ctx = 1; | - | ||||||||||||||||||||||||||||||||||||
202 | if ((
| 0-49 | ||||||||||||||||||||||||||||||||||||
203 | ((void *)0)
| 0-49 | ||||||||||||||||||||||||||||||||||||
204 | ) | - | ||||||||||||||||||||||||||||||||||||
205 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
206 | if ((
| 0-49 | ||||||||||||||||||||||||||||||||||||
207 | ((void *)0)
| 0-49 | ||||||||||||||||||||||||||||||||||||
208 | ) | - | ||||||||||||||||||||||||||||||||||||
209 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
210 | - | |||||||||||||||||||||||||||||||||||||
211 | if (!EC_POINT_get_affine_coordinates_GFp(group, point, x, y, ctx)
| 0-49 | ||||||||||||||||||||||||||||||||||||
212 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
213 | - | |||||||||||||||||||||||||||||||||||||
214 | if ((form == POINT_CONVERSION_COMPRESSED
| 0-48 | ||||||||||||||||||||||||||||||||||||
215 | buf[0] = form + 1; executed 2 times by 1 test: buf[0] = form + 1; Executed by:
| 2 | ||||||||||||||||||||||||||||||||||||
216 | else | - | ||||||||||||||||||||||||||||||||||||
217 | buf[0] = form; executed 47 times by 2 tests: buf[0] = form; Executed by:
| 47 | ||||||||||||||||||||||||||||||||||||
218 | - | |||||||||||||||||||||||||||||||||||||
219 | i = 1; | - | ||||||||||||||||||||||||||||||||||||
220 | - | |||||||||||||||||||||||||||||||||||||
221 | skip = field_len - ((BN_num_bits(x)+7)/8); | - | ||||||||||||||||||||||||||||||||||||
222 | if (skip > field_len
| 0-49 | ||||||||||||||||||||||||||||||||||||
223 | ERR_put_error(16,(0xfff),((4|64)),__FILE__,261); | - | ||||||||||||||||||||||||||||||||||||
224 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
225 | } | - | ||||||||||||||||||||||||||||||||||||
226 | while (skip > 0
| 0-49 | ||||||||||||||||||||||||||||||||||||
227 | buf[i++] = 0; | - | ||||||||||||||||||||||||||||||||||||
228 | skip--; | - | ||||||||||||||||||||||||||||||||||||
229 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||
230 | skip = BN_bn2bin(x, buf + i); | - | ||||||||||||||||||||||||||||||||||||
231 | i += skip; | - | ||||||||||||||||||||||||||||||||||||
232 | if (i != 1 + field_len
| 0-49 | ||||||||||||||||||||||||||||||||||||
233 | ERR_put_error(16,(0xfff),((4|64)),__FILE__,271); | - | ||||||||||||||||||||||||||||||||||||
234 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
235 | } | - | ||||||||||||||||||||||||||||||||||||
236 | if (form == POINT_CONVERSION_UNCOMPRESSED
| 1-47 | ||||||||||||||||||||||||||||||||||||
237 | skip = field_len - ((BN_num_bits(y)+7)/8); | - | ||||||||||||||||||||||||||||||||||||
238 | if (skip > field_len
| 0-48 | ||||||||||||||||||||||||||||||||||||
239 | ERR_put_error(16,(0xfff),((4|64)),__FILE__,277); | - | ||||||||||||||||||||||||||||||||||||
240 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
241 | } | - | ||||||||||||||||||||||||||||||||||||
242 | while (skip > 0
| 0-48 | ||||||||||||||||||||||||||||||||||||
243 | buf[i++] = 0; | - | ||||||||||||||||||||||||||||||||||||
244 | skip--; | - | ||||||||||||||||||||||||||||||||||||
245 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||
246 | skip = BN_bn2bin(y, buf + i); | - | ||||||||||||||||||||||||||||||||||||
247 | i += skip; | - | ||||||||||||||||||||||||||||||||||||
248 | } executed 48 times by 2 tests: end of block Executed by:
| 48 | ||||||||||||||||||||||||||||||||||||
249 | if (i != ret
| 0-49 | ||||||||||||||||||||||||||||||||||||
250 | ERR_put_error(16,(0xfff),((4|64)),__FILE__,288); | - | ||||||||||||||||||||||||||||||||||||
251 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
252 | } | - | ||||||||||||||||||||||||||||||||||||
253 | } executed 49 times by 2 tests: end of block Executed by:
| 49 | ||||||||||||||||||||||||||||||||||||
254 | if (used_ctx
| 46-49 | ||||||||||||||||||||||||||||||||||||
255 | BN_CTX_end(ctx); executed 49 times by 2 tests: BN_CTX_end(ctx); Executed by:
| 49 | ||||||||||||||||||||||||||||||||||||
256 | BN_CTX_free(new_ctx); | - | ||||||||||||||||||||||||||||||||||||
257 | return executed 95 times by 2 tests: ret;return ret; Executed by:
executed 95 times by 2 tests: return ret; Executed by:
| 95 | ||||||||||||||||||||||||||||||||||||
258 | - | |||||||||||||||||||||||||||||||||||||
259 | err: | - | ||||||||||||||||||||||||||||||||||||
260 | if (used_ctx
| 0 | ||||||||||||||||||||||||||||||||||||
261 | BN_CTX_end(ctx); never executed: BN_CTX_end(ctx); | 0 | ||||||||||||||||||||||||||||||||||||
262 | BN_CTX_free(new_ctx); | - | ||||||||||||||||||||||||||||||||||||
263 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||||||||||||||
264 | } | - | ||||||||||||||||||||||||||||||||||||
265 | - | |||||||||||||||||||||||||||||||||||||
266 | - | |||||||||||||||||||||||||||||||||||||
267 | int | - | ||||||||||||||||||||||||||||||||||||
268 | ec_GFp_simple_oct2point(const EC_GROUP * group, EC_POINT * point, | - | ||||||||||||||||||||||||||||||||||||
269 | const unsigned char *buf, size_t len, BN_CTX * ctx) | - | ||||||||||||||||||||||||||||||||||||
270 | { | - | ||||||||||||||||||||||||||||||||||||
271 | point_conversion_form_t form; | - | ||||||||||||||||||||||||||||||||||||
272 | int y_bit; | - | ||||||||||||||||||||||||||||||||||||
273 | BN_CTX *new_ctx = | - | ||||||||||||||||||||||||||||||||||||
274 | ((void *)0) | - | ||||||||||||||||||||||||||||||||||||
275 | ; | - | ||||||||||||||||||||||||||||||||||||
276 | BIGNUM *x, *y; | - | ||||||||||||||||||||||||||||||||||||
277 | size_t field_len, enc_len; | - | ||||||||||||||||||||||||||||||||||||
278 | int ret = 0; | - | ||||||||||||||||||||||||||||||||||||
279 | - | |||||||||||||||||||||||||||||||||||||
280 | if (len == 0
| 0-50 | ||||||||||||||||||||||||||||||||||||
281 | ERR_put_error(16,(0xfff),(100),__FILE__,317); | - | ||||||||||||||||||||||||||||||||||||
282 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||||||||||||||
283 | } | - | ||||||||||||||||||||||||||||||||||||
284 | form = buf[0]; | - | ||||||||||||||||||||||||||||||||||||
285 | y_bit = form & 1; | - | ||||||||||||||||||||||||||||||||||||
286 | form = form & ~1U; | - | ||||||||||||||||||||||||||||||||||||
287 | if ((
| 1-49 | ||||||||||||||||||||||||||||||||||||
288 | && (
| 1-47 | ||||||||||||||||||||||||||||||||||||
289 | && (
| 0-1 | ||||||||||||||||||||||||||||||||||||
290 | ERR_put_error(16,(0xfff),(102),__FILE__,326); | - | ||||||||||||||||||||||||||||||||||||
291 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||||||||||||||
292 | } | - | ||||||||||||||||||||||||||||||||||||
293 | if ((form == 0
| 0-49 | ||||||||||||||||||||||||||||||||||||
294 | ERR_put_error(16,(0xfff),(102),__FILE__,330); | - | ||||||||||||||||||||||||||||||||||||
295 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||||||||||||||
296 | } | - | ||||||||||||||||||||||||||||||||||||
297 | if (form == 0
| 1-49 | ||||||||||||||||||||||||||||||||||||
298 | if (len != 1
| 0-1 | ||||||||||||||||||||||||||||||||||||
299 | ERR_put_error(16,(0xfff),(102),__FILE__,335); | - | ||||||||||||||||||||||||||||||||||||
300 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||||||||||||||
301 | } | - | ||||||||||||||||||||||||||||||||||||
302 | return executed 1 time by 1 test: EC_POINT_set_to_infinity(group, point);return EC_POINT_set_to_infinity(group, point); Executed by:
executed 1 time by 1 test: return EC_POINT_set_to_infinity(group, point); Executed by:
| 1 | ||||||||||||||||||||||||||||||||||||
303 | } | - | ||||||||||||||||||||||||||||||||||||
304 | field_len = ((BN_num_bits(&group->field)+7)/8); | - | ||||||||||||||||||||||||||||||||||||
305 | enc_len = (
| 1-48 | ||||||||||||||||||||||||||||||||||||
306 | - | |||||||||||||||||||||||||||||||||||||
307 | if (len != enc_len
| 0-49 | ||||||||||||||||||||||||||||||||||||
308 | ERR_put_error(16,(0xfff),(102),__FILE__,344); | - | ||||||||||||||||||||||||||||||||||||
309 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||||||||||||||
310 | } | - | ||||||||||||||||||||||||||||||||||||
311 | if (ctx ==
| 0-49 | ||||||||||||||||||||||||||||||||||||
312 | ((void *)0)
| 0-49 | ||||||||||||||||||||||||||||||||||||
313 | ) { | - | ||||||||||||||||||||||||||||||||||||
314 | ctx = new_ctx = BN_CTX_new(); | - | ||||||||||||||||||||||||||||||||||||
315 | if (ctx ==
| 0 | ||||||||||||||||||||||||||||||||||||
316 | ((void *)0)
| 0 | ||||||||||||||||||||||||||||||||||||
317 | ) | - | ||||||||||||||||||||||||||||||||||||
318 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||||||||||||||
319 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||
320 | BN_CTX_start(ctx); | - | ||||||||||||||||||||||||||||||||||||
321 | if ((
| 0-49 | ||||||||||||||||||||||||||||||||||||
322 | ((void *)0)
| 0-49 | ||||||||||||||||||||||||||||||||||||
323 | ) | - | ||||||||||||||||||||||||||||||||||||
324 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
325 | if ((
| 0-49 | ||||||||||||||||||||||||||||||||||||
326 | ((void *)0)
| 0-49 | ||||||||||||||||||||||||||||||||||||
327 | ) | - | ||||||||||||||||||||||||||||||||||||
328 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
329 | - | |||||||||||||||||||||||||||||||||||||
330 | if (!BN_bin2bn(buf + 1, field_len, x)
| 0-49 | ||||||||||||||||||||||||||||||||||||
331 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
332 | if (BN_ucmp(x, &group->field) >= 0
| 0-49 | ||||||||||||||||||||||||||||||||||||
333 | ERR_put_error(16,(0xfff),(102),__FILE__,361); | - | ||||||||||||||||||||||||||||||||||||
334 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
335 | } | - | ||||||||||||||||||||||||||||||||||||
336 | if (form == POINT_CONVERSION_COMPRESSED
| 1-48 | ||||||||||||||||||||||||||||||||||||
337 | if (!EC_POINT_set_compressed_coordinates_GFp(group, point, x, y_bit, ctx)
| 0-1 | ||||||||||||||||||||||||||||||||||||
338 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
339 | } executed 1 time by 1 test: else {end of block Executed by:
| 1 | ||||||||||||||||||||||||||||||||||||
340 | if (!BN_bin2bn(buf + 1 + field_len, field_len, y)
| 0-48 | ||||||||||||||||||||||||||||||||||||
341 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
342 | if (BN_ucmp(y, &group->field) >= 0
| 0-48 | ||||||||||||||||||||||||||||||||||||
343 | ERR_put_error(16,(0xfff),(102),__FILE__,371); | - | ||||||||||||||||||||||||||||||||||||
344 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
345 | } | - | ||||||||||||||||||||||||||||||||||||
346 | if (form == POINT_CONVERSION_HYBRID
| 1-47 | ||||||||||||||||||||||||||||||||||||
347 | if (y_bit != (((
| 0-1 | ||||||||||||||||||||||||||||||||||||
348 | ERR_put_error(16,(0xfff),(102),__FILE__,376); | - | ||||||||||||||||||||||||||||||||||||
349 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
350 | } | - | ||||||||||||||||||||||||||||||||||||
351 | } executed 1 time by 1 test: end of block Executed by:
| 1 | ||||||||||||||||||||||||||||||||||||
352 | if (!EC_POINT_set_affine_coordinates_GFp(group, point, x, y, ctx)
| 0-48 | ||||||||||||||||||||||||||||||||||||
353 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
354 | } executed 48 times by 2 tests: end of block Executed by:
| 48 | ||||||||||||||||||||||||||||||||||||
355 | - | |||||||||||||||||||||||||||||||||||||
356 | - | |||||||||||||||||||||||||||||||||||||
357 | if (EC_POINT_is_on_curve(group, point, ctx) <= 0
| 0-49 | ||||||||||||||||||||||||||||||||||||
358 | ERR_put_error(16,(0xfff),(107),__FILE__,386); | - | ||||||||||||||||||||||||||||||||||||
359 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||
360 | } | - | ||||||||||||||||||||||||||||||||||||
361 | ret = 1; | - | ||||||||||||||||||||||||||||||||||||
362 | - | |||||||||||||||||||||||||||||||||||||
363 | err: code before this statement executed 49 times by 2 tests: err: Executed by:
| 49 | ||||||||||||||||||||||||||||||||||||
364 | BN_CTX_end(ctx); | - | ||||||||||||||||||||||||||||||||||||
365 | BN_CTX_free(new_ctx); | - | ||||||||||||||||||||||||||||||||||||
366 | return executed 49 times by 2 tests: ret;return ret; Executed by:
executed 49 times by 2 tests: return ret; Executed by:
| 49 | ||||||||||||||||||||||||||||||||||||
367 | } | - | ||||||||||||||||||||||||||||||||||||
Switch to Source code | Preprocessed file |