| Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/dsa/dsa_gen.c |
| Switch to Source code | Preprocessed file |
| Line | Source | Count | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 3 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 4 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 6 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 7 | int | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 8 | DSA_generate_parameters_ex(DSA *ret, int bits, const unsigned char *seed_in, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 9 | int seed_len, int *counter_ret, unsigned long *h_ret, BN_GENCB *cb) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 10 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 11 | if (ret->meth->dsa_paramgen
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 12 | return never executed: ret->meth->dsa_paramgen(ret, bits, seed_in, seed_len,return ret->meth->dsa_paramgen(ret, bits, seed_in, seed_len, counter_ret, h_ret, cb);never executed: return ret->meth->dsa_paramgen(ret, bits, seed_in, seed_len, counter_ret, h_ret, cb); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 13 | counter_ret, h_ret, cb); never executed: return ret->meth->dsa_paramgen(ret, bits, seed_in, seed_len, counter_ret, h_ret, cb); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 14 | else { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 15 | const EVP_MD *evpmd; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 16 | size_t qbits; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 17 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 18 | if (bits >= 2048
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 19 | qbits = 256; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 20 | evpmd = EVP_sha256(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 21 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 22 | qbits = 160; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 23 | evpmd = EVP_sha1(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 24 | } executed 2 times by 2 tests: end of blockExecuted by:
| 2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 25 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 26 | return executed 2 times by 2 tests: dsa_builtin_paramgen(ret, bits, qbits, evpmd, seed_in,return dsa_builtin_paramgen(ret, bits, qbits, evpmd, seed_in, seed_len, ((void *)0) , counter_ret, h_ret, cb);Executed by:
executed 2 times by 2 tests: return dsa_builtin_paramgen(ret, bits, qbits, evpmd, seed_in, seed_len, ((void *)0) , counter_ret, h_ret, cb);Executed by:
| 2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 27 | seed_len, executed 2 times by 2 tests: return dsa_builtin_paramgen(ret, bits, qbits, evpmd, seed_in, seed_len, ((void *)0) , counter_ret, h_ret, cb);Executed by:
| 2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 28 | ((void *)0) executed 2 times by 2 tests: return dsa_builtin_paramgen(ret, bits, qbits, evpmd, seed_in, seed_len, ((void *)0) , counter_ret, h_ret, cb);Executed by:
| 2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 29 | , counter_ret, h_ret, cb); executed 2 times by 2 tests: return dsa_builtin_paramgen(ret, bits, qbits, evpmd, seed_in, seed_len, ((void *)0) , counter_ret, h_ret, cb);Executed by:
| 2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 30 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 31 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 32 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 33 | int | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 34 | dsa_builtin_paramgen(DSA *ret, size_t bits, size_t qbits, const EVP_MD *evpmd, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 35 | const unsigned char *seed_in, size_t seed_len, unsigned char *seed_out, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 36 | int *counter_ret, unsigned long *h_ret, BN_GENCB *cb) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 37 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 38 | int ok = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 39 | unsigned char seed[32]; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 40 | unsigned char md[32]; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 41 | unsigned char buf[32], buf2[32]; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 42 | BIGNUM *r0, *W, *X, *c, *test; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 43 | BIGNUM *g = | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 44 | ((void *)0) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 45 | , *q = | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 46 | ((void *)0) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 47 | , *p = | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 48 | ((void *)0) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 49 | ; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 50 | BN_MONT_CTX *mont = | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 51 | ((void *)0) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 52 | ; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 53 | int i, k, n = 0, m = 0, qsize = qbits >> 3; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 54 | int counter = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 55 | int r = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 56 | BN_CTX *ctx = | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 57 | ((void *)0) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 58 | ; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 59 | unsigned int h = 2; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 60 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 61 | if (qsize != 20
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 62 | qsize != 32
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 63 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 64 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 65 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 66 | if (evpmd ==
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 67 | ((void *)0)
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 68 | ) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 69 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 70 | evpmd = EVP_sha1(); never executed: evpmd = EVP_sha1(); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 71 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 72 | if (bits < 512
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 73 | bits = 512; never executed: bits = 512; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 74 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 75 | bits = (bits + 63) / 64 * 64; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 76 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 77 | if (seed_len < (size_t)qsize
| 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 78 | seed_in = | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 79 | ((void *)0) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 80 | ; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 81 | seed_len = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 82 | } executed 1 time by 1 test: end of blockExecuted by:
| 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 83 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 84 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 85 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 86 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 87 | if (seed_len > (size_t)qsize
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 88 | seed_len = qsize; never executed: seed_len = qsize; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 89 | if (seed_in !=
| 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 90 | ((void *)0)
| 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 91 | ) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 92 | memcpy(seed, seed_in, seed_len); executed 1 time by 1 test: memcpy(seed, seed_in, seed_len);Executed by:
| 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 93 | else if (seed_len != 0
| 0-1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 94 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 95 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 96 | if ((
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 97 | ((void *)0)
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 98 | ) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 99 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 100 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 101 | if ((
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 102 | ((void *)0)
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 103 | ) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 104 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 105 | BN_CTX_start(ctx); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 106 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 107 | if ((
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 108 | ((void *)0)
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 109 | ) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 110 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 111 | if ((
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 112 | ((void *)0)
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 113 | ) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 114 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 115 | if ((
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 116 | ((void *)0)
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 117 | ) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 118 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 119 | if ((
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 120 | ((void *)0)
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 121 | ) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 122 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 123 | if ((
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 124 | ((void *)0)
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 125 | ) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 126 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 127 | if ((
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 128 | ((void *)0)
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 129 | ) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 130 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 131 | if ((
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 132 | ((void *)0)
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 133 | ) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 134 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 135 | if ((
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 136 | ((void *)0)
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 137 | ) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 138 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 139 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 140 | if (!BN_lshift(test, BN_value_one(), bits - 1)
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 141 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 142 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 143 | for (;;) { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 144 | for (;;) { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 145 | int seed_is_random; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 146 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 147 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 148 | if (!BN_GENCB_call(cb, 0, m++)
| 0-295 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 149 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 150 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 151 | if (seed_len == 0
| 1-294 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 152 | arc4random_buf(seed, qsize); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 153 | seed_is_random = 1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 154 | } executed 294 times by 1 test: else {end of blockExecuted by:
| 294 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 155 | seed_is_random = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 156 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 157 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 158 | seed_len = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 159 | } executed 1 time by 1 test: end of blockExecuted by:
| 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 160 | memcpy(buf, seed, qsize); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 161 | memcpy(buf2, seed, qsize); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 162 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 163 | for (i = qsize - 1; i >= 0
| 0-295 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 164 | buf[i]++; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 165 | if (buf[i] != 0
| 0-295 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 166 | break; executed 295 times by 2 tests: break;Executed by:
| 295 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 167 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 168 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 169 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 170 | if (!EVP_Digest(seed, qsize, md,
| 0-295 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 171 | ((void *)0)
| 0-295 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 172 | , evpmd,
| 0-295 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 173 | ((void *)0)
| 0-295 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 174 | )
| 0-295 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 175 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 176 | if (!EVP_Digest(buf, qsize, buf2,
| 0-295 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 177 | ((void *)0)
| 0-295 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 178 | , evpmd,
| 0-295 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 179 | ((void *)0)
| 0-295 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 180 | )
| 0-295 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 181 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 182 | for (i = 0; i < qsize
| 295-5900 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 183 | md[i] ^= buf2[i]; executed 5900 times by 2 tests: md[i] ^= buf2[i];Executed by:
| 5900 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 184 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 185 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 186 | md[0] |= 0x80; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 187 | md[qsize - 1] |= 0x01; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 188 | if (!BN_bin2bn(md, qsize, q)
| 0-295 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 189 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 190 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 191 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 192 | r = BN_is_prime_fasttest_ex(q, 50, ctx, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 193 | seed_is_random, cb); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 194 | if (r > 0
| 2-293 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 195 | break; executed 2 times by 2 tests: break;Executed by:
| 2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 196 | if (r != 0
| 0-293 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 197 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 198 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 199 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 200 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 201 | } executed 293 times by 1 test: end of blockExecuted by:
| 293 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 202 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 203 | if (!BN_GENCB_call(cb, 2, 0)
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 204 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 205 | if (!BN_GENCB_call(cb, 3, 0)
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 206 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 207 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 208 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 209 | counter = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 210 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 211 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 212 | n = (bits - 1) / 160; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 213 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 214 | for (;;) { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 215 | if (counter != 0
| 0-152 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 216 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 217 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 218 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 219 | (BN_set_word((W),0)); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 220 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 221 | for (k = 0; k <= n
| 154-616 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 222 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 223 | for (i = qsize - 1; i >= 0
| 0-618 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 224 | buf[i]++; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 225 | if (buf[i] != 0
| 2-616 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 226 | break; executed 616 times by 2 tests: break;Executed by:
| 616 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 227 | } executed 2 times by 1 test: end of blockExecuted by:
| 2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 228 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 229 | if (!EVP_Digest(buf, qsize, md ,
| 0-616 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 230 | ((void *)0)
| 0-616 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 231 | , evpmd,
| 0-616 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 232 |
| 0-616 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 233 | ((void *)0)
| 0-616 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 234 | )
| 0-616 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 235 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 236 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 237 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 238 | if (!BN_bin2bn(md, qsize, r0)
| 0-616 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 239 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 240 | if (!BN_lshift(r0, r0, (qsize << 3) * k)
| 0-616 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 241 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 242 | if (!BN_add(W, W, r0)
| 0-616 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 243 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 244 | } executed 616 times by 2 tests: end of blockExecuted by:
| 616 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 245 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 246 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 247 | if (!BN_mask_bits(W, bits - 1)
| 0-154 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 248 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 249 | if (!BN_copy(X, W)
| 0-154 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 250 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 251 | if (!BN_add(X, X, test)
| 0-154 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 252 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 253 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 254 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 255 | if (!BN_lshift1(r0, q)
| 0-154 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 256 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 257 | if (!BN_div_ct(
| 0-154 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 258 | ((void *)0)
| 0-154 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 259 | ,(c),(X),(r0),(ctx))
| 0-154 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 260 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 261 | if (!BN_sub(r0, c, BN_value_one())
| 0-154 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 262 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 263 | if (!BN_sub(p, X, r0)
| 0-154 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 264 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 265 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 266 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 267 | if (BN_cmp(p, test) >= 0
| 0-154 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 268 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 269 | r = BN_is_prime_fasttest_ex(p, 50, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 270 | ctx, 1, cb); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 271 | if (r > 0
| 2-152 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 272 | goto executed 2 times by 2 tests: end;goto end;Executed by:
executed 2 times by 2 tests: goto end;Executed by:
| 2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 273 | if (r != 0
| 0-152 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 274 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 275 | } executed 152 times by 2 tests: end of blockExecuted by:
| 152 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 276 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 277 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 278 | counter++; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 279 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 280 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 281 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 282 | if (counter >= 4096
| 0-152 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 283 | break; never executed: break; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 284 | } executed 152 times by 2 tests: end of blockExecuted by:
| 152 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 285 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 286 | end: code before this statement never executed: end: | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 287 | if (!BN_GENCB_call(cb, 2, 1)
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 288 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 289 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 290 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 291 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 292 | if (!BN_sub(test, p, BN_value_one())
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 293 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 294 | if (!BN_div_ct(r0,
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 295 | ((void *)0)
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 296 | , test, q, ctx)
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 297 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 298 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 299 | if (!BN_set_word(test, h)
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 300 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 301 | if (!BN_MONT_CTX_set(mont, p, ctx)
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 302 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 303 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 304 | for (;;) { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 305 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 306 | if (!BN_mod_exp_mont_ct(g, test, r0, p, ctx, mont)
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 307 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 308 | if (!((((((
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 309 | break; executed 2 times by 2 tests: break;Executed by:
| 2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 310 | if (!BN_add(test, test, BN_value_one())
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 311 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 312 | h++; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 313 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 314 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 315 | if (!BN_GENCB_call(cb, 3, 1)
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 316 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 317 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 318 | ok = 1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 319 | err: code before this statement executed 2 times by 2 tests: err:Executed by:
| 2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 320 | if (ok
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 321 | BN_free(ret->p); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 322 | BN_free(ret->q); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 323 | BN_free(ret->g); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 324 | ret->p = BN_dup(p); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 325 | ret->q = BN_dup(q); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 326 | ret->g = BN_dup(g); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 327 | if (ret->p ==
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 328 | ((void *)0)
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 329 | || ret->q ==
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 330 | ((void *)0)
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 331 | || ret->g ==
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 332 | ((void *)0)
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 333 | ) { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 334 | ok = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 335 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 336 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 337 | if (counter_ret !=
| 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 338 | ((void *)0)
| 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 339 | ) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 340 | * executed 1 time by 1 test: counter_ret = counter;*counter_ret = counter;Executed by:
executed 1 time by 1 test: *counter_ret = counter;Executed by:
| 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 341 | if (h_ret !=
| 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 342 | ((void *)0)
| 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 343 | ) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 344 | * executed 1 time by 1 test: h_ret = h;*h_ret = h;Executed by:
executed 1 time by 1 test: *h_ret = h;Executed by:
| 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 345 | if (seed_out !=
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 346 | ((void *)0)
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 347 | ) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 348 | memcpy(seed_out, seed, qsize); never executed: memcpy(seed_out, seed, qsize); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 349 | } executed 2 times by 2 tests: end of blockExecuted by:
| 2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 350 | if (ctx
| 0-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 351 | BN_CTX_end(ctx); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 352 | BN_CTX_free(ctx); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 353 | } executed 2 times by 2 tests: end of blockExecuted by:
| 2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 354 | BN_MONT_CTX_free(mont); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 355 | return executed 2 times by 2 tests: ok;return ok;Executed by:
executed 2 times by 2 tests: return ok;Executed by:
| 2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 356 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Switch to Source code | Preprocessed file |