OpenCoverage

pmeth_lib.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/evp/pmeth_lib.c
Source codeSwitch to Preprocessed file
LineSourceCount
1/*-
2 * Copyright 2006-2018 The OpenSSL Project Authors. All Rights Reserved.-
3 *-
4 * Licensed under the OpenSSL license (the "License"). You may not use-
5 * this file except in compliance with the License. You can obtain a copy-
6 * in the file LICENSE in the source distribution or at-
7 * https://www.openssl.org/source/license.html-
8 */-
9-
10#include <stdio.h>-
11#include <stdlib.h>-
12#include "internal/cryptlib.h"-
13#include <openssl/engine.h>-
14#include <openssl/evp.h>-
15#include <openssl/x509v3.h>-
16#include "internal/asn1_int.h"-
17#include "internal/evp_int.h"-
18#include "internal/numbers.h"-
19-
20typedef int sk_cmp_fn_type(const char *const *a, const char *const *b);-
21-
22static STACK_OF(EVP_PKEY_METHOD) *app_pkey_methods = NULL;-
23-
24/* This array needs to be in order of NIDs */-
25static const EVP_PKEY_METHOD *standard_methods[] = {-
26#ifndef OPENSSL_NO_RSA-
27 &rsa_pkey_meth,-
28#endif-
29#ifndef OPENSSL_NO_DH-
30 &dh_pkey_meth,-
31#endif-
32#ifndef OPENSSL_NO_DSA-
33 &dsa_pkey_meth,-
34#endif-
35#ifndef OPENSSL_NO_EC-
36 &ec_pkey_meth,-
37#endif-
38 &hmac_pkey_meth,-
39#ifndef OPENSSL_NO_CMAC-
40 &cmac_pkey_meth,-
41#endif-
42#ifndef OPENSSL_NO_RSA-
43 &rsa_pss_pkey_meth,-
44#endif-
45#ifndef OPENSSL_NO_DH-
46 &dhx_pkey_meth,-
47#endif-
48#ifndef OPENSSL_NO_SCRYPT-
49 &scrypt_pkey_meth,-
50#endif-
51 &tls1_prf_pkey_meth,-
52#ifndef OPENSSL_NO_EC-
53 &ecx25519_pkey_meth,-
54 &ecx448_pkey_meth,-
55#endif-
56 &hkdf_pkey_meth,-
57#ifndef OPENSSL_NO_POLY1305-
58 &poly1305_pkey_meth,-
59#endif-
60#ifndef OPENSSL_NO_SIPHASH-
61 &siphash_pkey_meth,-
62#endif-
63#ifndef OPENSSL_NO_EC-
64 &ed25519_pkey_meth,-
65 &ed448_pkey_meth,-
66#endif-
67#ifndef OPENSSL_NO_SM2-
68 &sm2_pkey_meth,-
69#endif-
70};-
71-
72DECLARE_OBJ_BSEARCH_CMP_FN(const EVP_PKEY_METHOD *, const EVP_PKEY_METHOD *,-
73 pmeth);-
74-
75static int pmeth_cmp(const EVP_PKEY_METHOD *const *a,-
76 const EVP_PKEY_METHOD *const *b)-
77{-
78 return ((*a)->pkey_id - (*b)->pkey_id);
executed 236446 times by 1 test: return ((*a)->pkey_id - (*b)->pkey_id);
Executed by:
  • libcrypto.so.1.1
236446
79}-
80-
81IMPLEMENT_OBJ_BSEARCH_CMP_FN(const EVP_PKEY_METHOD *, const EVP_PKEY_METHOD *,
executed 236428 times by 1 test: return pmeth_cmp(a,b);
Executed by:
  • libcrypto.so.1.1
executed 82147 times by 1 test: return (const EVP_PKEY_METHOD * *)OBJ_bsearch_(key, base, num, sizeof(const EVP_PKEY_METHOD *), pmeth_cmp_BSEARCH_CMP_FN);
Executed by:
  • libcrypto.so.1.1
82147-236428
82 pmeth);-
83-
84const EVP_PKEY_METHOD *EVP_PKEY_meth_find(int type)-
85{-
86 EVP_PKEY_METHOD tmp;-
87 const EVP_PKEY_METHOD *t = &tmp, **ret;-
88 tmp.pkey_id = type;-
89 if (app_pkey_methods) {
app_pkey_methodsDescription
TRUEevaluated 18 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 82134 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
18-82134
90 int idx;-
91 idx = sk_EVP_PKEY_METHOD_find(app_pkey_methods, &tmp);-
92 if (idx >= 0)
idx >= 0Description
TRUEevaluated 5 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 13 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
5-13
93 return sk_EVP_PKEY_METHOD_value(app_pkey_methods, idx);
executed 5 times by 1 test: return sk_EVP_PKEY_METHOD_value(app_pkey_methods, idx);
Executed by:
  • libcrypto.so.1.1
5
94 }
executed 13 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
13
95 ret = OBJ_bsearch_pmeth(&t, standard_methods,-
96 sizeof(standard_methods) /-
97 sizeof(EVP_PKEY_METHOD *));-
98 if (!ret || !*ret)
!retDescription
TRUEnever evaluated
FALSEevaluated 82147 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
!*retDescription
TRUEnever evaluated
FALSEevaluated 82147 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-82147
99 return NULL;
never executed: return ((void *)0) ;
0
100 return *ret;
executed 82147 times by 1 test: return *ret;
Executed by:
  • libcrypto.so.1.1
82147
101}-
102-
103static EVP_PKEY_CTX *int_ctx_new(EVP_PKEY *pkey, ENGINE *e, int id)-
104{-
105 EVP_PKEY_CTX *ret;-
106 const EVP_PKEY_METHOD *pmeth;-
107-
108 if (id == -1) {
id == -1Description
TRUEevaluated 32127 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 50029 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
32127-50029
109 if (pkey == NULL)
pkey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 32127 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-32127
110 return 0;
never executed: return 0;
0
111 id = pkey->type;-
112 }
executed 32127 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
32127
113#ifndef OPENSSL_NO_ENGINE-
114 if (e == NULL && pkey != NULL)
e == ((void *)0)Description
TRUEevaluated 82153 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 3 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
pkey != ((void *)0)Description
TRUEevaluated 32124 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 50029 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
3-82153
115 e = pkey->pmeth_engine != NULL ? pkey->pmeth_engine : pkey->engine;
executed 32124 times by 1 test: e = pkey->pmeth_engine != ((void *)0) ? pkey->pmeth_engine : pkey->engine;
Executed by:
  • libcrypto.so.1.1
pkey->pmeth_en...!= ((void *)0)Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 32123 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
1-32124
116 /* Try to find an ENGINE which implements this method */-
117 if (e) {
eDescription
TRUEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 82152 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
4-82152
118 if (!ENGINE_init(e)) {
!ENGINE_init(e)Description
TRUEnever evaluated
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-4
119 EVPerr(EVP_F_INT_CTX_NEW, ERR_R_ENGINE_LIB);-
120 return NULL;
never executed: return ((void *)0) ;
0
121 }-
122 } else {
executed 4 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
4
123 e = ENGINE_get_pkey_meth_engine(id);-
124 }
executed 82152 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
82152
125-
126 /*-
127 * If an ENGINE handled this method look it up. Otherwise use internal-
128 * tables.-
129 */-
130 if (e)
eDescription
TRUEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 82152 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
4-82152
131 pmeth = ENGINE_get_pkey_meth(e, id);
executed 4 times by 1 test: pmeth = ENGINE_get_pkey_meth(e, id);
Executed by:
  • libcrypto.so.1.1
4
132 else-
133#endif-
134 pmeth = EVP_PKEY_meth_find(id);
executed 82152 times by 1 test: pmeth = EVP_PKEY_meth_find(id);
Executed by:
  • libcrypto.so.1.1
82152
135-
136 if (pmeth == NULL) {
pmeth == ((void *)0)Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 82155 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
1-82155
137#ifndef OPENSSL_NO_ENGINE-
138 ENGINE_finish(e);-
139#endif-
140 EVPerr(EVP_F_INT_CTX_NEW, EVP_R_UNSUPPORTED_ALGORITHM);-
141 return NULL;
executed 1 time by 1 test: return ((void *)0) ;
Executed by:
  • libcrypto.so.1.1
1
142 }-
143-
144 ret = OPENSSL_zalloc(sizeof(*ret));-
145 if (ret == NULL) {
ret == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 82155 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-82155
146#ifndef OPENSSL_NO_ENGINE-
147 ENGINE_finish(e);-
148#endif-
149 EVPerr(EVP_F_INT_CTX_NEW, ERR_R_MALLOC_FAILURE);-
150 return NULL;
never executed: return ((void *)0) ;
0
151 }-
152 ret->engine = e;-
153 ret->pmeth = pmeth;-
154 ret->operation = EVP_PKEY_OP_UNDEFINED;-
155 ret->pkey = pkey;-
156 if (pkey != NULL)
pkey != ((void *)0)Description
TRUEevaluated 32126 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 50029 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
32126-50029
157 EVP_PKEY_up_ref(pkey);
executed 32126 times by 1 test: EVP_PKEY_up_ref(pkey);
Executed by:
  • libcrypto.so.1.1
32126
158-
159 if (pmeth->init) {
pmeth->initDescription
TRUEevaluated 72892 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 9263 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
9263-72892
160 if (pmeth->init(ret) <= 0) {
pmeth->init(ret) <= 0Description
TRUEnever evaluated
FALSEevaluated 72892 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-72892
161 ret->pmeth = NULL;-
162 EVP_PKEY_CTX_free(ret);-
163 return NULL;
never executed: return ((void *)0) ;
0
164 }-
165 }
executed 72892 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
72892
166-
167 return ret;
executed 82155 times by 1 test: return ret;
Executed by:
  • libcrypto.so.1.1
82155
168}-
169-
170EVP_PKEY_METHOD *EVP_PKEY_meth_new(int id, int flags)-
171{-
172 EVP_PKEY_METHOD *pmeth;-
173-
174 pmeth = OPENSSL_zalloc(sizeof(*pmeth));-
175 if (pmeth == NULL) {
pmeth == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-2
176 EVPerr(EVP_F_EVP_PKEY_METH_NEW, ERR_R_MALLOC_FAILURE);-
177 return NULL;
never executed: return ((void *)0) ;
0
178 }-
179-
180 pmeth->pkey_id = id;-
181 pmeth->flags = flags | EVP_PKEY_FLAG_DYNAMIC;-
182 return pmeth;
executed 2 times by 1 test: return pmeth;
Executed by:
  • libcrypto.so.1.1
2
183}-
184-
185void EVP_PKEY_meth_get0_info(int *ppkey_id, int *pflags,-
186 const EVP_PKEY_METHOD *meth)-
187{-
188 if (ppkey_id)
ppkey_idDescription
TRUEevaluated 18 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
0-18
189 *ppkey_id = meth->pkey_id;
executed 18 times by 1 test: *ppkey_id = meth->pkey_id;
Executed by:
  • libcrypto.so.1.1
18
190 if (pflags)
pflagsDescription
TRUEnever evaluated
FALSEevaluated 18 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-18
191 *pflags = meth->flags;
never executed: *pflags = meth->flags;
0
192}
executed 18 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
18
193-
194void EVP_PKEY_meth_copy(EVP_PKEY_METHOD *dst, const EVP_PKEY_METHOD *src)-
195{-
196-
197 dst->init = src->init;-
198 dst->copy = src->copy;-
199 dst->cleanup = src->cleanup;-
200-
201 dst->paramgen_init = src->paramgen_init;-
202 dst->paramgen = src->paramgen;-
203-
204 dst->keygen_init = src->keygen_init;-
205 dst->keygen = src->keygen;-
206-
207 dst->sign_init = src->sign_init;-
208 dst->sign = src->sign;-
209-
210 dst->verify_init = src->verify_init;-
211 dst->verify = src->verify;-
212-
213 dst->verify_recover_init = src->verify_recover_init;-
214 dst->verify_recover = src->verify_recover;-
215-
216 dst->signctx_init = src->signctx_init;-
217 dst->signctx = src->signctx;-
218-
219 dst->verifyctx_init = src->verifyctx_init;-
220 dst->verifyctx = src->verifyctx;-
221-
222 dst->encrypt_init = src->encrypt_init;-
223 dst->encrypt = src->encrypt;-
224-
225 dst->decrypt_init = src->decrypt_init;-
226 dst->decrypt = src->decrypt;-
227-
228 dst->derive_init = src->derive_init;-
229 dst->derive = src->derive;-
230-
231 dst->ctrl = src->ctrl;-
232 dst->ctrl_str = src->ctrl_str;-
233-
234 dst->check = src->check;-
235}
never executed: end of block
0
236-
237void EVP_PKEY_meth_free(EVP_PKEY_METHOD *pmeth)-
238{-
239 if (pmeth && (pmeth->flags & EVP_PKEY_FLAG_DYNAMIC))
pmethDescription
TRUEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
(pmeth->flags & 1)Description
TRUEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
0-2
240 OPENSSL_free(pmeth);
executed 2 times by 1 test: CRYPTO_free(pmeth, __FILE__, 240);
Executed by:
  • libcrypto.so.1.1
2
241}
executed 2 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
2
242-
243EVP_PKEY_CTX *EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e)-
244{-
245 return int_ctx_new(pkey, e, -1);
executed 32127 times by 1 test: return int_ctx_new(pkey, e, -1);
Executed by:
  • libcrypto.so.1.1
32127
246}-
247-
248EVP_PKEY_CTX *EVP_PKEY_CTX_new_id(int id, ENGINE *e)-
249{-
250 return int_ctx_new(NULL, e, id);
executed 50029 times by 1 test: return int_ctx_new( ((void *)0) , e, id);
Executed by:
  • libcrypto.so.1.1
50029
251}-
252-
253EVP_PKEY_CTX *EVP_PKEY_CTX_dup(EVP_PKEY_CTX *pctx)-
254{-
255 EVP_PKEY_CTX *rctx;-
256 if (!pctx->pmeth || !pctx->pmeth->copy)
!pctx->pmethDescription
TRUEnever evaluated
FALSEevaluated 164841 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
!pctx->pmeth->copyDescription
TRUEnever evaluated
FALSEevaluated 164841 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-164841
257 return NULL;
never executed: return ((void *)0) ;
0
258#ifndef OPENSSL_NO_ENGINE-
259 /* Make sure it's safe to copy a pkey context using an ENGINE */-
260 if (pctx->engine && !ENGINE_init(pctx->engine)) {
pctx->engineDescription
TRUEnever evaluated
FALSEevaluated 164841 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
!ENGINE_init(pctx->engine)Description
TRUEnever evaluated
FALSEnever evaluated
0-164841
261 EVPerr(EVP_F_EVP_PKEY_CTX_DUP, ERR_R_ENGINE_LIB);-
262 return 0;
never executed: return 0;
0
263 }-
264#endif-
265 rctx = OPENSSL_malloc(sizeof(*rctx));-
266 if (rctx == NULL) {
rctx == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 164841 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-164841
267 EVPerr(EVP_F_EVP_PKEY_CTX_DUP, ERR_R_MALLOC_FAILURE);-
268 return NULL;
never executed: return ((void *)0) ;
0
269 }-
270-
271 rctx->pmeth = pctx->pmeth;-
272#ifndef OPENSSL_NO_ENGINE-
273 rctx->engine = pctx->engine;-
274#endif-
275-
276 if (pctx->pkey)
pctx->pkeyDescription
TRUEevaluated 164841 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
0-164841
277 EVP_PKEY_up_ref(pctx->pkey);
executed 164841 times by 1 test: EVP_PKEY_up_ref(pctx->pkey);
Executed by:
  • libcrypto.so.1.1
164841
278-
279 rctx->pkey = pctx->pkey;-
280-
281 if (pctx->peerkey)
pctx->peerkeyDescription
TRUEnever evaluated
FALSEevaluated 164841 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-164841
282 EVP_PKEY_up_ref(pctx->peerkey);
never executed: EVP_PKEY_up_ref(pctx->peerkey);
0
283-
284 rctx->peerkey = pctx->peerkey;-
285-
286 rctx->data = NULL;-
287 rctx->app_data = NULL;-
288 rctx->operation = pctx->operation;-
289-
290 if (pctx->pmeth->copy(rctx, pctx) > 0)
pctx->pmeth->c...ctx, pctx) > 0Description
TRUEevaluated 164841 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
0-164841
291 return rctx;
executed 164841 times by 1 test: return rctx;
Executed by:
  • libcrypto.so.1.1
