| 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 blockExecuted 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 blockExecuted 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 |