OpenCoverage

ec_pmeth.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/ec/ec_pmeth.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4-
5-
6typedef struct {-
7-
8 EC_GROUP *gen_group;-
9-
10 const EVP_MD *md;-
11} EC_PKEY_CTX;-
12-
13static int-
14pkey_ec_init(EVP_PKEY_CTX * ctx)-
15{-
16 EC_PKEY_CTX *dctx;-
17 dctx = malloc(sizeof(EC_PKEY_CTX));-
18 if (!dctx
!dctxDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
19 return
never executed: return 0;
0;
never executed: return 0;
0
20 dctx->gen_group = -
21 ((void *)0)-
22 ;-
23 dctx->md = -
24 ((void *)0)-
25 ;-
26-
27 ctx->data = dctx;-
28-
29 return
never executed: return 1;
1;
never executed: return 1;
0
30}-
31-
32static int-
33pkey_ec_copy(EVP_PKEY_CTX * dst, EVP_PKEY_CTX * src)-
34{-
35 EC_PKEY_CTX *dctx, *sctx;-
36 if (!pkey_ec_init(dst)
!pkey_ec_init(dst)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
37 return
never executed: return 0;
0;
never executed: return 0;
0
38 sctx = src->data;-
39 dctx = dst->data;-
40 if (sctx->gen_group
sctx->gen_groupDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
41 dctx->gen_group = EC_GROUP_dup(sctx->gen_group);-
42 if (!dctx->gen_group
!dctx->gen_groupDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
43 return
never executed: return 0;
0;
never executed: return 0;
0
44 }
never executed: end of block
0
45 dctx->md = sctx->md;-
46 return
never executed: return 1;
1;
never executed: return 1;
0
47}-
48-
49static void-
50pkey_ec_cleanup(EVP_PKEY_CTX * ctx)-
51{-
52 EC_PKEY_CTX *dctx = ctx->data;-
53 if (dctx
dctxDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
54 EC_GROUP_free(dctx->gen_group);-
55 free(dctx);-
56 }
never executed: end of block
0
57}
never executed: end of block
0
58-
59static int-
60pkey_ec_sign(EVP_PKEY_CTX * ctx, unsigned char *sig, size_t * siglen,-
61 const unsigned char *tbs, size_t tbslen)-
62{-
63 int ret, type;-
64 unsigned int sltmp;-
65 EC_PKEY_CTX *dctx = ctx->data;-
66 EC_KEY *ec = ctx->pkey->pkey.ec;-
67-
68 if (!sig
!sigDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
69 *siglen = ECDSA_size(ec);-
70 return
never executed: return 1;
1;
never executed: return 1;
0
71 } else if (*
*siglen < (siz...ECDSA_size(ec)Description
TRUEnever evaluated
FALSEnever evaluated
siglen < (size_t) ECDSA_size(ec)
*siglen < (siz...ECDSA_size(ec)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
72 ERR_put_error(16,(0xfff),(100),__FILE__,135);-
73 return
never executed: return 0;
0;
never executed: return 0;
0
74 }-
75 if (dctx->md
dctx->mdDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
76 type = EVP_MD_type(dctx->md);
never executed: type = EVP_MD_type(dctx->md);
0
77 else-
78 type = 64;
never executed: type = 64;
0
79-
80-
81 ret = ECDSA_sign(type, tbs, tbslen, sig, &sltmp, ec);-
82-
83 if (ret <= 0
ret <= 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
84 return
never executed: return ret;
ret;
never executed: return ret;
0
85 *siglen = (size_t) sltmp;-
86 return
never executed: return 1;
1;
never executed: return 1;
0
87}-
88-
89static int-
90pkey_ec_verify(EVP_PKEY_CTX * ctx,-
91 const unsigned char *sig, size_t siglen,-
92 const unsigned char *tbs, size_t tbslen)-
93{-
94 int ret, type;-
95 EC_PKEY_CTX *dctx = ctx->data;-
96 EC_KEY *ec = ctx->pkey->pkey.ec;-
97-
98 if (dctx->md
dctx->mdDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
99 type = EVP_MD_type(dctx->md);
never executed: type = EVP_MD_type(dctx->md);
0
100 else-
101 type = 64;
never executed: type = 64;
0
102-
103 ret = ECDSA_verify(type, tbs, tbslen, sig, siglen, ec);-
104-
105 return
never executed: return ret;
ret;
never executed: return ret;
0
106}-
107-
108static int-
109pkey_ec_derive(EVP_PKEY_CTX * ctx, unsigned char *key, size_t * keylen)-
110{-
111 int ret;-
112 size_t outlen;-
113 const EC_POINT *pubkey = -
114 ((void *)0)-
115 ;-
116 if (!ctx->pkey
!ctx->pkeyDescription
TRUEnever evaluated
FALSEnever evaluated
|| !ctx->peerkey
!ctx->peerkeyDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
117 ERR_put_error(16,(0xfff),(140),__FILE__,178);-
118 return
never executed: return 0;
0;
never executed: return 0;
0
119 }-
120 if (!key
!keyDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
121 const EC_GROUP *group;-
122 group = EC_KEY_get0_group(ctx->pkey->pkey.ec);-
123 *keylen = (EC_GROUP_get_degree(group) + 7) / 8;-
124 return
never executed: return 1;
1;
never executed: return 1;
0
125 }-
126 pubkey = EC_KEY_get0_public_key(ctx->peerkey->pkey.ec);-
127-
128-
129-
130-
131-
132-
133 outlen = *keylen;-
134-
135 ret = ECDH_compute_key(key, outlen, pubkey, ctx->pkey->pkey.ec, 0);-
136 if (ret < 0
ret < 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
137 return
never executed: return ret;
ret;
never executed: return ret;
0
138 *keylen = ret;-
139 return
never executed: return 1;
1;
never executed: return 1;
0
140}-
141-
142static int-
143pkey_ec_ctrl(EVP_PKEY_CTX * ctx, int type, int p1, void *p2)-
144{-
145 EC_PKEY_CTX *dctx = ctx->data;-
146 EC_GROUP *group;-
147 switch (type) {-
148 case
never executed: case (0x1000 + 1):
(0x1000 + 1):
never executed: case (0x1000 + 1):
0
149 group = EC_GROUP_new_by_curve_name(p1);-
150 if (group ==
group == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
151 ((void *)0)
group == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
152 ) {-
153 ERR_put_error(16,(0xfff),(141),__FILE__,212);-
154 return
never executed: return 0;
0;
never executed: return 0;
0
155 }-
156 EC_GROUP_free(dctx->gen_group);-
157 dctx->gen_group = group;-
158 return
never executed: return 1;
1;
never executed: return 1;
0
159-
160 case
never executed: case 1:
1:
never executed: case 1:
0
161 if (EVP_MD_type((const EVP_MD *) p2) != 64
EVP_MD_type((c...D *) p2) != 64Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
162 EVP_MD_type((const EVP_MD *) p2) != 416
EVP_MD_type((c... *) p2) != 416Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
163 EVP_MD_type((const EVP_MD *) p2) != 675
EVP_MD_type((c... *) p2) != 675Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
164 EVP_MD_type((const EVP_MD *) p2) != 672
EVP_MD_type((c... *) p2) != 672Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
165 EVP_MD_type((const EVP_MD *) p2) != 673
EVP_MD_type((c... *) p2) != 673Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
166 EVP_MD_type((const EVP_MD *) p2) != 674
EVP_MD_type((c... *) p2) != 674Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
167 ERR_put_error(16,(0xfff),(138),__FILE__,226);-
168 return
never executed: return 0;
0;
never executed: return 0;
0
169 }-
170 dctx->md = p2;-
171 return
never executed: return 1;
1;
never executed: return 1;
0
172-
173 case
never executed: case 2:
2:
never executed: case 2:
0
174-
175 case
never executed: case 7:
7:
never executed: case 7:
0
176 case
never executed: case 5:
5:
never executed: case 5:
0
177 case
never executed: case 11:
11:
never executed: case 11:
0
178 return
never executed: return 1;
1;
never executed: return 1;
0
179-
180 default
never executed: default:
:
never executed: default:
0
181 return
never executed: return -2;
-2;
never executed: return -2;
0
182-
183 }-
184}-
185-
186static int-
187pkey_ec_ctrl_str(EVP_PKEY_CTX * ctx,-
188 const char *type, const char *value)-
189{-
190 if (!
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
191 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
192 type
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
193 ) && __builtin_constant_p (
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
194 "ec_paramgen_curve"
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
195 ) && (__s1_len = __builtin_strlen (
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
196 type
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
197 ), __s2_len = __builtin_strlen (
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
198 "ec_paramgen_curve"
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
199 ), (!((size_t)(const void *)((
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
200 type
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
201 ) + 1) - (size_t)(const void *)(
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
202 type
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
203 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
204 "ec_paramgen_curve"
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
205 ) + 1) - (size_t)(const void *)(
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
206 "ec_paramgen_curve"
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
207 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
208 type
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
209 ,
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
210 "ec_paramgen_curve"
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
211 ) : (__builtin_constant_p (
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
212 type
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
213 ) && ((size_t)(const void *)((
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
214 type
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
215 ) + 1) - (size_t)(const void *)(
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
216 type
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
217 ) == 1) && (__s1_len = __builtin_strlen (
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
218 type
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
219 ), __s1_len < 4) ? (__builtin_constant_p (
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
220 "ec_paramgen_curve"
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
221 ) && ((size_t)(const void *)((
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
222 "ec_paramgen_curve"
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
223 ) + 1) - (size_t)(const void *)(
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
224 "ec_paramgen_curve"
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
225 ) == 1) ? __builtin_strcmp (
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
226 type
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
227 ,
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
228 "ec_paramgen_curve"
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
229 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
230 "ec_paramgen_curve"
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
231 ); int __result = (((const unsigned char *) (const char *) (
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
232 type
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
233 ))[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_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
234 type
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
235 ))[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_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
236 type
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
237 ))[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 *) ( type ))[3] - __s2[3]);
0
238 type
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( type ))[3] - __s2[3]);
0
239 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
240 "ec_paramgen_curve"
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
241 ) && ((size_t)(const void *)((
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
242 "ec_paramgen_curve"
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
243 ) + 1) - (size_t)(const void *)(
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
244 "ec_paramgen_curve"
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
245 ) == 1) && (__s2_len = __builtin_strlen (
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
246 "ec_paramgen_curve"
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
247 ), __s2_len < 4) ? (__builtin_constant_p (
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
248 type
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
249 ) && ((size_t)(const void *)((
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
250 type
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
251 ) + 1) - (size_t)(const void *)(
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
252 type
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
253 ) == 1) ? __builtin_strcmp (
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
254 type
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
255 ,
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
256 "ec_paramgen_curve"
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
257 ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
258 type
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
259 ); int __result = (((const unsigned char *) (const char *) (
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
260 "ec_paramgen_curve"
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
261 ))[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_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
262 "ec_paramgen_curve"
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
263 ))[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_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
264 "ec_paramgen_curve"
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
265 ))[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 *) ( "ec_paramgen_curve" ))[3] - __s2[3]);
0
266 "ec_paramgen_curve"
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( "ec_paramgen_curve" ))[3] - __s2[3]);
0
267 ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
268 type
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
269 ,
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
270 "ec_paramgen_curve"
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
271 )))); })
! __extension_...urve" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
0
272 ) {-
273 int nid;-
274 nid = EC_curve_nist2nid(value);-
275 if (nid == 0
nid == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
276 nid = OBJ_sn2nid(value);
never executed: nid = OBJ_sn2nid(value);
0
277 if (nid == 0
nid == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
278 nid = OBJ_ln2nid(value);
never executed: nid = OBJ_ln2nid(value);
0
279 if (nid == 0
nid == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
280 ERR_put_error(16,(0xfff),(141),__FILE__,257);-
281 return
never executed: return 0;
0;
never executed: return 0;
0
282 }-
283 return
never executed: return EVP_PKEY_CTX_ctrl(ctx, 408, (1<<1), (0x1000 + 1), nid, ((void *)0) );
EVP_PKEY_CTX_ctrl(ctx, 408, (1<<1), (0x1000 + 1), nid,
never executed: return EVP_PKEY_CTX_ctrl(ctx, 408, (1<<1), (0x1000 + 1), nid, ((void *)0) );
0
284 ((void *)0)
never executed: return EVP_PKEY_CTX_ctrl(ctx, 408, (1<<1), (0x1000 + 1), nid, ((void *)0) );
0
285 );
never executed: return EVP_PKEY_CTX_ctrl(ctx, 408, (1<<1), (0x1000 + 1), nid, ((void *)0) );
0
286 }-
287 return
never executed: return -2;
-2;
never executed: return -2;
0
288}-
289-
290static int-
291pkey_ec_paramgen(EVP_PKEY_CTX * ctx, EVP_PKEY * pkey)-
292{-
293 EC_KEY *ec = -
294 ((void *)0)-
295 ;-
296 EC_PKEY_CTX *dctx = ctx->data;-
297 int ret = 0;-
298 if (dctx->gen_group ==
dctx->gen_group == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
299 ((void *)0)
dctx->gen_group == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
300 ) {-
301 ERR_put_error(16,(0xfff),(139),__FILE__,272);-
302 return
never executed: return 0;
0;
never executed: return 0;
0
303 }-
304 ec = EC_KEY_new();-
305 if (!ec
!ecDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
306 return
never executed: return 0;
0;
never executed: return 0;
0
307 ret = EC_KEY_set_group(ec, dctx->gen_group);-
308 if (ret
retDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
309 EVP_PKEY_assign((pkey),408, (char *)(ec));
never executed: EVP_PKEY_assign((pkey),408, (char *)(ec));
0
310 else-
311 EC_KEY_free(ec);
never executed: EC_KEY_free(ec);
0
312 return
never executed: return ret;
ret;
never executed: return ret;
0
313}-
314-
315static int-
316pkey_ec_keygen(EVP_PKEY_CTX * ctx, EVP_PKEY * pkey)-
317{-
318 EC_KEY *ec = -
319 ((void *)0)-
320 ;-
321 if (ctx->pkey ==
ctx->pkey == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
322 ((void *)0)
ctx->pkey == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
323 ) {-
324 ERR_put_error(16,(0xfff),(139),__FILE__,291);-
325 return
never executed: return 0;
0;
never executed: return 0;
0
326 }-
327 ec = EC_KEY_new();-
328 if (!ec
!ecDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
329 return
never executed: return 0;
0;
never executed: return 0;
0
330 EVP_PKEY_assign((pkey),408, (char *)(ec));-
331-
332 if (!EVP_PKEY_copy_parameters(pkey, ctx->pkey)
!EVP_PKEY_copy...ey, ctx->pkey)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
333 return
never executed: return 0;
0;
never executed: return 0;
0
334 return
never executed: return EC_KEY_generate_key(pkey->pkey.ec);
EC_KEY_generate_key(pkey->pkey.ec);
never executed: return EC_KEY_generate_key(pkey->pkey.ec);
0
335}-
336-
337const EVP_PKEY_METHOD ec_pkey_meth = {-
338 .pkey_id = 408,-
339-
340 .init = pkey_ec_init,-
341 .copy = pkey_ec_copy,-
342 .cleanup = pkey_ec_cleanup,-
343-
344 .paramgen = pkey_ec_paramgen,-
345-
346 .keygen = pkey_ec_keygen,-
347-
348 .sign = pkey_ec_sign,-
349-
350 .verify = pkey_ec_verify,-
351-
352 .derive = pkey_ec_derive,-
353-
354 .ctrl = pkey_ec_ctrl,-
355 .ctrl_str = pkey_ec_ctrl_str-
356};-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2