164841
292-
293 rctx->pmeth = NULL;-
294 EVP_PKEY_CTX_free(rctx);-
295 return NULL;
never executed: return ((void *)0) ;
0
296-
297}-
298-
299int EVP_PKEY_meth_add0(const EVP_PKEY_METHOD *pmeth)-
300{-
301 if (app_pkey_methods == NULL) {
app_pkey_metho...== ((void *)0)Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
0-1
302 app_pkey_methods = sk_EVP_PKEY_METHOD_new(pmeth_cmp);-
303 if (app_pkey_methods == NULL){
app_pkey_metho...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1
304 EVPerr(EVP_F_EVP_PKEY_METH_ADD0, ERR_R_MALLOC_FAILURE);-
305 return 0;
never executed: return 0;
0
306 }-
307 }
executed 1 time by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
1
308 if (!sk_EVP_PKEY_METHOD_push(app_pkey_methods, pmeth)) {
!sk_EVP_PKEY_M...ethods, pmeth)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1
309 EVPerr(EVP_F_EVP_PKEY_METH_ADD0, ERR_R_MALLOC_FAILURE);-
310 return 0;
never executed: return 0;
0
311 }-
312 sk_EVP_PKEY_METHOD_sort(app_pkey_methods);-
313 return 1;
executed 1 time by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1
314}-
315-
316void evp_app_cleanup_int(void)-
317{-
318 if (app_pkey_methods != NULL)
app_pkey_metho...!= ((void *)0)Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 2075 times by 12 tests
Evaluated by:
  • asn1_internal_test
  • chacha_internal_test
  • ctype_internal_test
  • curve448_internal_test
  • libcrypto.so.1.1
  • modes_internal_test
  • poly1305_internal_test
  • rdrand_sanitytest
  • siphash_internal_test
  • sm2_internal_test
  • sm4_internal_test
  • x509_internal_test
1-2075
319 sk_EVP_PKEY_METHOD_pop_free(app_pkey_methods, EVP_PKEY_meth_free);
executed 1 time by 1 test: sk_EVP_PKEY_METHOD_pop_free(app_pkey_methods, EVP_PKEY_meth_free);
Executed by:
  • libcrypto.so.1.1
1
320}
executed 2076 times by 12 tests: end of block
Executed by:
  • asn1_internal_test
  • chacha_internal_test
  • ctype_internal_test
  • curve448_internal_test
  • libcrypto.so.1.1
  • modes_internal_test
  • poly1305_internal_test
  • rdrand_sanitytest
  • siphash_internal_test
  • sm2_internal_test
  • sm4_internal_test
  • x509_internal_test
