Line | Source | Count |
1 | | - |
2 | | - |
3 | | - |
4 | | - |
5 | | - |
6 | | - |
7 | typedef struct { | - |
8 | | - |
9 | int prime_len; | - |
10 | int generator; | - |
11 | int use_dsa; | - |
12 | | - |
13 | int gentmp[2]; | - |
14 | | - |
15 | } DH_PKEY_CTX; | - |
16 | | - |
17 | static int | - |
18 | pkey_dh_init(EVP_PKEY_CTX *ctx) | - |
19 | { | - |
20 | DH_PKEY_CTX *dctx; | - |
21 | | - |
22 | dctx = malloc(sizeof(DH_PKEY_CTX)); | - |
23 | if (!dctxTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
24 | return never executed: return 0; 0;never executed: return 0; | 0 |
25 | dctx->prime_len = 1024; | - |
26 | dctx->generator = 2; | - |
27 | dctx->use_dsa = 0; | - |
28 | | - |
29 | ctx->data = dctx; | - |
30 | ctx->keygen_info = dctx->gentmp; | - |
31 | ctx->keygen_info_count = 2; | - |
32 | | - |
33 | return never executed: return 1; 1;never executed: return 1; | 0 |
34 | } | - |
35 | | - |
36 | static int | - |
37 | pkey_dh_copy(EVP_PKEY_CTX *dst, EVP_PKEY_CTX *src) | - |
38 | { | - |
39 | DH_PKEY_CTX *dctx, *sctx; | - |
40 | | - |
41 | if (!pkey_dh_init(dst)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
42 | return never executed: return 0; 0;never executed: return 0; | 0 |
43 | sctx = src->data; | - |
44 | dctx = dst->data; | - |
45 | dctx->prime_len = sctx->prime_len; | - |
46 | dctx->generator = sctx->generator; | - |
47 | dctx->use_dsa = sctx->use_dsa; | - |
48 | return never executed: return 1; 1;never executed: return 1; | 0 |
49 | } | - |
50 | | - |
51 | static void | - |
52 | pkey_dh_cleanup(EVP_PKEY_CTX *ctx) | - |
53 | { | - |
54 | DH_PKEY_CTX *dctx = ctx->data; | - |
55 | | - |
56 | free(dctx); | - |
57 | } never executed: end of block | 0 |
58 | | - |
59 | static int | - |
60 | pkey_dh_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2) | - |
61 | { | - |
62 | DH_PKEY_CTX *dctx = ctx->data; | - |
63 | | - |
64 | switch (type) { | - |
65 | case never executed: case (0x1000 + 1): (0x1000 + 1):never executed: case (0x1000 + 1): | 0 |
66 | if (p1 < 256TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
67 | return never executed: return -2; -2;never executed: return -2; | 0 |
68 | dctx->prime_len = p1; | - |
69 | return never executed: return 1; 1;never executed: return 1; | 0 |
70 | | - |
71 | case never executed: case (0x1000 + 2): (0x1000 + 2):never executed: case (0x1000 + 2): | 0 |
72 | dctx->generator = p1; | - |
73 | return never executed: return 1; 1;never executed: return 1; | 0 |
74 | | - |
75 | case never executed: case 2: 2:never executed: case 2: | 0 |
76 | | - |
77 | return never executed: return 1; 1;never executed: return 1; | 0 |
78 | | - |
79 | default never executed: default: :never executed: default: | 0 |
80 | return never executed: return -2; -2;never executed: return -2; | 0 |
81 | } | - |
82 | } | - |
83 | | - |
84 | static int | - |
85 | pkey_dh_ctrl_str(EVP_PKEY_CTX *ctx, const char *type, const char *value) | - |
86 | { | - |
87 | long lval; | - |
88 | char *ep; | - |
89 | int len; | - |
90 | | - |
91 | if (!TRUE | never evaluated | FALSE | never evaluated |
| 0 |
92 | __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
93 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
94 | ) && __builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
95 | "dh_paramgen_prime_len"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
96 | ) && (__s1_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
97 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
98 | ), __s2_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
99 | "dh_paramgen_prime_len"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
100 | ), (!((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
101 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
102 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
103 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
104 | ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
105 | "dh_paramgen_prime_len"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
106 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
107 | "dh_paramgen_prime_len"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
108 | ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
109 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
110 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
111 | "dh_paramgen_prime_len"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
112 | ) : (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
113 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
114 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
115 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
116 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
117 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
118 | ) == 1) && (__s1_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
119 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
120 | ), __s1_len < 4) ? (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
121 | "dh_paramgen_prime_len"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
122 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
123 | "dh_paramgen_prime_len"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
124 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
125 | "dh_paramgen_prime_len"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
126 | ) == 1) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
127 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
128 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
129 | "dh_paramgen_prime_len"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
130 | ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
131 | "dh_paramgen_prime_len"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
132 | ); int __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
133 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
134 | ))[0] - __s2[0]); if (__s1_len > 0TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
135 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
136 | ))[1] - __s2[1]); if (__s1_len > 1TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
137 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
138 | ))[2] - __s2[2]); if (__s1_len > 2TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( type ))[3] - __s2[3]); | 0 |
139 | typeTRUE | never evaluated | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( type ))[3] - __s2[3]); | 0 |
140 | ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
141 | "dh_paramgen_prime_len"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
142 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
143 | "dh_paramgen_prime_len"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
144 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
145 | "dh_paramgen_prime_len"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
146 | ) == 1) && (__s2_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
147 | "dh_paramgen_prime_len"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
148 | ), __s2_len < 4) ? (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
149 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
150 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
151 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
152 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
153 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
154 | ) == 1) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
155 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
156 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
157 | "dh_paramgen_prime_len"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
158 | ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
159 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
160 | ); int __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
161 | "dh_paramgen_prime_len"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
162 | ))[0] - __s2[0]); if (__s2_len > 0TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
163 | "dh_paramgen_prime_len"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
164 | ))[1] - __s2[1]); if (__s2_len > 1TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
165 | "dh_paramgen_prime_len"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
166 | ))[2] - __s2[2]); if (__s2_len > 2TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( "dh_paramgen_prime_len" ))[3] - __s2[3]); | 0 |
167 | "dh_paramgen_prime_len"TRUE | never evaluated | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( "dh_paramgen_prime_len" ))[3] - __s2[3]); | 0 |
168 | ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
169 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
170 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
171 | "dh_paramgen_prime_len"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
172 | )))); })TRUE | never evaluated | FALSE | never evaluated |
| 0 |
173 | ) { | - |
174 | | - |
175 | (*__errno_location ()) | - |
176 | = 0; | - |
177 | lval = strtol(value, &ep, 10); | - |
178 | if (value[0] == '\0'TRUE | never evaluated | FALSE | never evaluated |
|| *TRUE | never evaluated | FALSE | never evaluated |
ep != '\0'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
179 | goto never executed: goto not_a_number; not_a_number;never executed: goto not_a_number; | 0 |
180 | if (( | - |
181 | (*TRUE | never evaluated | FALSE | never evaluated |
__errno_location ()) TRUE | never evaluated | FALSE | never evaluated |
| 0 |
182 | == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
183 | 34TRUE | never evaluated | FALSE | never evaluated |
| 0 |
184 | && | - |
185 | (lval == 0x7fffffffffffffffLTRUE | never evaluated | FALSE | never evaluated |
|| lval == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
186 | (-0x7fffffffffffffffL - 1L)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
187 | )) || | - |
188 | (lval > 0x7fffffffTRUE | never evaluated | FALSE | never evaluated |
|| lval < TRUE | never evaluated | FALSE | never evaluated |
| 0 |
189 | (-0x7fffffff - 1)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
190 | )) | - |
191 | goto never executed: goto out_of_range; out_of_range;never executed: goto out_of_range; | 0 |
192 | len = lval; | - |
193 | return never executed: return EVP_PKEY_CTX_ctrl(ctx, 28, (1<<1), (0x1000 + 1), len, ((void *)0) ); EVP_PKEY_CTX_ctrl(ctx, 28, (1<<1), (0x1000 + 1), len, never executed: return EVP_PKEY_CTX_ctrl(ctx, 28, (1<<1), (0x1000 + 1), len, ((void *)0) ); | 0 |
194 | ((void *)0) never executed: return EVP_PKEY_CTX_ctrl(ctx, 28, (1<<1), (0x1000 + 1), len, ((void *)0) ); | 0 |
195 | ); never executed: return EVP_PKEY_CTX_ctrl(ctx, 28, (1<<1), (0x1000 + 1), len, ((void *)0) ); | 0 |
196 | } else if (!TRUE | never evaluated | FALSE | never evaluated |
| 0 |
197 | __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
198 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
199 | ) && __builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
200 | "dh_paramgen_generator"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
201 | ) && (__s1_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
202 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
203 | ), __s2_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
204 | "dh_paramgen_generator"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
205 | ), (!((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
206 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
207 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
208 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
209 | ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
210 | "dh_paramgen_generator"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
211 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
212 | "dh_paramgen_generator"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
213 | ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
214 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
215 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
216 | "dh_paramgen_generator"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
217 | ) : (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
218 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
219 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
220 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
221 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
222 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
223 | ) == 1) && (__s1_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
224 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
225 | ), __s1_len < 4) ? (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
226 | "dh_paramgen_generator"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
227 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
228 | "dh_paramgen_generator"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
229 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
230 | "dh_paramgen_generator"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
231 | ) == 1) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
232 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
233 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
234 | "dh_paramgen_generator"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
235 | ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
236 | "dh_paramgen_generator"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
237 | ); int __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
238 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
239 | ))[0] - __s2[0]); if (__s1_len > 0TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
240 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
241 | ))[1] - __s2[1]); if (__s1_len > 1TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
242 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
243 | ))[2] - __s2[2]); if (__s1_len > 2TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( type ))[3] - __s2[3]); | 0 |
244 | typeTRUE | never evaluated | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( type ))[3] - __s2[3]); | 0 |
245 | ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
246 | "dh_paramgen_generator"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
247 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
248 | "dh_paramgen_generator"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
249 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
250 | "dh_paramgen_generator"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
251 | ) == 1) && (__s2_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
252 | "dh_paramgen_generator"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
253 | ), __s2_len < 4) ? (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
254 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
255 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
256 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
257 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
258 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
259 | ) == 1) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
260 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
261 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
262 | "dh_paramgen_generator"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
263 | ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
264 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
265 | ); int __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
266 | "dh_paramgen_generator"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
267 | ))[0] - __s2[0]); if (__s2_len > 0TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
268 | "dh_paramgen_generator"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
269 | ))[1] - __s2[1]); if (__s2_len > 1TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
270 | "dh_paramgen_generator"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
271 | ))[2] - __s2[2]); if (__s2_len > 2TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( "dh_paramgen_generator" ))[3] - __s2[3]); | 0 |
272 | "dh_paramgen_generator"TRUE | never evaluated | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( "dh_paramgen_generator" ))[3] - __s2[3]); | 0 |
273 | ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
274 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
275 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
276 | "dh_paramgen_generator"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
277 | )))); })TRUE | never evaluated | FALSE | never evaluated |
| 0 |
278 | ) { | - |
279 | | - |
280 | (*__errno_location ()) | - |
281 | = 0; | - |
282 | lval = strtol(value, &ep, 10); | - |
283 | if (value[0] == '\0'TRUE | never evaluated | FALSE | never evaluated |
|| *TRUE | never evaluated | FALSE | never evaluated |
ep != '\0'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
284 | goto never executed: goto not_a_number; not_a_number;never executed: goto not_a_number; | 0 |
285 | if (( | - |
286 | (*TRUE | never evaluated | FALSE | never evaluated |
__errno_location ()) TRUE | never evaluated | FALSE | never evaluated |
| 0 |
287 | == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
288 | 34TRUE | never evaluated | FALSE | never evaluated |
| 0 |
289 | && | - |
290 | (lval == 0x7fffffffffffffffLTRUE | never evaluated | FALSE | never evaluated |
|| lval == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
291 | (-0x7fffffffffffffffL - 1L)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
292 | )) || | - |
293 | (lval > 0x7fffffffTRUE | never evaluated | FALSE | never evaluated |
|| lval < TRUE | never evaluated | FALSE | never evaluated |
| 0 |
294 | (-0x7fffffff - 1)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
295 | )) | - |
296 | goto never executed: goto out_of_range; out_of_range;never executed: goto out_of_range; | 0 |
297 | len = lval; | - |
298 | return never executed: return EVP_PKEY_CTX_ctrl(ctx, 28, (1<<1), (0x1000 + 2), len, ((void *)0) ); EVP_PKEY_CTX_ctrl(ctx, 28, (1<<1), (0x1000 + 2), len, never executed: return EVP_PKEY_CTX_ctrl(ctx, 28, (1<<1), (0x1000 + 2), len, ((void *)0) ); | 0 |
299 | ((void *)0) never executed: return EVP_PKEY_CTX_ctrl(ctx, 28, (1<<1), (0x1000 + 2), len, ((void *)0) ); | 0 |
300 | ); never executed: return EVP_PKEY_CTX_ctrl(ctx, 28, (1<<1), (0x1000 + 2), len, ((void *)0) ); | 0 |
301 | } | - |
302 | | - |
303 | not_a_number: code before this statement never executed: not_a_number: | 0 |
304 | out_of_range: | - |
305 | return never executed: return -2; -2;never executed: return -2; | 0 |
306 | } | - |
307 | | - |
308 | static int | - |
309 | pkey_dh_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey) | - |
310 | { | - |
311 | DH *dh = | - |
312 | ((void *)0) | - |
313 | ; | - |
314 | DH_PKEY_CTX *dctx = ctx->data; | - |
315 | BN_GENCB *pcb, cb; | - |
316 | int ret; | - |
317 | | - |
318 | if (ctx->pkey_gencbTRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
319 | pcb = &cb; | - |
320 | evp_pkey_set_cb_translate(pcb, ctx); | - |
321 | } never executed: end of block else | 0 |
322 | pcb = never executed: pcb = ((void *)0) ; | 0 |
323 | ((void *)0) never executed: pcb = ((void *)0) ; | 0 |
324 | ; never executed: pcb = ((void *)0) ; | 0 |
325 | dh = DH_new(); | - |
326 | if (!dhTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
327 | return never executed: return 0; 0;never executed: return 0; | 0 |
328 | ret = DH_generate_parameters_ex(dh, dctx->prime_len, dctx->generator, | - |
329 | pcb); | - |
330 | if (retTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
331 | EVP_PKEY_assign((pkey),28, (char *)(dh)); never executed: EVP_PKEY_assign((pkey),28, (char *)(dh)); | 0 |
332 | else | - |
333 | DH_free(dh); never executed: DH_free(dh); | 0 |
334 | return never executed: return ret; ret;never executed: return ret; | 0 |
335 | } | - |
336 | | - |
337 | static int | - |
338 | pkey_dh_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey) | - |
339 | { | - |
340 | DH *dh = | - |
341 | ((void *)0) | - |
342 | ; | - |
343 | | - |
344 | if (ctx->pkey == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
345 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
346 | ) { | - |
347 | ERR_put_error(5,(0xfff),(107),__FILE__,218); | - |
348 | return never executed: return 0; 0;never executed: return 0; | 0 |
349 | } | - |
350 | dh = DH_new(); | - |
351 | if (!dhTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
352 | return never executed: return 0; 0;never executed: return 0; | 0 |
353 | EVP_PKEY_assign((pkey),28, (char *)(dh)); | - |
354 | | - |
355 | if (!EVP_PKEY_copy_parameters(pkey, ctx->pkey)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
356 | return never executed: return 0; 0;never executed: return 0; | 0 |
357 | return never executed: return DH_generate_key(pkey->pkey.dh); DH_generate_key(pkey->pkey.dh);never executed: return DH_generate_key(pkey->pkey.dh); | 0 |
358 | } | - |
359 | | - |
360 | static int | - |
361 | pkey_dh_derive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen) | - |
362 | { | - |
363 | int ret; | - |
364 | | - |
365 | if (!ctx->pkeyTRUE | never evaluated | FALSE | never evaluated |
|| !ctx->peerkeyTRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
366 | ERR_put_error(5,(0xfff),(108),__FILE__,237); | - |
367 | return never executed: return 0; 0;never executed: return 0; | 0 |
368 | } | - |
369 | ret = DH_compute_key(key, ctx->peerkey->pkey.dh->pub_key, | - |
370 | ctx->pkey->pkey.dh); | - |
371 | if (ret < 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
372 | return never executed: return ret; ret;never executed: return ret; | 0 |
373 | *keylen = ret; | - |
374 | return never executed: return 1; 1;never executed: return 1; | 0 |
375 | } | - |
376 | | - |
377 | const EVP_PKEY_METHOD dh_pkey_meth = { | - |
378 | .pkey_id = 28, | - |
379 | .flags = 2, | - |
380 | | - |
381 | .init = pkey_dh_init, | - |
382 | .copy = pkey_dh_copy, | - |
383 | .cleanup = pkey_dh_cleanup, | - |
384 | | - |
385 | .paramgen = pkey_dh_paramgen, | - |
386 | | - |
387 | .keygen = pkey_dh_keygen, | - |
388 | | - |
389 | .derive = pkey_dh_derive, | - |
390 | | - |
391 | .ctrl = pkey_dh_ctrl, | - |
392 | .ctrl_str = pkey_dh_ctrl_str | - |
393 | }; | - |
| | |