Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/ec/ecdh_kdf.c |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | - | |||||||||||||
2 | - | |||||||||||||
3 | - | |||||||||||||
4 | - | |||||||||||||
5 | - | |||||||||||||
6 | int ECDH_KDF_X9_62(unsigned char *out, size_t outlen, | - | ||||||||||||
7 | const unsigned char *Z, size_t Zlen, | - | ||||||||||||
8 | const unsigned char *sinfo, size_t sinfolen, | - | ||||||||||||
9 | const EVP_MD *md) | - | ||||||||||||
10 | { | - | ||||||||||||
11 | EVP_MD_CTX *mctx = | - | ||||||||||||
12 | ((void *)0) | - | ||||||||||||
13 | ; | - | ||||||||||||
14 | int rv = 0; | - | ||||||||||||
15 | unsigned int i; | - | ||||||||||||
16 | size_t mdlen; | - | ||||||||||||
17 | unsigned char ctr[4]; | - | ||||||||||||
18 | if (sinfolen > (1 << 30)
| 0-18 | ||||||||||||
19 | || Zlen > (1 << 30)
| 0-18 | ||||||||||||
20 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||
21 | mctx = EVP_MD_CTX_new(); | - | ||||||||||||
22 | if (mctx ==
| 0-18 | ||||||||||||
23 | ((void *)0)
| 0-18 | ||||||||||||
24 | ) | - | ||||||||||||
25 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||
26 | mdlen = EVP_MD_size(md); | - | ||||||||||||
27 | for (i = 1;; i++) { | - | ||||||||||||
28 | unsigned char mtmp[64]; | - | ||||||||||||
29 | if (!EVP_DigestInit_ex(mctx, md,
| 0-26 | ||||||||||||
30 | ((void *)0)
| 0-26 | ||||||||||||
31 | )
| 0-26 | ||||||||||||
32 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
33 | ctr[3] = i & 0xFF; | - | ||||||||||||
34 | ctr[2] = (i >> 8) & 0xFF; | - | ||||||||||||
35 | ctr[1] = (i >> 16) & 0xFF; | - | ||||||||||||
36 | ctr[0] = (i >> 24) & 0xFF; | - | ||||||||||||
37 | if (!EVP_DigestUpdate(mctx, Z, Zlen)
| 0-26 | ||||||||||||
38 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
39 | if (!EVP_DigestUpdate(mctx, ctr, sizeof(ctr))
| 0-26 | ||||||||||||
40 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
41 | if (!EVP_DigestUpdate(mctx, sinfo, sinfolen)
| 0-26 | ||||||||||||
42 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
43 | if (outlen >= mdlen
| 8-18 | ||||||||||||
44 | if (!EVP_DigestFinal(mctx, out,
| 0-8 | ||||||||||||
45 | ((void *)0)
| 0-8 | ||||||||||||
46 | )
| 0-8 | ||||||||||||
47 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
48 | outlen -= mdlen; | - | ||||||||||||
49 | if (outlen == 0
| 0-8 | ||||||||||||
50 | break; never executed: break; | 0 | ||||||||||||
51 | out += mdlen; | - | ||||||||||||
52 | } executed 8 times by 1 test: else {end of block Executed by:
| 8 | ||||||||||||
53 | if (!EVP_DigestFinal(mctx, mtmp,
| 0-18 | ||||||||||||
54 | ((void *)0)
| 0-18 | ||||||||||||
55 | )
| 0-18 | ||||||||||||
56 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
57 | memcpy(out, mtmp, outlen); | - | ||||||||||||
58 | OPENSSL_cleanse(mtmp, mdlen); | - | ||||||||||||
59 | break; executed 18 times by 2 tests: break; Executed by:
| 18 | ||||||||||||
60 | } | - | ||||||||||||
61 | } | - | ||||||||||||
62 | rv = 1; | - | ||||||||||||
63 | err: code before this statement executed 18 times by 2 tests: err: Executed by:
| 18 | ||||||||||||
64 | EVP_MD_CTX_free(mctx); | - | ||||||||||||
65 | return executed 18 times by 2 tests: rv;return rv; Executed by:
executed 18 times by 2 tests: return rv; Executed by:
| 18 | ||||||||||||
66 | } | - | ||||||||||||
Switch to Source code | Preprocessed file |