2076
321-
322int EVP_PKEY_meth_remove(const EVP_PKEY_METHOD *pmeth)-
323{-
324 const EVP_PKEY_METHOD *ret;-
325-
326 ret = sk_EVP_PKEY_METHOD_delete_ptr(app_pkey_methods, pmeth);-
327-
328 return ret == NULL ? 0 : 1;
never executed: return ret == ((void *)0) ? 0 : 1;
ret == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
329}-
330-
331size_t EVP_PKEY_meth_get_count(void)-
332{-
333 size_t rv = OSSL_NELEM(standard_methods);-
334-
335 if (app_pkey_methods)
app_pkey_methodsDescription
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-19
336 rv += sk_EVP_PKEY_METHOD_num(app_pkey_methods);
never executed: rv += sk_EVP_PKEY_METHOD_num(app_pkey_methods);
0
337 return rv;
executed 19 times by 1 test: return rv;
Executed by:
  • libcrypto.so.1.1
19
338}-
339-
340const EVP_PKEY_METHOD *EVP_PKEY_meth_get0(size_t idx)-
341{-
342 if (idx < OSSL_NELEM(standard_methods))
idx < (sizeof(..._methods)[0]))Description
TRUEevaluated 18 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
0-18
343 return standard_methods[idx];
executed 18 times by 1 test: return standard_methods[idx];
Executed by:
  • libcrypto.so.1.1
