Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/dsa/dsa_key.c |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | - | |||||||||||||
2 | static int dsa_builtin_keygen(DSA *dsa); | - | ||||||||||||
3 | - | |||||||||||||
4 | int DSA_generate_key(DSA *dsa) | - | ||||||||||||
5 | { | - | ||||||||||||
6 | if (dsa->meth->dsa_keygen
| 0-3 | ||||||||||||
7 | return never executed: dsa->meth->dsa_keygen(dsa);return dsa->meth->dsa_keygen(dsa); never executed: return dsa->meth->dsa_keygen(dsa); | 0 | ||||||||||||
8 | return executed 3 times by 1 test: dsa_builtin_keygen(dsa);return dsa_builtin_keygen(dsa); Executed by:
executed 3 times by 1 test: return dsa_builtin_keygen(dsa); Executed by:
| 3 | ||||||||||||
9 | } | - | ||||||||||||
10 | - | |||||||||||||
11 | static int dsa_builtin_keygen(DSA *dsa) | - | ||||||||||||
12 | { | - | ||||||||||||
13 | int ok = 0; | - | ||||||||||||
14 | BN_CTX *ctx = | - | ||||||||||||
15 | ((void *)0) | - | ||||||||||||
16 | ; | - | ||||||||||||
17 | BIGNUM *pub_key = | - | ||||||||||||
18 | ((void *)0) | - | ||||||||||||
19 | , *priv_key = | - | ||||||||||||
20 | ((void *)0) | - | ||||||||||||
21 | ; | - | ||||||||||||
22 | - | |||||||||||||
23 | if ((
| 0-3 | ||||||||||||
24 | ((void *)0)
| 0-3 | ||||||||||||
25 | ) | - | ||||||||||||
26 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
27 | - | |||||||||||||
28 | if (dsa->priv_key ==
| 0-3 | ||||||||||||
29 | ((void *)0)
| 0-3 | ||||||||||||
30 | ) { | - | ||||||||||||
31 | if ((
| 0-3 | ||||||||||||
32 | ((void *)0)
| 0-3 | ||||||||||||
33 | ) | - | ||||||||||||
34 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
35 | } executed 3 times by 1 test: elseend of block Executed by:
| 3 | ||||||||||||
36 | priv_key = dsa->priv_key; never executed: priv_key = dsa->priv_key; | 0 | ||||||||||||
37 | - | |||||||||||||
38 | do | - | ||||||||||||
39 | if (!BN_priv_rand_range(priv_key, dsa->q)
| 0-3 | ||||||||||||
40 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
41 | while (BN_is_zero(priv_key)
| 0-3 | ||||||||||||
42 | - | |||||||||||||
43 | if (dsa->pub_key ==
| 0-3 | ||||||||||||
44 | ((void *)0)
| 0-3 | ||||||||||||
45 | ) { | - | ||||||||||||
46 | if ((
| 0-3 | ||||||||||||
47 | ((void *)0)
| 0-3 | ||||||||||||
48 | ) | - | ||||||||||||
49 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
50 | } executed 3 times by 1 test: elseend of block Executed by:
| 3 | ||||||||||||
51 | pub_key = dsa->pub_key; never executed: pub_key = dsa->pub_key; | 0 | ||||||||||||
52 | - | |||||||||||||
53 | { | - | ||||||||||||
54 | BIGNUM *prk = BN_new(); | - | ||||||||||||
55 | - | |||||||||||||
56 | if (prk ==
| 0-3 | ||||||||||||
57 | ((void *)0)
| 0-3 | ||||||||||||
58 | ) | - | ||||||||||||
59 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
60 | BN_with_flags(prk, priv_key, 0x04); | - | ||||||||||||
61 | - | |||||||||||||
62 | if (!BN_mod_exp(pub_key, dsa->g, prk, dsa->p, ctx)
| 0-3 | ||||||||||||
63 | BN_free(prk); | - | ||||||||||||
64 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
65 | } | - | ||||||||||||
66 | - | |||||||||||||
67 | BN_free(prk); | - | ||||||||||||
68 | } | - | ||||||||||||
69 | - | |||||||||||||
70 | dsa->priv_key = priv_key; | - | ||||||||||||
71 | dsa->pub_key = pub_key; | - | ||||||||||||
72 | ok = 1; | - | ||||||||||||
73 | - | |||||||||||||
74 | err: code before this statement executed 3 times by 1 test: err: Executed by:
| 3 | ||||||||||||
75 | if (pub_key != dsa->pub_key
| 0-3 | ||||||||||||
76 | BN_free(pub_key); never executed: BN_free(pub_key); | 0 | ||||||||||||
77 | if (priv_key != dsa->priv_key
| 0-3 | ||||||||||||
78 | BN_free(priv_key); never executed: BN_free(priv_key); | 0 | ||||||||||||
79 | BN_CTX_free(ctx); | - | ||||||||||||
80 | return executed 3 times by 1 test: ok;return ok; Executed by:
executed 3 times by 1 test: return ok; Executed by:
| 3 | ||||||||||||
81 | } | - | ||||||||||||
Switch to Source code | Preprocessed file |