| Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/ec/ec_key.c | 
| Switch to Source code | Preprocessed file | 
| Line | Source | Count | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | - | |||||||||||||
| 2 | - | |||||||||||||
| 3 | - | |||||||||||||
| 4 | - | |||||||||||||
| 5 | EC_KEY *EC_KEY_new(void) | - | ||||||||||||
| 6 | { | - | ||||||||||||
| 7 | return executed 40669 times by 2 tests: EC_KEY_new_method( return EC_KEY_new_method( ((void *)0) );Executed by: 
 executed 40669 times by 2 tests:  return EC_KEY_new_method( ((void *)0) );Executed by: 
 | 40669 | ||||||||||||
| 8 | ((void *)0) executed 40669 times by 2 tests:  return EC_KEY_new_method( ((void *)0) );Executed by: 
 | 40669 | ||||||||||||
| 9 | ); executed 40669 times by 2 tests:  return EC_KEY_new_method( ((void *)0) );Executed by: 
 | 40669 | ||||||||||||
| 10 | } | - | ||||||||||||
| 11 | - | |||||||||||||
| 12 | EC_KEY *EC_KEY_new_by_curve_name(int nid) | - | ||||||||||||
| 13 | { | - | ||||||||||||
| 14 | EC_KEY *ret = EC_KEY_new(); | - | ||||||||||||
| 15 | if (ret == 
 | 0-4 | ||||||||||||
| 16 | ((void *)0) 
 | 0-4 | ||||||||||||
| 17 | ) | - | ||||||||||||
| 18 | return never executed:  return ((void *)0) ;never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 19 | ((void *)0) never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 20 | ; never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 21 | ret->group = EC_GROUP_new_by_curve_name(nid); | - | ||||||||||||
| 22 | if (ret->group == 
 | 0-4 | ||||||||||||
| 23 | ((void *)0) 
 | 0-4 | ||||||||||||
| 24 | ) { | - | ||||||||||||
| 25 | EC_KEY_free(ret); | - | ||||||||||||
| 26 | return never executed:  return ((void *)0) ;never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 27 | ((void *)0) never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 28 | ; never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 29 | } | - | ||||||||||||
| 30 | if (ret->meth->set_group != 
 | 0-4 | ||||||||||||
| 31 | ((void *)0) 
 | 0-4 | ||||||||||||
| 32 | - | |||||||||||||
| 33 | && ret->meth->set_group(ret, ret->group) == 0 
 | 0 | ||||||||||||
| 34 | EC_KEY_free(ret); | - | ||||||||||||
| 35 | return never executed:  return ((void *)0) ;never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 36 | ((void *)0) never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 37 | ; never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 38 | } | - | ||||||||||||
| 39 | return executed 4 times by 1 test: ret; return ret;Executed by: 
 executed 4 times by 1 test:  return ret;Executed by: 
 | 4 | ||||||||||||
| 40 | } | - | ||||||||||||
| 41 | - | |||||||||||||
| 42 | void EC_KEY_free(EC_KEY *r) | - | ||||||||||||
| 43 | { | - | ||||||||||||
| 44 | int i; | - | ||||||||||||
| 45 | - | |||||||||||||
| 46 | if (r == 
 | 14558-42949 | ||||||||||||
| 47 | ((void *)0) 
 | 14558-42949 | ||||||||||||
| 48 | ) | - | ||||||||||||
| 49 | return; executed 14558 times by 1 test:  return;Executed by: 
 | 14558 | ||||||||||||
| 50 | - | |||||||||||||
| 51 | CRYPTO_DOWN_REF(&r->references, &i, r->lock); | - | ||||||||||||
| 52 | ; | - | ||||||||||||
| 53 | if (i > 0 
 | 1859-41090 | ||||||||||||
| 54 | return; executed 1859 times by 1 test:  return;Executed by: 
 | 1859 | ||||||||||||
| 55 | ; | - | ||||||||||||
| 56 | - | |||||||||||||
| 57 | if (r->meth != 
 | 0-41090 | ||||||||||||
| 58 | ((void *)0) 
 | 0-41090 | ||||||||||||
| 59 | && r->meth->finish != 
 | 0-41090 | ||||||||||||
| 60 | ((void *)0) 
 | 0-41090 | ||||||||||||
| 61 | ) | - | ||||||||||||
| 62 | r->meth->finish(r); never executed:  r->meth->finish(r); | 0 | ||||||||||||
| 63 | - | |||||||||||||
| 64 | - | |||||||||||||
| 65 | ENGINE_finish(r->engine); | - | ||||||||||||
| 66 | - | |||||||||||||
| 67 | - | |||||||||||||
| 68 | if (r->group 
 
 | 0-35746 | ||||||||||||
| 69 | r->group->meth->keyfinish(r); never executed:  r->group->meth->keyfinish(r); | 0 | ||||||||||||
| 70 | - | |||||||||||||
| 71 | CRYPTO_free_ex_data(8, r, &r->ex_data); | - | ||||||||||||
| 72 | CRYPTO_THREAD_lock_free(r->lock); | - | ||||||||||||
| 73 | EC_GROUP_free(r->group); | - | ||||||||||||
| 74 | EC_POINT_free(r->pub_key); | - | ||||||||||||
| 75 | BN_clear_free(r->priv_key); | - | ||||||||||||
| 76 | - | |||||||||||||
| 77 | CRYPTO_clear_free((void *)r, sizeof(EC_KEY), __FILE__, 70); | - | ||||||||||||
| 78 | } executed 41090 times by 2 tests:  end of blockExecuted by: 
 | 41090 | ||||||||||||
| 79 | - | |||||||||||||
| 80 | EC_KEY *EC_KEY_copy(EC_KEY *dest, const EC_KEY *src) | - | ||||||||||||
| 81 | { | - | ||||||||||||
| 82 | if (dest == 
 | 0-421 | ||||||||||||
| 83 | ((void *)0) 
 | 0-421 | ||||||||||||
| 84 | || src == 
 | 0-421 | ||||||||||||
| 85 | ((void *)0) 
 | 0-421 | ||||||||||||
| 86 | ) { | - | ||||||||||||
| 87 | ERR_put_error(16,(178),((3|64)),__FILE__,76); | - | ||||||||||||
| 88 | return never executed:  return ((void *)0) ;never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 89 | ((void *)0) never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 90 | ; never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 91 | } | - | ||||||||||||
| 92 | if (src->meth != dest->meth 
 | 0-421 | ||||||||||||
| 93 | if (dest->meth->finish != 
 | 0 | ||||||||||||
| 94 | ((void *)0) 
 | 0 | ||||||||||||
| 95 | ) | - | ||||||||||||
| 96 | dest->meth->finish(dest); never executed:  dest->meth->finish(dest); | 0 | ||||||||||||
| 97 | if (dest->group 
 
 | 0 | ||||||||||||
| 98 | dest->group->meth->keyfinish(dest); never executed:  dest->group->meth->keyfinish(dest); | 0 | ||||||||||||
| 99 | - | |||||||||||||
| 100 | if (ENGINE_finish(dest->engine) == 0 
 | 0 | ||||||||||||
| 101 | return never executed: 0; return 0;never executed:  return 0; | 0 | ||||||||||||
| 102 | dest->engine = | - | ||||||||||||
| 103 | ((void *)0) | - | ||||||||||||
| 104 | ; | - | ||||||||||||
| 105 | - | |||||||||||||
| 106 | } never executed:  end of block | 0 | ||||||||||||
| 107 | - | |||||||||||||
| 108 | if (src->group != 
 | 0-421 | ||||||||||||
| 109 | ((void *)0) 
 | 0-421 | ||||||||||||
| 110 | ) { | - | ||||||||||||
| 111 | const EC_METHOD *meth = EC_GROUP_method_of(src->group); | - | ||||||||||||
| 112 | - | |||||||||||||
| 113 | EC_GROUP_free(dest->group); | - | ||||||||||||
| 114 | dest->group = EC_GROUP_new(meth); | - | ||||||||||||
| 115 | if (dest->group == 
 | 0-421 | ||||||||||||
| 116 | ((void *)0) 
 | 0-421 | ||||||||||||
| 117 | ) | - | ||||||||||||
| 118 | return never executed:  return ((void *)0) ;never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 119 | ((void *)0) never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 120 | ; never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 121 | if (!EC_GROUP_copy(dest->group, src->group) 
 | 0-421 | ||||||||||||
| 122 | return never executed:  return ((void *)0) ;never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 123 | ((void *)0) never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 124 | ; never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 125 | - | |||||||||||||
| 126 | - | |||||||||||||
| 127 | if (src->pub_key != 
 | 0-421 | ||||||||||||
| 128 | ((void *)0) 
 | 0-421 | ||||||||||||
| 129 | ) { | - | ||||||||||||
| 130 | EC_POINT_free(dest->pub_key); | - | ||||||||||||
| 131 | dest->pub_key = EC_POINT_new(src->group); | - | ||||||||||||
| 132 | if (dest->pub_key == 
 | 0-421 | ||||||||||||
| 133 | ((void *)0) 
 | 0-421 | ||||||||||||
| 134 | ) | - | ||||||||||||
| 135 | return never executed:  return ((void *)0) ;never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 136 | ((void *)0) never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 137 | ; never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 138 | if (!EC_POINT_copy(dest->pub_key, src->pub_key) 
 | 0-421 | ||||||||||||
| 139 | return never executed:  return ((void *)0) ;never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 140 | ((void *)0) never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 141 | ; never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 142 | } executed 421 times by 1 test:  end of blockExecuted by: 
 | 421 | ||||||||||||
| 143 | - | |||||||||||||
| 144 | if (src->priv_key != 
 | 0-421 | ||||||||||||
| 145 | ((void *)0) 
 | 0-421 | ||||||||||||
| 146 | ) { | - | ||||||||||||
| 147 | if (dest->priv_key == 
 | 0-421 | ||||||||||||
| 148 | ((void *)0) 
 | 0-421 | ||||||||||||
| 149 | ) { | - | ||||||||||||
| 150 | dest->priv_key = BN_new(); | - | ||||||||||||
| 151 | if (dest->priv_key == 
 | 0-421 | ||||||||||||
| 152 | ((void *)0) 
 | 0-421 | ||||||||||||
| 153 | ) | - | ||||||||||||
| 154 | return never executed:  return ((void *)0) ;never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 155 | ((void *)0) never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 156 | ; never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 157 | } executed 421 times by 1 test:  end of blockExecuted by: 
 | 421 | ||||||||||||
| 158 | if (!BN_copy(dest->priv_key, src->priv_key) 
 | 0-421 | ||||||||||||
| 159 | return never executed:  return ((void *)0) ;never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 160 | ((void *)0) never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 161 | ; never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 162 | if (src->group->meth->keycopy 
 | 0-421 | ||||||||||||
| 163 | && src->group->meth->keycopy(dest, src) == 0 
 | 0 | ||||||||||||
| 164 | return never executed:  return ((void *)0) ;never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 165 | ((void *)0) never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 166 | ; never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 167 | } executed 421 times by 1 test:  end of blockExecuted by: 
 | 421 | ||||||||||||
| 168 | } executed 421 times by 1 test:  end of blockExecuted by: 
 | 421 | ||||||||||||
| 169 | - | |||||||||||||
| 170 | - | |||||||||||||
| 171 | - | |||||||||||||
| 172 | dest->enc_flag = src->enc_flag; | - | ||||||||||||
| 173 | dest->conv_form = src->conv_form; | - | ||||||||||||
| 174 | dest->version = src->version; | - | ||||||||||||
| 175 | dest->flags = src->flags; | - | ||||||||||||
| 176 | if (!CRYPTO_dup_ex_data(8, 
 | 0-421 | ||||||||||||
| 177 | &dest->ex_data, &src->ex_data) 
 | 0-421 | ||||||||||||
| 178 | return never executed:  return ((void *)0) ;never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 179 | ((void *)0) never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 180 | ; never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 181 | - | |||||||||||||
| 182 | if (src->meth != dest->meth 
 | 0-421 | ||||||||||||
| 183 | - | |||||||||||||
| 184 | if (src->engine != 
 | 0 | ||||||||||||
| 185 | ((void *)0) 
 | 0 | ||||||||||||
| 186 | && ENGINE_init(src->engine) == 0 
 | 0 | ||||||||||||
| 187 | return never executed:  return ((void *)0) ;never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 188 | ((void *)0) never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 189 | ; never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 190 | dest->engine = src->engine; | - | ||||||||||||
| 191 | - | |||||||||||||
| 192 | dest->meth = src->meth; | - | ||||||||||||
| 193 | } never executed:  end of block | 0 | ||||||||||||
| 194 | - | |||||||||||||
| 195 | if (src->meth->copy != 
 | 0-421 | ||||||||||||
| 196 | ((void *)0) 
 | 0-421 | ||||||||||||
| 197 | && src->meth->copy(dest, src) == 0 
 | 0 | ||||||||||||
| 198 | return never executed:  return ((void *)0) ;never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 199 | ((void *)0) never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 200 | ; never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 201 | - | |||||||||||||
| 202 | return executed 421 times by 1 test: dest; return dest;Executed by: 
 executed 421 times by 1 test:  return dest;Executed by: 
 | 421 | ||||||||||||
| 203 | } | - | ||||||||||||
| 204 | - | |||||||||||||
| 205 | EC_KEY *EC_KEY_dup(const EC_KEY *ec_key) | - | ||||||||||||
| 206 | { | - | ||||||||||||
| 207 | EC_KEY *ret = EC_KEY_new_method(ec_key->engine); | - | ||||||||||||
| 208 | - | |||||||||||||
| 209 | if (ret == 
 | 0-421 | ||||||||||||
| 210 | ((void *)0) 
 | 0-421 | ||||||||||||
| 211 | ) | - | ||||||||||||
| 212 | return never executed:  return ((void *)0) ;never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 213 | ((void *)0) never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 214 | ; never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 215 | - | |||||||||||||
| 216 | if (EC_KEY_copy(ret, ec_key) == 
 | 0-421 | ||||||||||||
| 217 | ((void *)0) 
 | 0-421 | ||||||||||||
| 218 | ) { | - | ||||||||||||
| 219 | EC_KEY_free(ret); | - | ||||||||||||
| 220 | return never executed:  return ((void *)0) ;never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 221 | ((void *)0) never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 222 | ; never executed:  return ((void *)0) ; | 0 | ||||||||||||
| 223 | } | - | ||||||||||||
| 224 | return executed 421 times by 1 test: ret; return ret;Executed by: 
 executed 421 times by 1 test:  return ret;Executed by: 
 | 421 | ||||||||||||
| 225 | } | - | ||||||||||||
| 226 | - | |||||||||||||
| 227 | int EC_KEY_up_ref(EC_KEY *r) | - | ||||||||||||
| 228 | { | - | ||||||||||||
| 229 | int i; | - | ||||||||||||
| 230 | - | |||||||||||||
| 231 | if (CRYPTO_UP_REF(&r->references, &i, r->lock) <= 0 
 | 0-1859 | ||||||||||||
| 232 | return never executed: 0; return 0;never executed:  return 0; | 0 | ||||||||||||
| 233 | - | |||||||||||||
| 234 | ; | - | ||||||||||||
| 235 | ; | - | ||||||||||||
| 236 | return executed 1859 times by 1 test: (( return ((i > 1) ? 1 : 0);Executed by: 
 
 
 executed 1859 times by 1 test:  return ((i > 1) ? 1 : 0);Executed by: 
 | 0-1859 | ||||||||||||
| 237 | } | - | ||||||||||||
| 238 | - | |||||||||||||
| 239 | ENGINE *EC_KEY_get0_engine(const EC_KEY *eckey) | - | ||||||||||||
| 240 | { | - | ||||||||||||
| 241 | return never executed: eckey->engine; return eckey->engine;never executed:  return eckey->engine; | 0 | ||||||||||||
| 242 | } | - | ||||||||||||
| 243 | - | |||||||||||||
| 244 | int EC_KEY_generate_key(EC_KEY *eckey) | - | ||||||||||||
| 245 | { | - | ||||||||||||
| 246 | if (eckey == 
 | 0-1003 | ||||||||||||
| 247 | ((void *)0) 
 | 0-1003 | ||||||||||||
| 248 | || eckey->group == 
 | 0-1003 | ||||||||||||
| 249 | ((void *)0) 
 | 0-1003 | ||||||||||||
| 250 | ) { | - | ||||||||||||
| 251 | ERR_put_error(16,(179),((3|64)),__FILE__,184); | - | ||||||||||||
| 252 | return never executed: 0; return 0;never executed:  return 0; | 0 | ||||||||||||
| 253 | } | - | ||||||||||||
| 254 | if (eckey->meth->keygen != 
 | 0-1003 | ||||||||||||
| 255 | ((void *)0) 
 | 0-1003 | ||||||||||||
| 256 | ) | - | ||||||||||||
| 257 | return executed 1003 times by 1 test: eckey->meth->keygen(eckey); return eckey->meth->keygen(eckey);Executed by: 
 executed 1003 times by 1 test:  return eckey->meth->keygen(eckey);Executed by: 
 | 1003 | ||||||||||||
| 258 | ERR_put_error(16,(179),(152),__FILE__,189); | - | ||||||||||||
| 259 | return never executed: 0; return 0;never executed:  return 0; | 0 | ||||||||||||
| 260 | } | - | ||||||||||||
| 261 | - | |||||||||||||
| 262 | int ossl_ec_key_gen(EC_KEY *eckey) | - | ||||||||||||
| 263 | { | - | ||||||||||||
| 264 | return executed 1003 times by 1 test: eckey->group->meth->keygen(eckey); return eckey->group->meth->keygen(eckey);Executed by: 
 executed 1003 times by 1 test:  return eckey->group->meth->keygen(eckey);Executed by: 
 | 1003 | ||||||||||||
| 265 | } | - | ||||||||||||
| 266 | - | |||||||||||||
| 267 | int ec_key_simple_generate_key(EC_KEY *eckey) | - | ||||||||||||
| 268 | { | - | ||||||||||||
| 269 | int ok = 0; | - | ||||||||||||
| 270 | BN_CTX *ctx = | - | ||||||||||||
| 271 | ((void *)0) | - | ||||||||||||
| 272 | ; | - | ||||||||||||
| 273 | BIGNUM *priv_key = | - | ||||||||||||
| 274 | ((void *)0) | - | ||||||||||||
| 275 | ; | - | ||||||||||||
| 276 | const BIGNUM *order = | - | ||||||||||||
| 277 | ((void *)0) | - | ||||||||||||
| 278 | ; | - | ||||||||||||
| 279 | EC_POINT *pub_key = | - | ||||||||||||
| 280 | ((void *)0) | - | ||||||||||||
| 281 | ; | - | ||||||||||||
| 282 | - | |||||||||||||
| 283 | if (( 
 
 | 0-1003 | ||||||||||||
| 284 | ((void *)0) 
 | 0-1003 | ||||||||||||
| 285 | ) | - | ||||||||||||
| 286 | goto never executed: err; goto err;never executed:  goto err; | 0 | ||||||||||||
| 287 | - | |||||||||||||
| 288 | if (eckey->priv_key == 
 | 0-1003 | ||||||||||||
| 289 | ((void *)0) 
 | 0-1003 | ||||||||||||
| 290 | ) { | - | ||||||||||||
| 291 | priv_key = BN_new(); | - | ||||||||||||
| 292 | if (priv_key == 
 | 0-1003 | ||||||||||||
| 293 | ((void *)0) 
 | 0-1003 | ||||||||||||
| 294 | ) | - | ||||||||||||
| 295 | goto never executed: err; goto err;never executed:  goto err; | 0 | ||||||||||||
| 296 | } executed 1003 times by 1 test: else end of blockExecuted by: 
 | 1003 | ||||||||||||
| 297 | priv_key = eckey->priv_key; never executed:  priv_key = eckey->priv_key; | 0 | ||||||||||||
| 298 | - | |||||||||||||
| 299 | order = EC_GROUP_get0_order(eckey->group); | - | ||||||||||||
| 300 | if (order == 
 | 0-1003 | ||||||||||||
| 301 | ((void *)0) 
 | 0-1003 | ||||||||||||
| 302 | ) | - | ||||||||||||
| 303 | goto never executed: err; goto err;never executed:  goto err; | 0 | ||||||||||||
| 304 | - | |||||||||||||
| 305 | do | - | ||||||||||||
| 306 | if (!BN_priv_rand_range(priv_key, order) 
 | 0-1003 | ||||||||||||
| 307 | goto never executed: err; goto err;never executed:  goto err; | 0 | ||||||||||||
| 308 | while (BN_is_zero(priv_key) 
 | 0-1003 | ||||||||||||
| 309 | - | |||||||||||||
| 310 | if (eckey->pub_key == 
 | 0-1003 | ||||||||||||
| 311 | ((void *)0) 
 | 0-1003 | ||||||||||||
| 312 | ) { | - | ||||||||||||
| 313 | pub_key = EC_POINT_new(eckey->group); | - | ||||||||||||
| 314 | if (pub_key == 
 | 0-1003 | ||||||||||||
| 315 | ((void *)0) 
 | 0-1003 | ||||||||||||
| 316 | ) | - | ||||||||||||
| 317 | goto never executed: err; goto err;never executed:  goto err; | 0 | ||||||||||||
| 318 | } executed 1003 times by 1 test: else end of blockExecuted by: 
 | 1003 | ||||||||||||
| 319 | pub_key = eckey->pub_key; never executed:  pub_key = eckey->pub_key; | 0 | ||||||||||||
| 320 | - | |||||||||||||
| 321 | if (!EC_POINT_mul(eckey->group, pub_key, priv_key, 
 | 0-1003 | ||||||||||||
| 322 | ((void *)0) 
 | 0-1003 | ||||||||||||
| 323 | , 
 | 0-1003 | ||||||||||||
| 324 | ((void *)0) 
 | 0-1003 | ||||||||||||
| 325 | , ctx) 
 | 0-1003 | ||||||||||||
| 326 | goto never executed: err; goto err;never executed:  goto err; | 0 | ||||||||||||
| 327 | - | |||||||||||||
| 328 | eckey->priv_key = priv_key; | - | ||||||||||||
| 329 | eckey->pub_key = pub_key; | - | ||||||||||||
| 330 | - | |||||||||||||
| 331 | ok = 1; | - | ||||||||||||
| 332 | - | |||||||||||||
| 333 | err: code before this statement executed 1003 times by 1 test:  err:Executed by: 
 | 1003 | ||||||||||||
| 334 | if (eckey->pub_key == 
 | 0-1003 | ||||||||||||
| 335 | ((void *)0) 
 | 0-1003 | ||||||||||||
| 336 | ) | - | ||||||||||||
| 337 | EC_POINT_free(pub_key); never executed:  EC_POINT_free(pub_key); | 0 | ||||||||||||
| 338 | if (eckey->priv_key != priv_key 
 | 0-1003 | ||||||||||||
| 339 | BN_free(priv_key); never executed:  BN_free(priv_key); | 0 | ||||||||||||
| 340 | BN_CTX_free(ctx); | - | ||||||||||||
| 341 | return executed 1003 times by 1 test: ok; return ok;Executed by: 
 executed 1003 times by 1 test:  return ok;Executed by: 
 | 1003 | ||||||||||||
| 342 | } | - | ||||||||||||
| 343 | - | |||||||||||||
| 344 | int ec_key_simple_generate_public_key(EC_KEY *eckey) | - | ||||||||||||
| 345 | { | - | ||||||||||||
| 346 | return executed 399 times by 1 test: EC_POINT_mul(eckey->group, eckey->pub_key, eckey->priv_key, return EC_POINT_mul(eckey->group, eckey->pub_key, eckey->priv_key, ((void *)0) , ((void *)0) , ((void *)0) );Executed by: 
 executed 399 times by 1 test:  return EC_POINT_mul(eckey->group, eckey->pub_key, eckey->priv_key, ((void *)0) , ((void *)0) , ((void *)0) );Executed by: 
 | 399 | ||||||||||||
| 347 | ((void *)0) executed 399 times by 1 test:  return EC_POINT_mul(eckey->group, eckey->pub_key, eckey->priv_key, ((void *)0) , ((void *)0) , ((void *)0) );Executed by: 
 | 399 | ||||||||||||
| 348 | , executed 399 times by 1 test:  return EC_POINT_mul(eckey->group, eckey->pub_key, eckey->priv_key, ((void *)0) , ((void *)0) , ((void *)0) );Executed by: 
 | 399 | ||||||||||||
| 349 | executed 399 times by 1 test:  return EC_POINT_mul(eckey->group, eckey->pub_key, eckey->priv_key, ((void *)0) , ((void *)0) , ((void *)0) );Executed by: 
 | 399 | ||||||||||||
| 350 | ((void *)0) executed 399 times by 1 test:  return EC_POINT_mul(eckey->group, eckey->pub_key, eckey->priv_key, ((void *)0) , ((void *)0) , ((void *)0) );Executed by: 
 | 399 | ||||||||||||
| 351 | , executed 399 times by 1 test:  return EC_POINT_mul(eckey->group, eckey->pub_key, eckey->priv_key, ((void *)0) , ((void *)0) , ((void *)0) );Executed by: 
 | 399 | ||||||||||||
| 352 | ((void *)0) executed 399 times by 1 test:  return EC_POINT_mul(eckey->group, eckey->pub_key, eckey->priv_key, ((void *)0) , ((void *)0) , ((void *)0) );Executed by: 
 | 399 | ||||||||||||
| 353 | ); executed 399 times by 1 test:  return EC_POINT_mul(eckey->group, eckey->pub_key, eckey->priv_key, ((void *)0) , ((void *)0) , ((void *)0) );Executed by: 
 | 399 | ||||||||||||
| 354 | } | - | ||||||||||||
| 355 | - | |||||||||||||
| 356 | int EC_KEY_check_key(const EC_KEY *eckey) | - | ||||||||||||
| 357 | { | - | ||||||||||||
| 358 | if (eckey == 
 | 0-72 | ||||||||||||
| 359 | ((void *)0) 
 | 0-72 | ||||||||||||
| 360 | || eckey->group == 
 | 0-72 | ||||||||||||
| 361 | ((void *)0) 
 | 0-72 | ||||||||||||
| 362 | || eckey->pub_key == 
 | 1-71 | ||||||||||||
| 363 | ((void *)0) 
 | 1-71 | ||||||||||||
| 364 | ) { | - | ||||||||||||
| 365 | ERR_put_error(16,(177),((3|64)),__FILE__,258); | - | ||||||||||||
| 366 | return executed 1 time by 1 test: 0; return 0;Executed by: 
 executed 1 time by 1 test:  return 0;Executed by: 
 | 1 | ||||||||||||
| 367 | } | - | ||||||||||||
| 368 | - | |||||||||||||
| 369 | if (eckey->group->meth->keycheck == 
 | 0-71 | ||||||||||||
| 370 | ((void *)0) 
 | 0-71 | ||||||||||||
| 371 | ) { | - | ||||||||||||
| 372 | ERR_put_error(16,(177),((2|64)),__FILE__,263); | - | ||||||||||||
| 373 | return never executed: 0; return 0;never executed:  return 0; | 0 | ||||||||||||
| 374 | } | - | ||||||||||||
| 375 | - | |||||||||||||
| 376 | return executed 71 times by 1 test: eckey->group->meth->keycheck(eckey); return eckey->group->meth->keycheck(eckey);Executed by: 
 executed 71 times by 1 test:  return eckey->group->meth->keycheck(eckey);Executed by: 
 | 71 | ||||||||||||
| 377 | } | - | ||||||||||||
| 378 | - | |||||||||||||
| 379 | int ec_key_simple_check_key(const EC_KEY *eckey) | - | ||||||||||||
| 380 | { | - | ||||||||||||
| 381 | int ok = 0; | - | ||||||||||||
| 382 | BN_CTX *ctx = | - | ||||||||||||
| 383 | ((void *)0) | - | ||||||||||||
| 384 | ; | - | ||||||||||||
| 385 | const BIGNUM *order = | - | ||||||||||||
| 386 | ((void *)0) | - | ||||||||||||
| 387 | ; | - | ||||||||||||
| 388 | EC_POINT *point = | - | ||||||||||||
| 389 | ((void *)0) | - | ||||||||||||
| 390 | ; | - | ||||||||||||
| 391 | - | |||||||||||||
| 392 | if (eckey == 
 | 0-71 | ||||||||||||
| 393 | ((void *)0) 
 | 0-71 | ||||||||||||
| 394 | || eckey->group == 
 | 0-71 | ||||||||||||
| 395 | ((void *)0) 
 | 0-71 | ||||||||||||
| 396 | || eckey->pub_key == 
 | 0-71 | ||||||||||||
| 397 | ((void *)0) 
 | 0-71 | ||||||||||||
| 398 | ) { | - | ||||||||||||
| 399 | ERR_put_error(16,(258),((3|64)),__FILE__,278); | - | ||||||||||||
| 400 | return never executed: 0; return 0;never executed:  return 0; | 0 | ||||||||||||
| 401 | } | - | ||||||||||||
| 402 | - | |||||||||||||
| 403 | if (EC_POINT_is_at_infinity(eckey->group, eckey->pub_key) 
 | 0-71 | ||||||||||||
| 404 | ERR_put_error(16,(258),(106),__FILE__,283); | - | ||||||||||||
| 405 | goto never executed: err; goto err;never executed:  goto err; | 0 | ||||||||||||
| 406 | } | - | ||||||||||||
| 407 | - | |||||||||||||
| 408 | if (( 
 
 | 0-71 | ||||||||||||
| 409 | ((void *)0) 
 | 0-71 | ||||||||||||
| 410 | ) | - | ||||||||||||
| 411 | goto never executed: err; goto err;never executed:  goto err; | 0 | ||||||||||||
| 412 | if (( 
 
 | 0-71 | ||||||||||||
| 413 | ((void *)0) 
 | 0-71 | ||||||||||||
| 414 | ) | - | ||||||||||||
| 415 | goto never executed: err; goto err;never executed:  goto err; | 0 | ||||||||||||
| 416 | - | |||||||||||||
| 417 | - | |||||||||||||
| 418 | if (EC_POINT_is_on_curve(eckey->group, eckey->pub_key, ctx) <= 0 
 | 0-71 | ||||||||||||
| 419 | ERR_put_error(16,(258),(107),__FILE__,294); | - | ||||||||||||
| 420 | goto never executed: err; goto err;never executed:  goto err; | 0 | ||||||||||||
| 421 | } | - | ||||||||||||
| 422 | - | |||||||||||||
| 423 | order = eckey->group->order; | - | ||||||||||||
| 424 | if (BN_is_zero(order) 
 | 0-71 | ||||||||||||
| 425 | ERR_put_error(16,(258),(122),__FILE__,300); | - | ||||||||||||
| 426 | goto never executed: err; goto err;never executed:  goto err; | 0 | ||||||||||||
| 427 | } | - | ||||||||||||
| 428 | if (!EC_POINT_mul(eckey->group, point, 
 | 0-71 | ||||||||||||
| 429 | ((void *)0) 
 | 0-71 | ||||||||||||
| 430 | , eckey->pub_key, order, ctx) 
 | 0-71 | ||||||||||||
| 431 | ERR_put_error(16,(258),(16),__FILE__,304); | - | ||||||||||||
| 432 | goto never executed: err; goto err;never executed:  goto err; | 0 | ||||||||||||
| 433 | } | - | ||||||||||||
| 434 | if (!EC_POINT_is_at_infinity(eckey->group, point) 
 | 0-71 | ||||||||||||
| 435 | ERR_put_error(16,(258),(130),__FILE__,308); | - | ||||||||||||
| 436 | goto never executed: err; goto err;never executed:  goto err; | 0 | ||||||||||||
| 437 | } | - | ||||||||||||
| 438 | - | |||||||||||||
| 439 | - | |||||||||||||
| 440 | - | |||||||||||||
| 441 | - | |||||||||||||
| 442 | if (eckey->priv_key != 
 | 1-70 | ||||||||||||
| 443 | ((void *)0) 
 | 1-70 | ||||||||||||
| 444 | ) { | - | ||||||||||||
| 445 | if (BN_cmp(eckey->priv_key, order) >= 0 
 | 0-70 | ||||||||||||
| 446 | ERR_put_error(16,(258),(130),__FILE__,317); | - | ||||||||||||
| 447 | goto never executed: err; goto err;never executed:  goto err; | 0 | ||||||||||||
| 448 | } | - | ||||||||||||
| 449 | if (!EC_POINT_mul(eckey->group, point, eckey->priv_key, 
 | 0-70 | ||||||||||||
| 450 | 
 | 0-70 | ||||||||||||
| 451 | ((void *)0) 
 | 0-70 | ||||||||||||
| 452 | , 
 | 0-70 | ||||||||||||
| 453 | ((void *)0) 
 | 0-70 | ||||||||||||
| 454 | , ctx) 
 | 0-70 | ||||||||||||
| 455 | ERR_put_error(16,(258),(16),__FILE__,322); | - | ||||||||||||
| 456 | goto never executed: err; goto err;never executed:  goto err; | 0 | ||||||||||||
| 457 | } | - | ||||||||||||
| 458 | if (EC_POINT_cmp(eckey->group, point, eckey->pub_key, ctx) != 0 
 | 0-70 | ||||||||||||
| 459 | ERR_put_error(16,(258),(123),__FILE__,326); | - | ||||||||||||
| 460 | goto never executed: err; goto err;never executed:  goto err; | 0 | ||||||||||||
| 461 | } | - | ||||||||||||
| 462 | } executed 70 times by 1 test:  end of blockExecuted by: 
 | 70 | ||||||||||||
| 463 | ok = 1; | - | ||||||||||||
| 464 | err: code before this statement executed 71 times by 1 test:  err:Executed by: 
 | 71 | ||||||||||||
| 465 | BN_CTX_free(ctx); | - | ||||||||||||
| 466 | EC_POINT_free(point); | - | ||||||||||||
| 467 | return executed 71 times by 1 test: ok; return ok;Executed by: 
 executed 71 times by 1 test:  return ok;Executed by: 
 | 71 | ||||||||||||
| 468 | } | - | ||||||||||||
| 469 | - | |||||||||||||
| 470 | int EC_KEY_set_public_key_affine_coordinates(EC_KEY *key, BIGNUM *x, | - | ||||||||||||
| 471 | BIGNUM *y) | - | ||||||||||||
| 472 | { | - | ||||||||||||
| 473 | BN_CTX *ctx = | - | ||||||||||||
| 474 | ((void *)0) | - | ||||||||||||
| 475 | ; | - | ||||||||||||
| 476 | BIGNUM *tx, *ty; | - | ||||||||||||
| 477 | EC_POINT *point = | - | ||||||||||||
| 478 | ((void *)0) | - | ||||||||||||
| 479 | ; | - | ||||||||||||
| 480 | int ok = 0; | - | ||||||||||||
| 481 | - | |||||||||||||
| 482 | if (key == 
 | 0 | ||||||||||||
| 483 | ((void *)0) 
 | 0 | ||||||||||||
| 484 | || key->group == 
 | 0 | ||||||||||||
| 485 | ((void *)0) 
 | 0 | ||||||||||||
| 486 | || x == 
 | 0 | ||||||||||||
| 487 | ((void *)0) 
 | 0 | ||||||||||||
| 488 | || y == 
 | 0 | ||||||||||||
| 489 | ((void *)0) 
 | 0 | ||||||||||||
| 490 | ) { | - | ||||||||||||
| 491 | ERR_put_error(16,(229),((3|64)),__FILE__,347) | - | ||||||||||||
| 492 | ; | - | ||||||||||||
| 493 | return never executed: 0; return 0;never executed:  return 0; | 0 | ||||||||||||
| 494 | } | - | ||||||||||||
| 495 | ctx = BN_CTX_new(); | - | ||||||||||||
| 496 | if (ctx == 
 | 0 | ||||||||||||
| 497 | ((void *)0) 
 | 0 | ||||||||||||
| 498 | ) | - | ||||||||||||
| 499 | return never executed: 0; return 0;never executed:  return 0; | 0 | ||||||||||||
| 500 | - | |||||||||||||
| 501 | BN_CTX_start(ctx); | - | ||||||||||||
| 502 | point = EC_POINT_new(key->group); | - | ||||||||||||
| 503 | - | |||||||||||||
| 504 | if (point == 
 | 0 | ||||||||||||
| 505 | ((void *)0) 
 | 0 | ||||||||||||
| 506 | ) | - | ||||||||||||
| 507 | goto never executed: err; goto err;never executed:  goto err; | 0 | ||||||||||||
| 508 | - | |||||||||||||
| 509 | tx = BN_CTX_get(ctx); | - | ||||||||||||
| 510 | ty = BN_CTX_get(ctx); | - | ||||||||||||
| 511 | if (ty == 
 | 0 | ||||||||||||
| 512 | ((void *)0) 
 | 0 | ||||||||||||
| 513 | ) | - | ||||||||||||
| 514 | goto never executed: err; goto err;never executed:  goto err; | 0 | ||||||||||||
| 515 | - | |||||||||||||
| 516 | if (!EC_POINT_set_affine_coordinates(key->group, point, x, y, ctx) 
 | 0 | ||||||||||||
| 517 | goto never executed: err; goto err;never executed:  goto err; | 0 | ||||||||||||
| 518 | if (!EC_POINT_get_affine_coordinates(key->group, point, tx, ty, ctx) 
 | 0 | ||||||||||||
| 519 | goto never executed: err; goto err;never executed:  goto err; | 0 | ||||||||||||
| 520 | - | |||||||||||||
| 521 | - | |||||||||||||
| 522 | - | |||||||||||||
| 523 | - | |||||||||||||
| 524 | - | |||||||||||||
| 525 | if (BN_cmp(x, tx) 
 
 | 0 | ||||||||||||
| 526 | || ( 
 
 | 0 | ||||||||||||
| 527 | || ( 
 
 | 0 | ||||||||||||
| 528 | ERR_put_error(16,(229),(146),__FILE__,378) | - | ||||||||||||
| 529 | ; | - | ||||||||||||
| 530 | goto never executed: err; goto err;never executed:  goto err; | 0 | ||||||||||||
| 531 | } | - | ||||||||||||
| 532 | - | |||||||||||||
| 533 | if (!EC_KEY_set_public_key(key, point) 
 | 0 | ||||||||||||
| 534 | goto never executed: err; goto err;never executed:  goto err; | 0 | ||||||||||||
| 535 | - | |||||||||||||
| 536 | if (EC_KEY_check_key(key) == 0 
 | 0 | ||||||||||||
| 537 | goto never executed: err; goto err;never executed:  goto err; | 0 | ||||||||||||
| 538 | - | |||||||||||||
| 539 | ok = 1; | - | ||||||||||||
| 540 | - | |||||||||||||
| 541 | err: code before this statement never executed:  err: | 0 | ||||||||||||
| 542 | BN_CTX_end(ctx); | - | ||||||||||||
| 543 | BN_CTX_free(ctx); | - | ||||||||||||
| 544 | EC_POINT_free(point); | - | ||||||||||||
| 545 | return never executed: ok; return ok;never executed:  return ok; | 0 | ||||||||||||
| 546 | - | |||||||||||||
| 547 | } | - | ||||||||||||
| 548 | - | |||||||||||||
| 549 | const EC_GROUP *EC_KEY_get0_group(const EC_KEY *key) | - | ||||||||||||
| 550 | { | - | ||||||||||||
| 551 | return executed 44270 times by 2 tests: key->group; return key->group;Executed by: 
 executed 44270 times by 2 tests:  return key->group;Executed by: 
 | 44270 | ||||||||||||
| 552 | } | - | ||||||||||||
| 553 | - | |||||||||||||
| 554 | int EC_KEY_set_group(EC_KEY *key, const EC_GROUP *group) | - | ||||||||||||
| 555 | { | - | ||||||||||||
| 556 | if (key->meth->set_group != 
 | 0-33141 | ||||||||||||
| 557 | ((void *)0) 
 | 0-33141 | ||||||||||||
| 558 | && key->meth->set_group(key, group) == 0 
 | 0 | ||||||||||||
| 559 | return never executed: 0; return 0;never executed:  return 0; | 0 | ||||||||||||
| 560 | EC_GROUP_free(key->group); | - | ||||||||||||
| 561 | key->group = EC_GROUP_dup(group); | - | ||||||||||||
| 562 | return executed 33141 times by 2 tests: ( return (key->group == ((void *)0) ) ? 0 : 1;Executed by: 
 
 
 executed 33141 times by 2 tests:  return (key->group == ((void *)0) ) ? 0 : 1;Executed by: 
 | 0-33141 | ||||||||||||
| 563 | ((void *)0) 
 executed 33141 times by 2 tests:  return (key->group == ((void *)0) ) ? 0 : 1;Executed by: 
 | 0-33141 | ||||||||||||
| 564 | ) 
 executed 33141 times by 2 tests:  return (key->group == ((void *)0) ) ? 0 : 1;Executed by: 
 | 0-33141 | ||||||||||||
| 565 | } | - | ||||||||||||
| 566 | - | |||||||||||||
| 567 | const BIGNUM *EC_KEY_get0_private_key(const EC_KEY *key) | - | ||||||||||||
| 568 | { | - | ||||||||||||
| 569 | return executed 2404 times by 2 tests: key->priv_key; return key->priv_key;Executed by: 
 executed 2404 times by 2 tests:  return key->priv_key;Executed by: 
 | 2404 | ||||||||||||
| 570 | } | - | ||||||||||||
| 571 | - | |||||||||||||
| 572 | int EC_KEY_set_private_key(EC_KEY *key, const BIGNUM *priv_key) | - | ||||||||||||
| 573 | { | - | ||||||||||||
| 574 | if (key->group == 
 | 0-3 | ||||||||||||
| 575 | ((void *)0) 
 | 0-3 | ||||||||||||
| 576 | || key->group->meth == 
 | 0-3 | ||||||||||||
| 577 | ((void *)0) 
 | 0-3 | ||||||||||||
| 578 | ) | - | ||||||||||||
| 579 | return never executed: 0; return 0;never executed:  return 0; | 0 | ||||||||||||
| 580 | if (key->group->meth->set_private != 
 | 0-3 | ||||||||||||
| 581 | ((void *)0) 
 | 0-3 | ||||||||||||
| 582 | - | |||||||||||||
| 583 | && key->group->meth->set_private(key, priv_key) == 0 
 | 0 | ||||||||||||
| 584 | return never executed: 0; return 0;never executed:  return 0; | 0 | ||||||||||||
| 585 | if (key->meth->set_private != 
 | 0-3 | ||||||||||||
| 586 | ((void *)0) 
 | 0-3 | ||||||||||||
| 587 | - | |||||||||||||
| 588 | && key->meth->set_private(key, priv_key) == 0 
 | 0 | ||||||||||||
| 589 | return never executed: 0; return 0;never executed:  return 0; | 0 | ||||||||||||
| 590 | BN_clear_free(key->priv_key); | - | ||||||||||||
| 591 | key->priv_key = BN_dup(priv_key); | - | ||||||||||||
| 592 | return executed 3 times by 1 test: ( return (key->priv_key == ((void *)0) ) ? 0 : 1;Executed by: 
 
 
 executed 3 times by 1 test:  return (key->priv_key == ((void *)0) ) ? 0 : 1;Executed by: 
 | 0-3 | ||||||||||||
| 593 | ((void *)0) 
 executed 3 times by 1 test:  return (key->priv_key == ((void *)0) ) ? 0 : 1;Executed by: 
 | 0-3 | ||||||||||||
| 594 | ) 
 executed 3 times by 1 test:  return (key->priv_key == ((void *)0) ) ? 0 : 1;Executed by: 
 | 0-3 | ||||||||||||
| 595 | } | - | ||||||||||||
| 596 | - | |||||||||||||
| 597 | const EC_POINT *EC_KEY_get0_public_key(const EC_KEY *key) | - | ||||||||||||
| 598 | { | - | ||||||||||||
| 599 | return executed 7589 times by 2 tests: key->pub_key; return key->pub_key;Executed by: 
 executed 7589 times by 2 tests:  return key->pub_key;Executed by: 
 | 7589 | ||||||||||||
| 600 | } | - | ||||||||||||
| 601 | - | |||||||||||||
| 602 | int EC_KEY_set_public_key(EC_KEY *key, const EC_POINT *pub_key) | - | ||||||||||||
| 603 | { | - | ||||||||||||
| 604 | if (key->meth->set_public != 
 | 0-3 | ||||||||||||
| 605 | ((void *)0) 
 | 0-3 | ||||||||||||
| 606 | - | |||||||||||||
| 607 | && key->meth->set_public(key, pub_key) == 0 
 | 0 | ||||||||||||
| 608 | return never executed: 0; return 0;never executed:  return 0; | 0 | ||||||||||||
| 609 | EC_POINT_free(key->pub_key); | - | ||||||||||||
| 610 | key->pub_key = EC_POINT_dup(pub_key, key->group); | - | ||||||||||||
| 611 | return executed 3 times by 1 test: ( return (key->pub_key == ((void *)0) ) ? 0 : 1;Executed by: 
 
 
 executed 3 times by 1 test:  return (key->pub_key == ((void *)0) ) ? 0 : 1;Executed by: 
 | 0-3 | ||||||||||||
| 612 | ((void *)0) 
 executed 3 times by 1 test:  return (key->pub_key == ((void *)0) ) ? 0 : 1;Executed by: 
 | 0-3 | ||||||||||||
| 613 | ) 
 executed 3 times by 1 test:  return (key->pub_key == ((void *)0) ) ? 0 : 1;Executed by: 
 | 0-3 | ||||||||||||
| 614 | } | - | ||||||||||||
| 615 | - | |||||||||||||
| 616 | unsigned int EC_KEY_get_enc_flags(const EC_KEY *key) | - | ||||||||||||
| 617 | { | - | ||||||||||||
| 618 | return executed 5 times by 1 test: key->enc_flag; return key->enc_flag;Executed by: 
 executed 5 times by 1 test:  return key->enc_flag;Executed by: 
 | 5 | ||||||||||||
| 619 | } | - | ||||||||||||
| 620 | - | |||||||||||||
| 621 | void EC_KEY_set_enc_flags(EC_KEY *key, unsigned int flags) | - | ||||||||||||
| 622 | { | - | ||||||||||||
| 623 | key->enc_flag = flags; | - | ||||||||||||
| 624 | } executed 5 times by 1 test:  end of blockExecuted by: 
 | 5 | ||||||||||||
| 625 | - | |||||||||||||
| 626 | point_conversion_form_t EC_KEY_get_conv_form(const EC_KEY *key) | - | ||||||||||||
| 627 | { | - | ||||||||||||
| 628 | return executed 1145 times by 1 test: key->conv_form; return key->conv_form;Executed by: 
 executed 1145 times by 1 test:  return key->conv_form;Executed by: 
 | 1145 | ||||||||||||
| 629 | } | - | ||||||||||||
| 630 | - | |||||||||||||
| 631 | void EC_KEY_set_conv_form(EC_KEY *key, point_conversion_form_t cform) | - | ||||||||||||
| 632 | { | - | ||||||||||||
| 633 | key->conv_form = cform; | - | ||||||||||||
| 634 | if (key->group != 
 | 0 | ||||||||||||
| 635 | ((void *)0) 
 | 0 | ||||||||||||
| 636 | ) | - | ||||||||||||
| 637 | EC_GROUP_set_point_conversion_form(key->group, cform); never executed:  EC_GROUP_set_point_conversion_form(key->group, cform); | 0 | ||||||||||||
| 638 | } never executed:  end of block | 0 | ||||||||||||
| 639 | - | |||||||||||||
| 640 | void EC_KEY_set_asn1_flag(EC_KEY *key, int flag) | - | ||||||||||||
| 641 | { | - | ||||||||||||
| 642 | if (key->group != 
 | 0 | ||||||||||||
| 643 | ((void *)0) 
 | 0 | ||||||||||||
| 644 | ) | - | ||||||||||||
| 645 | EC_GROUP_set_asn1_flag(key->group, flag); never executed:  EC_GROUP_set_asn1_flag(key->group, flag); | 0 | ||||||||||||
| 646 | } never executed:  end of block | 0 | ||||||||||||
| 647 | - | |||||||||||||
| 648 | int EC_KEY_precompute_mult(EC_KEY *key, BN_CTX *ctx) | - | ||||||||||||
| 649 | { | - | ||||||||||||
| 650 | if (key->group == 
 | 0 | ||||||||||||
| 651 | ((void *)0) 
 | 0 | ||||||||||||
| 652 | ) | - | ||||||||||||
| 653 | return never executed: 0; return 0;never executed:  return 0; | 0 | ||||||||||||
| 654 | return never executed: EC_GROUP_precompute_mult(key->group, ctx); return EC_GROUP_precompute_mult(key->group, ctx);never executed:  return EC_GROUP_precompute_mult(key->group, ctx); | 0 | ||||||||||||
| 655 | } | - | ||||||||||||
| 656 | - | |||||||||||||
| 657 | int EC_KEY_get_flags(const EC_KEY *key) | - | ||||||||||||
| 658 | { | - | ||||||||||||
| 659 | return executed 1218 times by 1 test: key->flags; return key->flags;Executed by: 
 executed 1218 times by 1 test:  return key->flags;Executed by: 
 | 1218 | ||||||||||||
| 660 | } | - | ||||||||||||
| 661 | - | |||||||||||||
| 662 | void EC_KEY_set_flags(EC_KEY *key, int flags) | - | ||||||||||||
| 663 | { | - | ||||||||||||
| 664 | key->flags |= flags; | - | ||||||||||||
| 665 | } executed 421 times by 1 test:  end of blockExecuted by: 
 | 421 | ||||||||||||
| 666 | - | |||||||||||||
| 667 | void EC_KEY_clear_flags(EC_KEY *key, int flags) | - | ||||||||||||
| 668 | { | - | ||||||||||||
| 669 | key->flags &= ~flags; | - | ||||||||||||
| 670 | } never executed:  end of block | 0 | ||||||||||||
| 671 | - | |||||||||||||
| 672 | size_t EC_KEY_key2buf(const EC_KEY *key, point_conversion_form_t form, | - | ||||||||||||
| 673 | unsigned char **pbuf, BN_CTX *ctx) | - | ||||||||||||
| 674 | { | - | ||||||||||||
| 675 | if (key == 
 | 0-1195 | ||||||||||||
| 676 | ((void *)0) 
 | 0-1195 | ||||||||||||
| 677 | || key->pub_key == 
 | 0-1195 | ||||||||||||
| 678 | ((void *)0) 
 | 0-1195 | ||||||||||||
| 679 | || key->group == 
 | 0-1195 | ||||||||||||
| 680 | ((void *)0) 
 | 0-1195 | ||||||||||||
| 681 | ) | - | ||||||||||||
| 682 | return never executed: 0; return 0;never executed:  return 0; | 0 | ||||||||||||
| 683 | return executed 1195 times by 1 test: EC_POINT_point2buf(key->group, key->pub_key, form, pbuf, ctx); return EC_POINT_point2buf(key->group, key->pub_key, form, pbuf, ctx);Executed by: 
 executed 1195 times by 1 test:  return EC_POINT_point2buf(key->group, key->pub_key, form, pbuf, ctx);Executed by: 
 | 1195 | ||||||||||||
| 684 | } | - | ||||||||||||
| 685 | - | |||||||||||||
| 686 | int EC_KEY_oct2key(EC_KEY *key, const unsigned char *buf, size_t len, | - | ||||||||||||
| 687 | BN_CTX *ctx) | - | ||||||||||||
| 688 | { | - | ||||||||||||
| 689 | if (key == 
 | 0-33906 | ||||||||||||
| 690 | ((void *)0) 
 | 0-33906 | ||||||||||||
| 691 | || key->group == 
 | 0-33906 | ||||||||||||
| 692 | ((void *)0) 
 | 0-33906 | ||||||||||||
| 693 | ) | - | ||||||||||||
| 694 | return never executed: 0; return 0;never executed:  return 0; | 0 | ||||||||||||
| 695 | if (key->pub_key == 
 | 2644-31262 | ||||||||||||
| 696 | ((void *)0) 
 | 2644-31262 | ||||||||||||
| 697 | ) | - | ||||||||||||
| 698 | key->pub_key = EC_POINT_new(key->group); executed 31262 times by 1 test:  key->pub_key = EC_POINT_new(key->group);Executed by: 
 | 31262 | ||||||||||||
| 699 | if (key->pub_key == 
 | 0-33906 | ||||||||||||
| 700 | ((void *)0) 
 | 0-33906 | ||||||||||||
| 701 | ) | - | ||||||||||||
| 702 | return never executed: 0; return 0;never executed:  return 0; | 0 | ||||||||||||
| 703 | if (EC_POINT_oct2point(key->group, key->pub_key, buf, len, ctx) == 0 
 | 7088-26818 | ||||||||||||
| 704 | return executed 7088 times by 1 test: 0; return 0;Executed by: 
 executed 7088 times by 1 test:  return 0;Executed by: 
 | 7088 | ||||||||||||
| 705 | - | |||||||||||||
| 706 | - | |||||||||||||
| 707 | - | |||||||||||||
| 708 | - | |||||||||||||
| 709 | - | |||||||||||||
| 710 | - | |||||||||||||
| 711 | - | |||||||||||||
| 712 | if (( 
 
 | 0-26818 | ||||||||||||
| 713 | key->conv_form = (point_conversion_form_t)(buf[0] & ~0x01); executed 26818 times by 1 test:  key->conv_form = (point_conversion_form_t)(buf[0] & ~0x01);Executed by: 
 | 26818 | ||||||||||||
| 714 | return executed 26818 times by 1 test: 1; return 1;Executed by: 
 executed 26818 times by 1 test:  return 1;Executed by: 
 | 26818 | ||||||||||||
| 715 | } | - | ||||||||||||
| 716 | - | |||||||||||||
| 717 | size_t EC_KEY_priv2oct(const EC_KEY *eckey, | - | ||||||||||||
| 718 | unsigned char *buf, size_t len) | - | ||||||||||||
| 719 | { | - | ||||||||||||
| 720 | if (eckey->group == 
 | 0-964 | ||||||||||||
| 721 | ((void *)0) 
 | 0-964 | ||||||||||||
| 722 | || eckey->group->meth == 
 | 0-964 | ||||||||||||
| 723 | ((void *)0) 
 | 0-964 | ||||||||||||
| 724 | ) | - | ||||||||||||
| 725 | return never executed: 0; return 0;never executed:  return 0; | 0 | ||||||||||||
| 726 | if (eckey->group->meth->priv2oct == 
 | 0-964 | ||||||||||||
| 727 | ((void *)0) 
 | 0-964 | ||||||||||||
| 728 | ) { | - | ||||||||||||
| 729 | ERR_put_error(16,(256),((2|64)),__FILE__,534); | - | ||||||||||||
| 730 | return never executed: 0; return 0;never executed:  return 0; | 0 | ||||||||||||
| 731 | } | - | ||||||||||||
| 732 | - | |||||||||||||
| 733 | return executed 964 times by 1 test: eckey->group->meth->priv2oct(eckey, buf, len); return eckey->group->meth->priv2oct(eckey, buf, len);Executed by: 
 executed 964 times by 1 test:  return eckey->group->meth->priv2oct(eckey, buf, len);Executed by: 
 | 964 | ||||||||||||
| 734 | } | - | ||||||||||||
| 735 | - | |||||||||||||
| 736 | size_t ec_key_simple_priv2oct(const EC_KEY *eckey, | - | ||||||||||||
| 737 | unsigned char *buf, size_t len) | - | ||||||||||||
| 738 | { | - | ||||||||||||
| 739 | size_t buf_len; | - | ||||||||||||
| 740 | - | |||||||||||||
| 741 | buf_len = (EC_GROUP_order_bits(eckey->group) + 7) / 8; | - | ||||||||||||
| 742 | if (eckey->priv_key == 
 | 0-964 | ||||||||||||
| 743 | ((void *)0) 
 | 0-964 | ||||||||||||
| 744 | ) | - | ||||||||||||
| 745 | return never executed: 0; return 0;never executed:  return 0; | 0 | ||||||||||||
| 746 | if (buf == 
 | 482 | ||||||||||||
| 747 | ((void *)0) 
 | 482 | ||||||||||||
| 748 | ) | - | ||||||||||||
| 749 | return executed 482 times by 1 test: buf_len; return buf_len;Executed by: 
 executed 482 times by 1 test:  return buf_len;Executed by: 
 | 482 | ||||||||||||
| 750 | else if (len < buf_len 
 | 0-482 | ||||||||||||
| 751 | return never executed: 0; return 0;never executed:  return 0; | 0 | ||||||||||||
| 752 | - | |||||||||||||
| 753 | - | |||||||||||||
| 754 | - | |||||||||||||
| 755 | if (BN_bn2binpad(eckey->priv_key, buf, buf_len) == -1 
 | 78-404 | ||||||||||||
| 756 | ERR_put_error(16,(260),(100),__FILE__,557); | - | ||||||||||||
| 757 | return executed 78 times by 1 test: 0; return 0;Executed by: 
 executed 78 times by 1 test:  return 0;Executed by: 
 | 78 | ||||||||||||
| 758 | } | - | ||||||||||||
| 759 | - | |||||||||||||
| 760 | return executed 404 times by 1 test: buf_len; return buf_len;Executed by: 
 executed 404 times by 1 test:  return buf_len;Executed by: 
 | 404 | ||||||||||||
| 761 | } | - | ||||||||||||
| 762 | - | |||||||||||||
| 763 | int EC_KEY_oct2priv(EC_KEY *eckey, const unsigned char *buf, size_t len) | - | ||||||||||||
| 764 | { | - | ||||||||||||
| 765 | if (eckey->group == 
 | 0-3016 | ||||||||||||
| 766 | ((void *)0) 
 | 0-3016 | ||||||||||||
| 767 | || eckey->group->meth == 
 | 0-3016 | ||||||||||||
| 768 | ((void *)0) 
 | 0-3016 | ||||||||||||
| 769 | ) | - | ||||||||||||
| 770 | return never executed: 0; return 0;never executed:  return 0; | 0 | ||||||||||||
| 771 | if (eckey->group->meth->oct2priv == 
 | 0-3016 | ||||||||||||
| 772 | ((void *)0) 
 | 0-3016 | ||||||||||||
| 773 | ) { | - | ||||||||||||
| 774 | ERR_put_error(16,(255),((2|64)),__FILE__,569); | - | ||||||||||||
| 775 | return never executed: 0; return 0;never executed:  return 0; | 0 | ||||||||||||
| 776 | } | - | ||||||||||||
| 777 | return executed 3016 times by 1 test: eckey->group->meth->oct2priv(eckey, buf, len); return eckey->group->meth->oct2priv(eckey, buf, len);Executed by: 
 executed 3016 times by 1 test:  return eckey->group->meth->oct2priv(eckey, buf, len);Executed by: 
 | 3016 | ||||||||||||
| 778 | } | - | ||||||||||||
| 779 | - | |||||||||||||
| 780 | int ec_key_simple_oct2priv(EC_KEY *eckey, const unsigned char *buf, size_t len) | - | ||||||||||||
| 781 | { | - | ||||||||||||
| 782 | if (eckey->priv_key == 
 | 0-3016 | ||||||||||||
| 783 | ((void *)0) 
 | 0-3016 | ||||||||||||
| 784 | ) | - | ||||||||||||
| 785 | eckey->priv_key = BN_secure_new(); executed 3016 times by 1 test:  eckey->priv_key = BN_secure_new();Executed by: 
 | 3016 | ||||||||||||
| 786 | if (eckey->priv_key == 
 | 0-3016 | ||||||||||||
| 787 | ((void *)0) 
 | 0-3016 | ||||||||||||
| 788 | ) { | - | ||||||||||||
| 789 | ERR_put_error(16,(259),((1|64)),__FILE__,580); | - | ||||||||||||
| 790 | return never executed: 0; return 0;never executed:  return 0; | 0 | ||||||||||||
| 791 | } | - | ||||||||||||
| 792 | eckey->priv_key = BN_bin2bn(buf, len, eckey->priv_key); | - | ||||||||||||
| 793 | if (eckey->priv_key == 
 | 0-3016 | ||||||||||||
| 794 | ((void *)0) 
 | 0-3016 | ||||||||||||
| 795 | ) { | - | ||||||||||||
| 796 | ERR_put_error(16,(259),(3),__FILE__,585); | - | ||||||||||||
| 797 | return never executed: 0; return 0;never executed:  return 0; | 0 | ||||||||||||
| 798 | } | - | ||||||||||||
| 799 | return executed 3016 times by 1 test: 1; return 1;Executed by: 
 executed 3016 times by 1 test:  return 1;Executed by: 
 | 3016 | ||||||||||||
| 800 | } | - | ||||||||||||
| 801 | - | |||||||||||||
| 802 | size_t EC_KEY_priv2buf(const EC_KEY *eckey, unsigned char **pbuf) | - | ||||||||||||
| 803 | { | - | ||||||||||||
| 804 | size_t len; | - | ||||||||||||
| 805 | unsigned char *buf; | - | ||||||||||||
| 806 | - | |||||||||||||
| 807 | len = EC_KEY_priv2oct(eckey, | - | ||||||||||||
| 808 | ((void *)0) | - | ||||||||||||
| 809 | , 0); | - | ||||||||||||
| 810 | if (len == 0 
 | 0-482 | ||||||||||||
| 811 | return never executed: 0; return 0;never executed:  return 0; | 0 | ||||||||||||
| 812 | if (( 
 
 | 0-482 | ||||||||||||
| 813 | ((void *)0) 
 | 0-482 | ||||||||||||
| 814 | ) { | - | ||||||||||||
| 815 | ERR_put_error(16,(279),((1|64)),__FILE__,600); | - | ||||||||||||
| 816 | return never executed: 0; return 0;never executed:  return 0; | 0 | ||||||||||||
| 817 | } | - | ||||||||||||
| 818 | len = EC_KEY_priv2oct(eckey, buf, len); | - | ||||||||||||
| 819 | if (len == 0 
 | 78-404 | ||||||||||||
| 820 | CRYPTO_free(buf, __FILE__, 605); | - | ||||||||||||
| 821 | return executed 78 times by 1 test: 0; return 0;Executed by: 
 executed 78 times by 1 test:  return 0;Executed by: 
 | 78 | ||||||||||||
| 822 | } | - | ||||||||||||
| 823 | *pbuf = buf; | - | ||||||||||||
| 824 | return executed 404 times by 1 test: len; return len;Executed by: 
 executed 404 times by 1 test:  return len;Executed by: 
 | 404 | ||||||||||||
| 825 | } | - | ||||||||||||
| 826 | - | |||||||||||||
| 827 | int EC_KEY_can_sign(const EC_KEY *eckey) | - | ||||||||||||
| 828 | { | - | ||||||||||||
| 829 | if (eckey->group == 
 | 0-3354 | ||||||||||||
| 830 | ((void *)0) 
 | 0-3354 | ||||||||||||
| 831 | || eckey->group->meth == 
 | 0-3354 | ||||||||||||
| 832 | ((void *)0) 
 | 0-3354 | ||||||||||||
| 833 | - | |||||||||||||
| 834 | || ( 
 
 | 0-3354 | ||||||||||||
| 835 | return never executed: 0; return 0;never executed:  return 0; | 0 | ||||||||||||
| 836 | return executed 3354 times by 1 test: 1; return 1;Executed by: 
 executed 3354 times by 1 test:  return 1;Executed by: 
 | 3354 | ||||||||||||
| 837 | } | - | ||||||||||||
| Switch to Source code | Preprocessed file |