18
344 if (app_pkey_methods == NULL)
app_pkey_metho...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
345 return NULL;
never executed: return ((void *)0) ;
0
346 idx -= OSSL_NELEM(standard_methods);-
347 if (idx >= (size_t)sk_EVP_PKEY_METHOD_num(app_pkey_methods))
idx >= (size_t..._pkey_methods)Description
TRUEnever evaluated
FALSEnever evaluated
0
348 return NULL;
never executed: return ((void *)0) ;
0
349 return sk_EVP_PKEY_METHOD_value(app_pkey_methods, idx);
never executed: return sk_EVP_PKEY_METHOD_value(app_pkey_methods, idx);
0
350}-
351-
352void EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx)-
353{-
354 if (ctx == NULL)
ctx == ((void *)0)Description
TRUEevaluated 2378786 times by 3 tests
Evaluated by:
  • curve448_internal_test
  • libcrypto.so.1.1
  • sm2_internal_test
FALSEevaluated 246996 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
246996-2378786
355 return;
executed 2378786 times by 3 tests: return;
Executed by:
  • curve448_internal_test
  • libcrypto.so.1.1
  • sm2_internal_test
2378786
356 if (ctx->pmeth && ctx->pmeth->cleanup)
ctx->pmethDescription
TRUEevaluated 246996 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
ctx->pmeth->cleanupDescription
TRUEevaluated 237733 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 9263 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-246996
357 ctx->pmeth->cleanup(ctx);
executed 237733 times by 1 test: ctx->pmeth->cleanup(ctx);
Executed by:
  • libcrypto.so.1.1
237733
358 EVP_PKEY_free(ctx->pkey);-
359 EVP_PKEY_free(ctx->peerkey);-
360#ifndef OPENSSL_NO_ENGINE-
361 ENGINE_finish(ctx->engine);-
362#endif-
363 OPENSSL_free(ctx);-
364}
executed 246996 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
246996
365-
366int EVP_PKEY_CTX_ctrl(EVP_PKEY_CTX *ctx, int keytype, int optype,-
367 int cmd, int p1, void *p2)-
368{-
369 int ret;-
370-
371 if (!ctx || !ctx->pmeth || !ctx->pmeth->ctrl) {
!ctxDescription
TRUEnever evaluated
FALSEevaluated 256133 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
!ctx->pmethDescription
TRUEnever evaluated
FALSEevaluated 256133 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
!ctx->pmeth->ctrlDescription
TRUEnever evaluated
FALSEevaluated 256133 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-256133
372 EVPerr(EVP_F_EVP_PKEY_CTX_CTRL, EVP_R_COMMAND_NOT_SUPPORTED);-
373 return -2;
never executed: return -2;
0
374 }-
375 if ((keytype != -1) && (ctx->pmeth->pkey_id != keytype))
(keytype != -1)Description
TRUEevaluated 1516 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 254617 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
(ctx->pmeth->p...id != keytype)Description
TRUEnever evaluated
FALSEevaluated 1516 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-254617
376 return -1;
never executed: return -1;
0
377-
378 /* Skip the operation checks since this is called in a very early stage */-
379 if (ctx->pmeth->digest_custom != NULL)
ctx->pmeth->di...!= ((void *)0)Description
TRUEevaluated 12 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 256121 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
12-256121
380 goto doit;
executed 12 times by 1 test: goto doit;
Executed by:
  • libcrypto.so.1.1
12
381-
382 if (ctx->operation == EVP_PKEY_OP_UNDEFINED) {
ctx->operation == 0Description
TRUEnever evaluated
FALSEevaluated 256121 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-256121
383 EVPerr(EVP_F_EVP_PKEY_CTX_CTRL, EVP_R_NO_OPERATION_SET);-
384 return -1;
never executed: return -1;
0
385 }-
386-
387 if ((optype != -1) && !(ctx->operation & optype)) {
(optype != -1)Description
TRUEevaluated 253927 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 2194 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
!(ctx->operation & optype)Description
TRUEnever evaluated
FALSEevaluated 253927 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-253927
388 EVPerr(EVP_F_EVP_PKEY_CTX_CTRL, EVP_R_INVALID_OPERATION);-
389 return -1;
never executed: return -1;
0
390 }-
391-
392 doit:
code before this statement executed 256121 times by 1 test: doit:
Executed by:
  • libcrypto.so.1.1
256121
393 ret = ctx->pmeth->ctrl(ctx, cmd, p1, p2);-
394-
395 if (ret == -2)
ret == -2Description
TRUEevaluated 6 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 256127 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
6-256127
396 EVPerr(EVP_F_EVP_PKEY_CTX_CTRL, EVP_R_COMMAND_NOT_SUPPORTED);
executed 6 times by 1 test: ERR_put_error(6,(137),(147),__FILE__,396);
Executed by:
  • libcrypto.so.1.1
6
397-
398 return ret;
executed 256133 times by 1 test: return ret;
Executed by:
  • libcrypto.so.1.1
256133
399}-
400-
401int EVP_PKEY_CTX_ctrl_uint64(EVP_PKEY_CTX *ctx, int keytype, int optype,-
402 int cmd, uint64_t value)-
403{-
404 return EVP_PKEY_CTX_ctrl(ctx, keytype, optype, cmd, 0, &value);
executed 5 times by 1 test: return EVP_PKEY_CTX_ctrl(ctx, keytype, optype, cmd, 0, &value);
Executed by:
  • libcrypto.so.1.1
5
405}-
406-
407int EVP_PKEY_CTX_ctrl_str(EVP_PKEY_CTX *ctx,-
408 const char *name, const char *value)-
409{-
410 if (!ctx || !ctx->pmeth || !ctx->pmeth->ctrl_str) {
!ctxDescription
TRUEnever evaluated
FALSEevaluated 1078 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
!ctx->pmethDescription
TRUEnever evaluated
FALSEevaluated 1078 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
!ctx->pmeth->ctrl_strDescription
TRUEnever evaluated
FALSEevaluated 1078 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1078
411 EVPerr(EVP_F_EVP_PKEY_CTX_CTRL_STR, EVP_R_COMMAND_NOT_SUPPORTED);-
412 return -2;
never executed: return -2;
0
413 }-
414 if (strcmp(name, "digest") == 0)
never executed: __result = (((const unsigned char *) (const char *) ( name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "digest" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
__extension__ ... )))); }) == 0Description
TRUEevaluated 63 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 1015 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0-1015
415 return EVP_PKEY_CTX_md(ctx, EVP_PKEY_OP_TYPE_SIG, EVP_PKEY_CTRL_MD,
executed 63 times by 1 test: return EVP_PKEY_CTX_md(ctx, ((1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7)), 1, value);
Executed by:
  • libcrypto.so.1.1
63
416 value);
executed 63 times by 1 test: return EVP_PKEY_CTX_md(ctx, ((1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7)), 1, value);
Executed by:
  • libcrypto.so.1.1
