Line | Source | Count |
1 | | - |
2 | | - |
3 | | - |
4 | | - |
5 | | - |
6 | | - |
7 | | - |
8 | | - |
9 | | - |
10 | | - |
11 | | - |
12 | | - |
13 | | - |
14 | | - |
15 | | - |
16 | | - |
17 | | - |
18 | | - |
19 | | - |
20 | | - |
21 | | - |
22 | | - |
23 | | - |
24 | | - |
25 | | - |
26 | | - |
27 | | - |
28 | | - |
29 | | - |
30 | | - |
31 | | - |
32 | | - |
33 | | - |
34 | | - |
35 | | - |
36 | | - |
37 | | - |
38 | | - |
39 | | - |
40 | | - |
41 | | - |
42 | | - |
43 | | - |
44 | | - |
45 | | - |
46 | | - |
47 | | - |
48 | | - |
49 | | - |
50 | | - |
51 | | - |
52 | | - |
53 | | - |
54 | | - |
55 | | - |
56 | | - |
57 | | - |
58 | | - |
59 | #include <stdio.h> | - |
60 | #include <stdlib.h> | - |
61 | | - |
62 | #include <openssl/err.h> | - |
63 | #include <openssl/evp.h> | - |
64 | #include <openssl/objects.h> | - |
65 | | - |
66 | #include "evp_locl.h" | - |
67 | | - |
68 | #define M_check_autoarg(ctx, arg, arglen, err) \ | - |
69 | if (ctx->pmeth->flags & EVP_PKEY_FLAG_AUTOARGLEN) \ | - |
70 | { \ | - |
71 | size_t pksize = (size_t)EVP_PKEY_size(ctx->pkey); \ | - |
72 | if (!arg) \ | - |
73 | { \ | - |
74 | *arglen = pksize; \ | - |
75 | return 1; \ | - |
76 | } \ | - |
77 | else if (*arglen < pksize) \ | - |
78 | { \ | - |
79 | EVPerror(EVP_R_BUFFER_TOO_SMALL); /*ckerr_ignore*/\ | - |
80 | return 0; \ | - |
81 | } \ | - |
82 | } | - |
83 | | - |
84 | int | - |
85 | EVP_PKEY_sign_init(EVP_PKEY_CTX *ctx) | - |
86 | { | - |
87 | int ret; | - |
88 | | - |
89 | if (!ctx || !ctx->pmeth || !ctx->pmeth->sign) {TRUE | never evaluated | FALSE | evaluated 44 times by 5 testsEvaluated by:- libcrypto.so.44.0.1
- pkcs7test
- servertest
- ssltest
- tlstest
|
TRUE | never evaluated | FALSE | evaluated 44 times by 5 testsEvaluated by:- libcrypto.so.44.0.1
- pkcs7test
- servertest
- ssltest
- tlstest
|
TRUE | never evaluated | FALSE | evaluated 44 times by 5 testsEvaluated by:- libcrypto.so.44.0.1
- pkcs7test
- servertest
- ssltest
- tlstest
|
| 0-44 |
90 | EVPerror(EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE); | - |
91 | return -2; never executed: return -2; | 0 |
92 | } | - |
93 | ctx->operation = EVP_PKEY_OP_SIGN; | - |
94 | if (!ctx->pmeth->sign_init)TRUE | evaluated 44 times by 5 testsEvaluated by:- libcrypto.so.44.0.1
- pkcs7test
- servertest
- ssltest
- tlstest
| FALSE | never evaluated |
| 0-44 |
95 | return 1;executed 44 times by 5 tests: return 1; Executed by:- libcrypto.so.44.0.1
- pkcs7test
- servertest
- ssltest
- tlstest
| 44 |
96 | ret = ctx->pmeth->sign_init(ctx); | - |
97 | if (ret <= 0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
98 | ctx->operation = EVP_PKEY_OP_UNDEFINED; never executed: ctx->operation = 0; | 0 |
99 | return ret; never executed: return ret; | 0 |
100 | } | - |
101 | | - |
102 | int | - |
103 | EVP_PKEY_sign(EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen, | - |
104 | const unsigned char *tbs, size_t tbslen) | - |
105 | { | - |
106 | if (!ctx || !ctx->pmeth || !ctx->pmeth->sign) {TRUE | never evaluated | FALSE | evaluated 39 times by 5 testsEvaluated by:- libcrypto.so.44.0.1
- pkcs7test
- servertest
- ssltest
- tlstest
|
TRUE | never evaluated | FALSE | evaluated 39 times by 5 testsEvaluated by:- libcrypto.so.44.0.1
- pkcs7test
- servertest
- ssltest
- tlstest
|
TRUE | never evaluated | FALSE | evaluated 39 times by 5 testsEvaluated by:- libcrypto.so.44.0.1
- pkcs7test
- servertest
- ssltest
- tlstest
|
| 0-39 |
107 | EVPerror(EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE); | - |
108 | return -2; never executed: return -2; | 0 |
109 | } | - |
110 | if (ctx->operation != EVP_PKEY_OP_SIGN) {TRUE | never evaluated | FALSE | evaluated 39 times by 5 testsEvaluated by:- libcrypto.so.44.0.1
- pkcs7test
- servertest
- ssltest
- tlstest
|
| 0-39 |
111 | EVPerror(EVP_R_OPERATON_NOT_INITIALIZED); | - |
112 | return -1; never executed: return -1; | 0 |
113 | } | - |
114 | M_check_autoarg(ctx, sig, siglen, EVP_F_EVP_PKEY_SIGN)executed 2 times by 1 test: return 1; never executed: return 0; executed 37 times by 5 tests: end of block Executed by:- libcrypto.so.44.0.1
- pkcs7test
- servertest
- ssltest
- tlstest
TRUE | evaluated 39 times by 5 testsEvaluated by:- libcrypto.so.44.0.1
- pkcs7test
- servertest
- ssltest
- tlstest
| FALSE | never evaluated |
TRUE | never evaluated | FALSE | evaluated 37 times by 5 testsEvaluated by:- libcrypto.so.44.0.1
- pkcs7test
- servertest
- ssltest
- tlstest
|
TRUE | evaluated 2 times by 1 test | FALSE | evaluated 37 times by 5 testsEvaluated by:- libcrypto.so.44.0.1
- pkcs7test
- servertest
- ssltest
- tlstest
|
| 0-39 |
115 | return ctx->pmeth->sign(ctx, sig, siglen, tbs, tbslen);executed 37 times by 5 tests: return ctx->pmeth->sign(ctx, sig, siglen, tbs, tbslen); Executed by:- libcrypto.so.44.0.1
- pkcs7test
- servertest
- ssltest
- tlstest
| 37 |
116 | } | - |
117 | | - |
118 | int | - |
119 | EVP_PKEY_verify_init(EVP_PKEY_CTX *ctx) | - |
120 | { | - |
121 | int ret; | - |
122 | | - |
123 | if (!ctx || !ctx->pmeth || !ctx->pmeth->verify) {TRUE | never evaluated | FALSE | evaluated 106 times by 3 tests |
TRUE | never evaluated | FALSE | evaluated 106 times by 3 tests |
TRUE | never evaluated | FALSE | evaluated 106 times by 3 tests |
| 0-106 |
124 | EVPerror(EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE); | - |
125 | return -2; never executed: return -2; | 0 |
126 | } | - |
127 | ctx->operation = EVP_PKEY_OP_VERIFY; | - |
128 | if (!ctx->pmeth->verify_init)TRUE | evaluated 106 times by 3 tests | FALSE | never evaluated |
| 0-106 |
129 | return 1;executed 106 times by 3 tests: return 1; | 106 |
130 | ret = ctx->pmeth->verify_init(ctx); | - |
131 | if (ret <= 0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
132 | ctx->operation = EVP_PKEY_OP_UNDEFINED; never executed: ctx->operation = 0; | 0 |
133 | return ret; never executed: return ret; | 0 |
134 | } | - |
135 | | - |
136 | int | - |
137 | EVP_PKEY_verify(EVP_PKEY_CTX *ctx, const unsigned char *sig, size_t siglen, | - |
138 | const unsigned char *tbs, size_t tbslen) | - |
139 | { | - |
140 | if (!ctx || !ctx->pmeth || !ctx->pmeth->verify) {TRUE | never evaluated | FALSE | evaluated 106 times by 3 tests |
TRUE | never evaluated | FALSE | evaluated 106 times by 3 tests |
TRUE | never evaluated | FALSE | evaluated 106 times by 3 tests |
| 0-106 |
141 | EVPerror(EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE); | - |
142 | return -2; never executed: return -2; | 0 |
143 | } | - |
144 | if (ctx->operation != EVP_PKEY_OP_VERIFY) {TRUE | never evaluated | FALSE | evaluated 106 times by 3 tests |
| 0-106 |
145 | EVPerror(EVP_R_OPERATON_NOT_INITIALIZED); | - |
146 | return -1; never executed: return -1; | 0 |
147 | } | - |
148 | return ctx->pmeth->verify(ctx, sig, siglen, tbs, tbslen);executed 106 times by 3 tests: return ctx->pmeth->verify(ctx, sig, siglen, tbs, tbslen); | 106 |
149 | } | - |
150 | | - |
151 | int | - |
152 | EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx) | - |
153 | { | - |
154 | int ret; | - |
155 | | - |
156 | if (!ctx || !ctx->pmeth || !ctx->pmeth->verify_recover) {TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
157 | EVPerror(EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE); | - |
158 | return -2; never executed: return -2; | 0 |
159 | } | - |
160 | ctx->operation = EVP_PKEY_OP_VERIFYRECOVER; | - |
161 | if (!ctx->pmeth->verify_recover_init)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
162 | return 1; never executed: return 1; | 0 |
163 | ret = ctx->pmeth->verify_recover_init(ctx); | - |
164 | if (ret <= 0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
165 | ctx->operation = EVP_PKEY_OP_UNDEFINED; never executed: ctx->operation = 0; | 0 |
166 | return ret; never executed: return ret; | 0 |
167 | } | - |
168 | | - |
169 | int | - |
170 | EVP_PKEY_verify_recover(EVP_PKEY_CTX *ctx, unsigned char *rout, size_t *routlen, | - |
171 | const unsigned char *sig, size_t siglen) | - |
172 | { | - |
173 | if (!ctx || !ctx->pmeth || !ctx->pmeth->verify_recover) {TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
174 | EVPerror(EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE); | - |
175 | return -2; never executed: return -2; | 0 |
176 | } | - |
177 | if (ctx->operation != EVP_PKEY_OP_VERIFYRECOVER) {TRUE | never evaluated | FALSE | never evaluated |
| 0 |
178 | EVPerror(EVP_R_OPERATON_NOT_INITIALIZED); | - |
179 | return -1; never executed: return -1; | 0 |
180 | } | - |
181 | M_check_autoarg(ctx, rout, routlen, EVP_F_EVP_PKEY_VERIFY_RECOVER) never executed: return 1; never executed: return 0; never executed: end of block TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
182 | return ctx->pmeth->verify_recover(ctx, rout, routlen, sig, siglen); never executed: return ctx->pmeth->verify_recover(ctx, rout, routlen, sig, siglen); | 0 |
183 | } | - |
184 | | - |
185 | int | - |
186 | EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx) | - |
187 | { | - |
188 | int ret; | - |
189 | | - |
190 | if (!ctx || !ctx->pmeth || !ctx->pmeth->encrypt) {TRUE | never evaluated | FALSE | evaluated 1 time by 1 test |
TRUE | never evaluated | FALSE | evaluated 1 time by 1 test |
TRUE | never evaluated | FALSE | evaluated 1 time by 1 test |
| 0-1 |
191 | EVPerror(EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE); | - |
192 | return -2; never executed: return -2; | 0 |
193 | } | - |
194 | ctx->operation = EVP_PKEY_OP_ENCRYPT; | - |
195 | if (!ctx->pmeth->encrypt_init)TRUE | evaluated 1 time by 1 test | FALSE | never evaluated |
| 0-1 |
196 | return 1;executed 1 time by 1 test: return 1; | 1 |
197 | ret = ctx->pmeth->encrypt_init(ctx); | - |
198 | if (ret <= 0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
199 | ctx->operation = EVP_PKEY_OP_UNDEFINED; never executed: ctx->operation = 0; | 0 |
200 | return ret; never executed: return ret; | 0 |
201 | } | - |
202 | | - |
203 | int | - |
204 | EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen, | - |
205 | const unsigned char *in, size_t inlen) | - |
206 | { | - |
207 | if (!ctx || !ctx->pmeth || !ctx->pmeth->encrypt) {TRUE | never evaluated | FALSE | evaluated 2 times by 1 test |
TRUE | never evaluated | FALSE | evaluated 2 times by 1 test |
TRUE | never evaluated | FALSE | evaluated 2 times by 1 test |
| 0-2 |
208 | EVPerror(EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE); | - |
209 | return -2; never executed: return -2; | 0 |
210 | } | - |
211 | if (ctx->operation != EVP_PKEY_OP_ENCRYPT) {TRUE | never evaluated | FALSE | evaluated 2 times by 1 test |
| 0-2 |
212 | EVPerror(EVP_R_OPERATON_NOT_INITIALIZED); | - |
213 | return -1; never executed: return -1; | 0 |
214 | } | - |
215 | M_check_autoarg(ctx, out, outlen, EVP_F_EVP_PKEY_ENCRYPT)executed 1 time by 1 test: return 1; never executed: return 0; executed 1 time by 1 test: end of block TRUE | evaluated 2 times by 1 test | FALSE | never evaluated |
TRUE | never evaluated | FALSE | evaluated 1 time by 1 test |
TRUE | evaluated 1 time by 1 test | FALSE | evaluated 1 time by 1 test |
| 0-2 |
216 | return ctx->pmeth->encrypt(ctx, out, outlen, in, inlen);executed 1 time by 1 test: return ctx->pmeth->encrypt(ctx, out, outlen, in, inlen); | 1 |
217 | } | - |
218 | | - |
219 | int | - |
220 | EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx) | - |
221 | { | - |
222 | int ret; | - |
223 | | - |
224 | if (!ctx || !ctx->pmeth || !ctx->pmeth->decrypt) {TRUE | never evaluated | FALSE | evaluated 1 time by 1 test |
TRUE | never evaluated | FALSE | evaluated 1 time by 1 test |
TRUE | never evaluated | FALSE | evaluated 1 time by 1 test |
| 0-1 |
225 | EVPerror(EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE); | - |
226 | return -2; never executed: return -2; | 0 |
227 | } | - |
228 | ctx->operation = EVP_PKEY_OP_DECRYPT; | - |
229 | if (!ctx->pmeth->decrypt_init)TRUE | evaluated 1 time by 1 test | FALSE | never evaluated |
| 0-1 |
230 | return 1;executed 1 time by 1 test: return 1; | 1 |
231 | ret = ctx->pmeth->decrypt_init(ctx); | - |
232 | if (ret <= 0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
233 | ctx->operation = EVP_PKEY_OP_UNDEFINED; never executed: ctx->operation = 0; | 0 |
234 | return ret; never executed: return ret; | 0 |
235 | } | - |
236 | | - |
237 | int | - |
238 | EVP_PKEY_decrypt(EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen, | - |
239 | const unsigned char *in, size_t inlen) | - |
240 | { | - |
241 | if (!ctx || !ctx->pmeth || !ctx->pmeth->decrypt) {TRUE | never evaluated | FALSE | evaluated 2 times by 1 test |
TRUE | never evaluated | FALSE | evaluated 2 times by 1 test |
TRUE | never evaluated | FALSE | evaluated 2 times by 1 test |
| 0-2 |
242 | EVPerror(EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE); | - |
243 | return -2; never executed: return -2; | 0 |
244 | } | - |
245 | if (ctx->operation != EVP_PKEY_OP_DECRYPT) {TRUE | never evaluated | FALSE | evaluated 2 times by 1 test |
| 0-2 |
246 | EVPerror(EVP_R_OPERATON_NOT_INITIALIZED); | - |
247 | return -1; never executed: return -1; | 0 |
248 | } | - |
249 | M_check_autoarg(ctx, out, outlen, EVP_F_EVP_PKEY_DECRYPT)executed 1 time by 1 test: return 1; never executed: return 0; executed 1 time by 1 test: end of block TRUE | evaluated 2 times by 1 test | FALSE | never evaluated |
TRUE | never evaluated | FALSE | evaluated 1 time by 1 test |
TRUE | evaluated 1 time by 1 test | FALSE | evaluated 1 time by 1 test |
| 0-2 |
250 | return ctx->pmeth->decrypt(ctx, out, outlen, in, inlen);executed 1 time by 1 test: return ctx->pmeth->decrypt(ctx, out, outlen, in, inlen); | 1 |
251 | } | - |
252 | | - |
253 | int | - |
254 | EVP_PKEY_derive_init(EVP_PKEY_CTX *ctx) | - |
255 | { | - |
256 | int ret; | - |
257 | | - |
258 | if (!ctx || !ctx->pmeth || !ctx->pmeth->derive) {TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
259 | EVPerror(EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE); | - |
260 | return -2; never executed: return -2; | 0 |
261 | } | - |
262 | ctx->operation = EVP_PKEY_OP_DERIVE; | - |
263 | if (!ctx->pmeth->derive_init)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
264 | return 1; never executed: return 1; | 0 |
265 | ret = ctx->pmeth->derive_init(ctx); | - |
266 | if (ret <= 0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
267 | ctx->operation = EVP_PKEY_OP_UNDEFINED; never executed: ctx->operation = 0; | 0 |
268 | return ret; never executed: return ret; | 0 |
269 | } | - |
270 | | - |
271 | int | - |
272 | EVP_PKEY_derive_set_peer(EVP_PKEY_CTX *ctx, EVP_PKEY *peer) | - |
273 | { | - |
274 | int ret; | - |
275 | | - |
276 | if (!ctx || !ctx->pmeth || !(ctx->pmeth->derive ||TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
277 | ctx->pmeth->encrypt || ctx->pmeth->decrypt) ||TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
278 | !ctx->pmeth->ctrl) {TRUE | never evaluated | FALSE | never evaluated |
| 0 |
279 | EVPerror(EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE); | - |
280 | return -2; never executed: return -2; | 0 |
281 | } | - |
282 | if (ctx->operation != EVP_PKEY_OP_DERIVE &&TRUE | never evaluated | FALSE | never evaluated |
| 0 |
283 | ctx->operation != EVP_PKEY_OP_ENCRYPT &&TRUE | never evaluated | FALSE | never evaluated |
| 0 |
284 | ctx->operation != EVP_PKEY_OP_DECRYPT) {TRUE | never evaluated | FALSE | never evaluated |
| 0 |
285 | EVPerror(EVP_R_OPERATON_NOT_INITIALIZED); | - |
286 | return -1; never executed: return -1; | 0 |
287 | } | - |
288 | | - |
289 | ret = ctx->pmeth->ctrl(ctx, EVP_PKEY_CTRL_PEER_KEY, 0, peer); | - |
290 | | - |
291 | if (ret <= 0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
292 | return ret; never executed: return ret; | 0 |
293 | | - |
294 | if (ret == 2)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
295 | return 1; never executed: return 1; | 0 |
296 | | - |
297 | if (!ctx->pkey) {TRUE | never evaluated | FALSE | never evaluated |
| 0 |
298 | EVPerror(EVP_R_NO_KEY_SET); | - |
299 | return -1; never executed: return -1; | 0 |
300 | } | - |
301 | | - |
302 | if (ctx->pkey->type != peer->type) {TRUE | never evaluated | FALSE | never evaluated |
| 0 |
303 | EVPerror(EVP_R_DIFFERENT_KEY_TYPES); | - |
304 | return -1; never executed: return -1; | 0 |
305 | } | - |
306 | | - |
307 | | - |
308 | | - |
309 | | - |
310 | | - |
311 | | - |
312 | if (!EVP_PKEY_missing_parameters(peer) &&TRUE | never evaluated | FALSE | never evaluated |
| 0 |
313 | !EVP_PKEY_cmp_parameters(ctx->pkey, peer)) {TRUE | never evaluated | FALSE | never evaluated |
| 0 |
314 | EVPerror(EVP_R_DIFFERENT_PARAMETERS); | - |
315 | return -1; never executed: return -1; | 0 |
316 | } | - |
317 | | - |
318 | EVP_PKEY_free(ctx->peerkey); | - |
319 | ctx->peerkey = peer; | - |
320 | | - |
321 | ret = ctx->pmeth->ctrl(ctx, EVP_PKEY_CTRL_PEER_KEY, 1, peer); | - |
322 | | - |
323 | if (ret <= 0) {TRUE | never evaluated | FALSE | never evaluated |
| 0 |
324 | ctx->peerkey = NULL; | - |
325 | return ret; never executed: return ret; | 0 |
326 | } | - |
327 | | - |
328 | CRYPTO_add(&peer->references, 1, CRYPTO_LOCK_EVP_PKEY); | - |
329 | return 1; never executed: return 1; | 0 |
330 | } | - |
331 | | - |
332 | int | - |
333 | EVP_PKEY_derive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *pkeylen) | - |
334 | { | - |
335 | if (!ctx || !ctx->pmeth || !ctx->pmeth->derive) {TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
336 | EVPerror(EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE); | - |
337 | return -2; never executed: return -2; | 0 |
338 | } | - |
339 | if (ctx->operation != EVP_PKEY_OP_DERIVE) {TRUE | never evaluated | FALSE | never evaluated |
| 0 |
340 | EVPerror(EVP_R_OPERATON_NOT_INITIALIZED); | - |
341 | return -1; never executed: return -1; | 0 |
342 | } | - |
343 | M_check_autoarg(ctx, key, pkeylen, EVP_F_EVP_PKEY_DERIVE) never executed: return 1; never executed: return 0; never executed: end of block TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
344 | return ctx->pmeth->derive(ctx, key, pkeylen); never executed: return ctx->pmeth->derive(ctx, key, pkeylen); | 0 |
345 | } | - |
| | |