63
417 return ctx->pmeth->ctrl_str(ctx, name, value);
executed 1015 times by 1 test: return ctx->pmeth->ctrl_str(ctx, name, value);
Executed by:
  • libcrypto.so.1.1
1015
418}-
419-
420/* Utility functions to send a string of hex string to a ctrl */-
421-
422int EVP_PKEY_CTX_str2ctrl(EVP_PKEY_CTX *ctx, int cmd, const char *str)-
423{-
424 size_t len;-
425-
426 len = strlen(str);-
427 if (len > INT_MAX)
len > 0x7fffffffDescription
TRUEnever evaluated
FALSEevaluated 35 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-35
428 return -1;
never executed: return -1;
0
429 return ctx->pmeth->ctrl(ctx, cmd, len, (void *)str);
executed 35 times by 1 test: return ctx->pmeth->ctrl(ctx, cmd, len, (void *)str);
Executed by:
  • libcrypto.so.1.1
35
430}-
431-
432int EVP_PKEY_CTX_hex2ctrl(EVP_PKEY_CTX *ctx, int cmd, const char *hex)-
433{-
434 unsigned char *bin;-
435 long binlen;-
436 int rv = -1;-
437-
438 bin = OPENSSL_hexstr2buf(hex, &binlen);-
439 if (bin == NULL)
bin == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 61 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-61
440 return 0;
never executed: return 0;
0
441 if (binlen <= INT_MAX)
binlen <= 0x7fffffffDescription
TRUEevaluated 61 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
0-61
442 rv = ctx->pmeth->ctrl(ctx, cmd, binlen, bin);
executed 61 times by 1 test: rv = ctx->pmeth->ctrl(ctx, cmd, binlen, bin);
Executed by:
  • libcrypto.so.1.1
61
443 OPENSSL_free(bin);-
444 return rv;
executed 61 times by 1 test: return rv;
Executed by:
  • libcrypto.so.1.1
61
445}-
446-
447/* Pass a message digest to a ctrl */-
448int EVP_PKEY_CTX_md(EVP_PKEY_CTX *ctx, int optype, int cmd, const char *md)-
449{-
450 const EVP_MD *m;-
451-
452 if (md == NULL || (m = EVP_get_digestbyname(md)) == NULL) {
md == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 222 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
(m = EVP_get_d...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 222 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-222
453 EVPerr(EVP_F_EVP_PKEY_CTX_MD, EVP_R_INVALID_DIGEST);-
454 return 0;
never executed: return 0;
0
455 }-
456 return EVP_PKEY_CTX_ctrl(ctx, -1, optype, cmd, 0, (void *)m);
executed 222 times by 1 test: return EVP_PKEY_CTX_ctrl(ctx, -1, optype, cmd, 0, (void *)m);
Executed by:
  • libcrypto.so.1.1
222
457}-
458-
459int EVP_PKEY_CTX_get_operation(EVP_PKEY_CTX *ctx)-
460{-
461 return ctx->operation;
never executed: return ctx->operation;
0
462}-
463-
464void EVP_PKEY_CTX_set0_keygen_info(EVP_PKEY_CTX *ctx, int *dat, int datlen)-
465{-
466 ctx->keygen_info = dat;-
467 ctx->keygen_info_count = datlen;-
468}
executed 136 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
136
469-
470void EVP_PKEY_CTX_set_data(EVP_PKEY_CTX *ctx, void *data)-
471{-
472 ctx->data = data;-
473}
executed 181832 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
181832
474-
475void *EVP_PKEY_CTX_get_data(EVP_PKEY_CTX *ctx)-
476{-
477 return ctx->data;
executed 501214 times by 1 test: return ctx->data;
Executed by:
  • libcrypto.so.1.1
501214
478}-
479-
480EVP_PKEY *EVP_PKEY_CTX_get0_pkey(EVP_PKEY_CTX *ctx)-
481{-
482 return ctx->pkey;
executed 79 times by 1 test: return ctx->pkey;
Executed by:
  • libcrypto.so.1.1
79
483}-
484-
485EVP_PKEY *EVP_PKEY_CTX_get0_peerkey(EVP_PKEY_CTX *ctx)-
486{-
487 return ctx->peerkey;
executed 6 times by 1 test: return ctx->peerkey;
Executed by:
  • libcrypto.so.1.1
6
488}-
489-
490void EVP_PKEY_CTX_set_app_data(EVP_PKEY_CTX *ctx, void *data)-
491{-
492 ctx->app_data = data;-
493}
executed 13 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
13
494-
495void *EVP_PKEY_CTX_get_app_data(EVP_PKEY_CTX *ctx)-
496{-
497 return ctx->app_data;
executed 2168 times by 1 test: return ctx->app_data;
Executed by:
  • libcrypto.so.1.1
2168
498}-
499-
500void EVP_PKEY_meth_set_init(EVP_PKEY_METHOD *pmeth,-
501 int (*init) (EVP_PKEY_CTX *ctx))-
502{-
503 pmeth->init = init;-
504}
never executed: end of block
0
505-
506void EVP_PKEY_meth_set_copy(EVP_PKEY_METHOD *pmeth,-
507 int (*copy) (EVP_PKEY_CTX *dst,-
508 EVP_PKEY_CTX *src))-
509{-
510 pmeth->copy = copy;-
511}
never executed: end of block
0
512-
513void EVP_PKEY_meth_set_cleanup(EVP_PKEY_METHOD *pmeth,-
514 void (*cleanup) (EVP_PKEY_CTX *ctx))-
515{-
516 pmeth->cleanup = cleanup;-
517}
never executed: end of block
0
518-
519void EVP_PKEY_meth_set_paramgen(EVP_PKEY_METHOD *pmeth,-
520 int (*paramgen_init) (EVP_PKEY_CTX *ctx),-
521 int (*paramgen) (EVP_PKEY_CTX *ctx,-
522 EVP_PKEY *pkey))-
523{-
524 pmeth->paramgen_init = paramgen_init;-
525 pmeth->paramgen = paramgen;-
526}
never executed: end of block
0
527-
528void EVP_PKEY_meth_set_keygen(EVP_PKEY_METHOD *pmeth,-
529 int (*keygen_init) (EVP_PKEY_CTX *ctx),-
530 int (*keygen) (EVP_PKEY_CTX *ctx,-
531 EVP_PKEY *pkey))-
532{-
533 pmeth->keygen_init = keygen_init;-
534 pmeth->keygen = keygen;-
535}
never executed: end of block
0
536-
537void EVP_PKEY_meth_set_sign(EVP_PKEY_METHOD *pmeth,-
538 int (*sign_init) (EVP_PKEY_CTX *ctx),-
539 int (*sign) (EVP_PKEY_CTX *ctx,-
540 unsigned char *sig, size_t *siglen,-
541 const unsigned char *tbs,-
542 size_t tbslen))-
543{-
544 pmeth->sign_init = sign_init;-
545 pmeth->sign = sign;-
546}
never executed: end of block
0
547-
548void EVP_PKEY_meth_set_verify(EVP_PKEY_METHOD *pmeth,-
549 int (*verify_init) (EVP_PKEY_CTX *ctx),-
550 int (*verify) (EVP_PKEY_CTX *ctx,-
551 const unsigned char *sig,-
552 size_t siglen,-
553 const unsigned char *tbs,-
554 size_t tbslen))-
555{-
556 pmeth->verify_init = verify_init;-
557 pmeth->verify = verify;-
558}
never executed: end of block
0
559-
560void EVP_PKEY_meth_set_verify_recover(EVP_PKEY_METHOD *pmeth,-
561 int (*verify_recover_init) (EVP_PKEY_CTX-
562 *ctx),-
563 int (*verify_recover) (EVP_PKEY_CTX-
564 *ctx,-
565 unsigned char-
566 *sig,-
567 size_t *siglen,-
568 const unsigned-
569 char *tbs,-
570 size_t tbslen))-
571{-
572 pmeth->verify_recover_init = verify_recover_init;-
573 pmeth->verify_recover = verify_recover;-
574}
never executed: end of block
0
575-
576void EVP_PKEY_meth_set_signctx(EVP_PKEY_METHOD *pmeth,-
577 int (*signctx_init) (EVP_PKEY_CTX *ctx,-
578 EVP_MD_CTX *mctx),-
579 int (*signctx) (EVP_PKEY_CTX *ctx,-
580 unsigned char *sig,-
581 size_t *siglen,-
582 EVP_MD_CTX *mctx))-
583{-
584 pmeth->signctx_init = signctx_init;-
585 pmeth->signctx = signctx;-
586}
never executed: end of block
0
587-
588void EVP_PKEY_meth_set_verifyctx(EVP_PKEY_METHOD *pmeth,-
589 int (*verifyctx_init) (EVP_PKEY_CTX *ctx,-
590 EVP_MD_CTX *mctx),-
591 int (*verifyctx) (EVP_PKEY_CTX *ctx,-
592 const unsigned char *sig,-
593 int siglen,-
594 EVP_MD_CTX *mctx))-
595{-
596 pmeth->verifyctx_init = verifyctx_init;-
597 pmeth->verifyctx = verifyctx;-
598}
never executed: end of block
0
599-
600void EVP_PKEY_meth_set_encrypt(EVP_PKEY_METHOD *pmeth,-
601 int (*encrypt_init) (EVP_PKEY_CTX *ctx),-
602 int (*encryptfn) (EVP_PKEY_CTX *ctx,-
603 unsigned char *out,-
604 size_t *outlen,-
605 const unsigned char *in,-
606 size_t inlen))-
607{-
608 pmeth->encrypt_init = encrypt_init;-
609 pmeth->encrypt = encryptfn;-
610}
executed 1 time by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
1
611-
612void EVP_PKEY_meth_set_decrypt(EVP_PKEY_METHOD *pmeth,-
613 int (*decrypt_init) (EVP_PKEY_CTX *ctx),-
614 int (*decrypt) (EVP_PKEY_CTX *ctx,-
615 unsigned char *out,-
616 size_t *outlen,-
617 const unsigned char *in,-
618 size_t inlen))-
619{-
620 pmeth->decrypt_init = decrypt_init;-
621 pmeth->decrypt = decrypt;-
622}
never executed: end of block
0
623-
624void EVP_PKEY_meth_set_derive(EVP_PKEY_METHOD *pmeth,-
625 int (*derive_init) (EVP_PKEY_CTX *ctx),-
626 int (*derive) (EVP_PKEY_CTX *ctx,-
627 unsigned char *key,-
628 size_t *keylen))-
629{-
630 pmeth->derive_init = derive_init;-
631 pmeth->derive = derive;-
632}
never executed: end of block
0
633-
634void EVP_PKEY_meth_set_ctrl(EVP_PKEY_METHOD *pmeth,-
635 int (*ctrl) (EVP_PKEY_CTX *ctx, int type, int p1,-
636 void *p2),-
637 int (*ctrl_str) (EVP_PKEY_CTX *ctx,-
638 const char *type,-
639 const char *value))-
640{-
641 pmeth->ctrl = ctrl;-
642 pmeth->ctrl_str = ctrl_str;-
643}
never executed: end of block
0
644-
645void EVP_PKEY_meth_set_check(EVP_PKEY_METHOD *pmeth,-
646 int (*check) (EVP_PKEY *pkey))-
647{-
648 pmeth->check = check;-
649}
executed 1 time by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
1
650-
651void EVP_PKEY_meth_set_public_check(EVP_PKEY_METHOD *pmeth,-
652 int (*check) (EVP_PKEY *pkey))-
653{-
654 pmeth->public_check = check;-
655}
executed 1 time by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
1
656-
657void EVP_PKEY_meth_set_param_check(EVP_PKEY_METHOD *pmeth,-
658 int (*check) (EVP_PKEY *pkey))-
659{-
660 pmeth->param_check = check;-
661}
executed 1 time by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
1
662-
663void EVP_PKEY_meth_set_digest_custom(EVP_PKEY_METHOD *pmeth,-
664 int (*digest_custom) (EVP_PKEY_CTX *ctx,-
665 EVP_MD_CTX *mctx))-
666{-
667 pmeth->digest_custom = digest_custom;-
668}
never executed: end of block
0
669-
670void EVP_PKEY_meth_get_init(const EVP_PKEY_METHOD *pmeth,-
671 int (**pinit) (EVP_PKEY_CTX *ctx))-
672{-
673 *pinit = pmeth->init;-
674}
never executed: end of block
0
675-
676void EVP_PKEY_meth_get_copy(const EVP_PKEY_METHOD *pmeth,-
677 int (**pcopy) (EVP_PKEY_CTX *dst,-
678 EVP_PKEY_CTX *src))-
679{-
680 *pcopy = pmeth->copy;-
681}
never executed: end of block
0
682-
683void EVP_PKEY_meth_get_cleanup(const EVP_PKEY_METHOD *pmeth,-
684 void (**pcleanup) (EVP_PKEY_CTX *ctx))-
685{-
686 *pcleanup = pmeth->cleanup;-
687}
never executed: end of block
0
688-
689void EVP_PKEY_meth_get_paramgen(const EVP_PKEY_METHOD *pmeth,-
690 int (**pparamgen_init) (EVP_PKEY_CTX *ctx),-
691 int (**pparamgen) (EVP_PKEY_CTX *ctx,-
692 EVP_PKEY *pkey))-
693{-
694 if (pparamgen_init)
pparamgen_initDescription
TRUEnever evaluated
FALSEnever evaluated
0
695 *pparamgen_init = pmeth->paramgen_init;
never executed: *pparamgen_init = pmeth->paramgen_init;
0
696 if (pparamgen)
pparamgenDescription
TRUEnever evaluated
FALSEnever evaluated
0
697 *pparamgen = pmeth->paramgen;
never executed: *pparamgen = pmeth->paramgen;
0
698}
never executed: end of block
0
699-
700void EVP_PKEY_meth_get_keygen(const EVP_PKEY_METHOD *pmeth,-
701 int (**pkeygen_init) (EVP_PKEY_CTX *ctx),-
702 int (**pkeygen) (EVP_PKEY_CTX *ctx,-
703 EVP_PKEY *pkey))-
704{-
705 if (pkeygen_init)
pkeygen_initDescription
TRUEnever evaluated
FALSEnever evaluated
0
706 *pkeygen_init = pmeth->keygen_init;
never executed: *pkeygen_init = pmeth->keygen_init;
0
707 if (pkeygen)
pkeygenDescription
TRUEnever evaluated
FALSEnever evaluated
0
708 *pkeygen = pmeth->keygen;
never executed: *pkeygen = pmeth->keygen;
0
709}
never executed: end of block
0
710-
711void EVP_PKEY_meth_get_sign(const EVP_PKEY_METHOD *pmeth,-
712 int (**psign_init) (EVP_PKEY_CTX *ctx),-
713 int (**psign) (EVP_PKEY_CTX *ctx,-
714 unsigned char *sig, size_t *siglen,-
715 const unsigned char *tbs,-
716 size_t tbslen))-
717{-
718 if (psign_init)
psign_initDescription
TRUEnever evaluated
FALSEnever evaluated
0
719 *psign_init = pmeth->sign_init;
never executed: *psign_init = pmeth->sign_init;
0
720 if (psign)
psignDescription
TRUEnever evaluated
FALSEnever evaluated
0
721 *psign = pmeth->sign;
never executed: *psign = pmeth->sign;
0
722}
never executed: end of block
0
723-
724void EVP_PKEY_meth_get_verify(const EVP_PKEY_METHOD *pmeth,-
725 int (**pverify_init) (EVP_PKEY_CTX *ctx),-
726 int (**pverify) (EVP_PKEY_CTX *ctx,-
727 const unsigned char *sig,-
728 size_t siglen,-
729 const unsigned char *tbs,-
730 size_t tbslen))-
731{-
732 if (pverify_init)
pverify_initDescription
TRUEnever evaluated
FALSEnever evaluated
0
733 *pverify_init = pmeth->verify_init;
never executed: *pverify_init = pmeth->verify_init;
0
734 if (pverify)
pverifyDescription
TRUEnever evaluated
FALSEnever evaluated
0
735 *pverify = pmeth->verify;
never executed: *pverify = pmeth->verify;
0
736}
never executed: end of block
0
737-
738void EVP_PKEY_meth_get_verify_recover(const EVP_PKEY_METHOD *pmeth,-
739 int (**pverify_recover_init) (EVP_PKEY_CTX-
740 *ctx),-
741 int (**pverify_recover) (EVP_PKEY_CTX-
742 *ctx,-
743 unsigned char-
744 *sig,-
745 size_t *siglen,-
746 const unsigned-
747 char *tbs,-
748 size_t tbslen))-
749{-
750 if (pverify_recover_init)
pverify_recover_initDescription
TRUEnever evaluated
FALSEnever evaluated
0
751 *pverify_recover_init = pmeth->verify_recover_init;
never executed: *pverify_recover_init = pmeth->verify_recover_init;
0
752 if (pverify_recover)
pverify_recoverDescription
TRUEnever evaluated
FALSEnever evaluated
0
753 *pverify_recover = pmeth->verify_recover;
never executed: *pverify_recover = pmeth->verify_recover;
0
754}
never executed: end of block
0
755-
756void EVP_PKEY_meth_get_signctx(const EVP_PKEY_METHOD *pmeth,-
757 int (**psignctx_init) (EVP_PKEY_CTX *ctx,-
758 EVP_MD_CTX *mctx),-
759 int (**psignctx) (EVP_PKEY_CTX *ctx,-
760 unsigned char *sig,-
761 size_t *siglen,-
762 EVP_MD_CTX *mctx))-
763{-
764 if (psignctx_init)
psignctx_initDescription
TRUEnever evaluated
FALSEnever evaluated
0
765 *psignctx_init = pmeth->signctx_init;
never executed: *psignctx_init = pmeth->signctx_init;
0
766 if (psignctx)
psignctxDescription
TRUEnever evaluated
FALSEnever evaluated
0
767 *psignctx = pmeth->signctx;
never executed: *psignctx = pmeth->signctx;
0
768}
never executed: end of block
0
769-
770void EVP_PKEY_meth_get_verifyctx(const EVP_PKEY_METHOD *pmeth,-
771 int (**pverifyctx_init) (EVP_PKEY_CTX *ctx,-
772 EVP_MD_CTX *mctx),-
773 int (**pverifyctx) (EVP_PKEY_CTX *ctx,-
774 const unsigned char *sig,-
775 int siglen,-
776 EVP_MD_CTX *mctx))-
777{-
778 if (pverifyctx_init)
pverifyctx_initDescription
TRUEnever evaluated
FALSEnever evaluated
0
779 *pverifyctx_init = pmeth->verifyctx_init;
never executed: *pverifyctx_init = pmeth->verifyctx_init;
0
780 if (pverifyctx)
pverifyctxDescription
TRUEnever evaluated
FALSEnever evaluated
0
781 *pverifyctx = pmeth->verifyctx;
never executed: *pverifyctx = pmeth->verifyctx;
0
782}
never executed: end of block
0
783-
784void EVP_PKEY_meth_get_encrypt(const EVP_PKEY_METHOD *pmeth,-
785 int (**pencrypt_init) (EVP_PKEY_CTX *ctx),-
786 int (**pencryptfn) (EVP_PKEY_CTX *ctx,-
787 unsigned char *out,-
788 size_t *outlen,-
789 const unsigned char *in,-
790 size_t inlen))-
791{-
792 if (pencrypt_init)
pencrypt_initDescription
TRUEnever evaluated
FALSEnever evaluated
0
793 *pencrypt_init = pmeth->encrypt_init;
never executed: *pencrypt_init = pmeth->encrypt_init;
0
794 if (pencryptfn)
pencryptfnDescription
TRUEnever evaluated
FALSEnever evaluated
0
795 *pencryptfn = pmeth->encrypt;
never executed: *pencryptfn = pmeth->encrypt;
0
796}
never executed: end of block
0
797-
798void EVP_PKEY_meth_get_decrypt(const EVP_PKEY_METHOD *pmeth,-
799 int (**pdecrypt_init) (EVP_PKEY_CTX *ctx),-
800 int (**pdecrypt) (EVP_PKEY_CTX *ctx,-
801 unsigned char *out,-
802 size_t *outlen,-
803 const unsigned char *in,-
804 size_t inlen))-
805{-
806 if (pdecrypt_init)
pdecrypt_initDescription
TRUEnever evaluated
FALSEnever evaluated
0
807 *pdecrypt_init = pmeth->decrypt_init;
never executed: *pdecrypt_init = pmeth->decrypt_init;
0
808 if (pdecrypt)
pdecryptDescription
TRUEnever evaluated
FALSEnever evaluated
0
809 *pdecrypt = pmeth->decrypt;
never executed: *pdecrypt = pmeth->decrypt;
0
810}
never executed: end of block
0
811-
812void EVP_PKEY_meth_get_derive(const EVP_PKEY_METHOD *pmeth,-
813 int (**pderive_init) (EVP_PKEY_CTX *ctx),-
814 int (**pderive) (EVP_PKEY_CTX *ctx,-
815 unsigned char *key,-
816 size_t *keylen))-
817{-
818 if (pderive_init)
pderive_initDescription
TRUEnever evaluated
FALSEnever evaluated
0
819 *pderive_init = pmeth->derive_init;
never executed: *pderive_init = pmeth->derive_init;
0
820 if (pderive)
pderiveDescription
TRUEnever evaluated
FALSEnever evaluated
0
821 *pderive = pmeth->derive;
never executed: *pderive = pmeth->derive;
0
822}
never executed: end of block
0
823-
824void EVP_PKEY_meth_get_ctrl(const EVP_PKEY_METHOD *pmeth,-
825 int (**pctrl) (EVP_PKEY_CTX *ctx, int type, int p1,-
826 void *p2),-
827 int (**pctrl_str) (EVP_PKEY_CTX *ctx,-
828 const char *type,-
829 const char *value))-
830{-
831 if (pctrl)
pctrlDescription
TRUEnever evaluated
FALSEnever evaluated
0
832 *pctrl = pmeth->ctrl;
never executed: *pctrl = pmeth->ctrl;
0
833 if (pctrl_str)
pctrl_strDescription
TRUEnever evaluated
FALSEnever evaluated
0
834 *pctrl_str = pmeth->ctrl_str;
never executed: *pctrl_str = pmeth->ctrl_str;
0
835}
never executed: end of block
0
836-
837void EVP_PKEY_meth_get_check(const EVP_PKEY_METHOD *pmeth,-
838 int (**pcheck) (EVP_PKEY *pkey))-
839{-
840 if (pcheck != NULL)
pcheck != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
841 *pcheck = pmeth->check;
never executed: *pcheck = pmeth->check;
0
842}
never executed: end of block
0
843-
844void EVP_PKEY_meth_get_public_check(const EVP_PKEY_METHOD *pmeth,-
845 int (**pcheck) (EVP_PKEY *pkey))-
846{-
847 if (pcheck != NULL)
pcheck != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
848 *pcheck = pmeth->public_check;
never executed: *pcheck = pmeth->public_check;
0
849}
never executed: end of block
0
850-
851void EVP_PKEY_meth_get_param_check(const EVP_PKEY_METHOD *pmeth,-
852 int (**pcheck) (EVP_PKEY *pkey))-
853{-
854 if (pcheck != NULL)
pcheck != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
855 *pcheck = pmeth->param_check;
never executed: *pcheck = pmeth->param_check;
0
856}
never executed: end of block
0
857-
858void EVP_PKEY_meth_get_digest_custom(EVP_PKEY_METHOD *pmeth,-
859 int (**pdigest_custom) (EVP_PKEY_CTX *ctx,-
860 EVP_MD_CTX *mctx))-
861{-
862 if (pdigest_custom != NULL)
pdigest_custom != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
863 *pdigest_custom = pmeth->digest_custom;
never executed: *pdigest_custom = pmeth->digest_custom;
0
864}
never executed: end of block
0
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.2.2