| Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/ec/ecp_nist.c | 
| Switch to Source code | Preprocessed file | 
| Line | Source | Count | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | - | |||||||||||||||||||||||||
| 2 | - | |||||||||||||||||||||||||
| 3 | const EC_METHOD *EC_GFp_nist_method(void) | - | ||||||||||||||||||||||||
| 4 | { | - | ||||||||||||||||||||||||
| 5 | static const EC_METHOD ret = { | - | ||||||||||||||||||||||||
| 6 | 0x1, | - | ||||||||||||||||||||||||
| 7 | 406, | - | ||||||||||||||||||||||||
| 8 | ec_GFp_simple_group_init, | - | ||||||||||||||||||||||||
| 9 | ec_GFp_simple_group_finish, | - | ||||||||||||||||||||||||
| 10 | ec_GFp_simple_group_clear_finish, | - | ||||||||||||||||||||||||
| 11 | ec_GFp_nist_group_copy, | - | ||||||||||||||||||||||||
| 12 | ec_GFp_nist_group_set_curve, | - | ||||||||||||||||||||||||
| 13 | ec_GFp_simple_group_get_curve, | - | ||||||||||||||||||||||||
| 14 | ec_GFp_simple_group_get_degree, | - | ||||||||||||||||||||||||
| 15 | ec_group_simple_order_bits, | - | ||||||||||||||||||||||||
| 16 | ec_GFp_simple_group_check_discriminant, | - | ||||||||||||||||||||||||
| 17 | ec_GFp_simple_point_init, | - | ||||||||||||||||||||||||
| 18 | ec_GFp_simple_point_finish, | - | ||||||||||||||||||||||||
| 19 | ec_GFp_simple_point_clear_finish, | - | ||||||||||||||||||||||||
| 20 | ec_GFp_simple_point_copy, | - | ||||||||||||||||||||||||
| 21 | ec_GFp_simple_point_set_to_infinity, | - | ||||||||||||||||||||||||
| 22 | ec_GFp_simple_set_Jprojective_coordinates_GFp, | - | ||||||||||||||||||||||||
| 23 | ec_GFp_simple_get_Jprojective_coordinates_GFp, | - | ||||||||||||||||||||||||
| 24 | ec_GFp_simple_point_set_affine_coordinates, | - | ||||||||||||||||||||||||
| 25 | ec_GFp_simple_point_get_affine_coordinates, | - | ||||||||||||||||||||||||
| 26 | 0, 0, 0, | - | ||||||||||||||||||||||||
| 27 | ec_GFp_simple_add, | - | ||||||||||||||||||||||||
| 28 | ec_GFp_simple_dbl, | - | ||||||||||||||||||||||||
| 29 | ec_GFp_simple_invert, | - | ||||||||||||||||||||||||
| 30 | ec_GFp_simple_is_at_infinity, | - | ||||||||||||||||||||||||
| 31 | ec_GFp_simple_is_on_curve, | - | ||||||||||||||||||||||||
| 32 | ec_GFp_simple_cmp, | - | ||||||||||||||||||||||||
| 33 | ec_GFp_simple_make_affine, | - | ||||||||||||||||||||||||
| 34 | ec_GFp_simple_points_make_affine, | - | ||||||||||||||||||||||||
| 35 | 0 , | - | ||||||||||||||||||||||||
| 36 | 0 , | - | ||||||||||||||||||||||||
| 37 | 0 , | - | ||||||||||||||||||||||||
| 38 | ec_GFp_nist_field_mul, | - | ||||||||||||||||||||||||
| 39 | ec_GFp_nist_field_sqr, | - | ||||||||||||||||||||||||
| 40 | 0 , | - | ||||||||||||||||||||||||
| 41 | 0 , | - | ||||||||||||||||||||||||
| 42 | 0 , | - | ||||||||||||||||||||||||
| 43 | 0, | - | ||||||||||||||||||||||||
| 44 | ec_key_simple_priv2oct, | - | ||||||||||||||||||||||||
| 45 | ec_key_simple_oct2priv, | - | ||||||||||||||||||||||||
| 46 | 0, | - | ||||||||||||||||||||||||
| 47 | ec_key_simple_generate_key, | - | ||||||||||||||||||||||||
| 48 | ec_key_simple_check_key, | - | ||||||||||||||||||||||||
| 49 | ec_key_simple_generate_public_key, | - | ||||||||||||||||||||||||
| 50 | 0, | - | ||||||||||||||||||||||||
| 51 | 0, | - | ||||||||||||||||||||||||
| 52 | ecdh_simple_compute_key, | - | ||||||||||||||||||||||||
| 53 | 0, | - | ||||||||||||||||||||||||
| 54 | ec_GFp_simple_blind_coordinates, | - | ||||||||||||||||||||||||
| 55 | ec_GFp_simple_ladder_pre, | - | ||||||||||||||||||||||||
| 56 | ec_GFp_simple_ladder_step, | - | ||||||||||||||||||||||||
| 57 | ec_GFp_simple_ladder_post | - | ||||||||||||||||||||||||
| 58 | }; | - | ||||||||||||||||||||||||
| 59 | - | |||||||||||||||||||||||||
| 60 |     return never executed:   &ret;return &ret;never executed:  return &ret; | 0 | ||||||||||||||||||||||||
| 61 | } | - | ||||||||||||||||||||||||
| 62 | - | |||||||||||||||||||||||||
| 63 | int ec_GFp_nist_group_copy(EC_GROUP *dest, const EC_GROUP *src) | - | ||||||||||||||||||||||||
| 64 | { | - | ||||||||||||||||||||||||
| 65 | dest->field_mod_func = src->field_mod_func; | - | ||||||||||||||||||||||||
| 66 | - | |||||||||||||||||||||||||
| 67 |     return never executed:   ec_GFp_simple_group_copy(dest, src);return ec_GFp_simple_group_copy(dest, src);never executed:  return ec_GFp_simple_group_copy(dest, src); | 0 | ||||||||||||||||||||||||
| 68 | } | - | ||||||||||||||||||||||||
| 69 | - | |||||||||||||||||||||||||
| 70 | int ec_GFp_nist_group_set_curve(EC_GROUP *group, const BIGNUM *p, | - | ||||||||||||||||||||||||
| 71 | const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx) | - | ||||||||||||||||||||||||
| 72 | { | - | ||||||||||||||||||||||||
| 73 | int ret = 0; | - | ||||||||||||||||||||||||
| 74 | BN_CTX *new_ctx = | - | ||||||||||||||||||||||||
| 75 | ((void *)0) | - | ||||||||||||||||||||||||
| 76 | ; | - | ||||||||||||||||||||||||
| 77 | - | |||||||||||||||||||||||||
| 78 |     if (ctx == 
  | 0 | ||||||||||||||||||||||||
| 79 |               ((void *)0)
  | 0 | ||||||||||||||||||||||||
| 80 | ) | - | ||||||||||||||||||||||||
| 81 |         if ((
 
  | 0 | ||||||||||||||||||||||||
| 82 |                                              ((void *)0)
  | 0 | ||||||||||||||||||||||||
| 83 | ) | - | ||||||||||||||||||||||||
| 84 |             return never executed:   0;return 0;never executed:  return 0; | 0 | ||||||||||||||||||||||||
| 85 | - | |||||||||||||||||||||||||
| 86 | BN_CTX_start(ctx); | - | ||||||||||||||||||||||||
| 87 | - | |||||||||||||||||||||||||
| 88 |     if (BN_ucmp(BN_get0_nist_prime_192(), p) == 0
  | 0 | ||||||||||||||||||||||||
| 89 |         group->field_mod_func = BN_nist_mod_192; never executed:  group->field_mod_func = BN_nist_mod_192; | 0 | ||||||||||||||||||||||||
| 90 |     else if (BN_ucmp(BN_get0_nist_prime_224(), p) == 0
  | 0 | ||||||||||||||||||||||||
| 91 |         group->field_mod_func = BN_nist_mod_224; never executed:  group->field_mod_func = BN_nist_mod_224; | 0 | ||||||||||||||||||||||||
| 92 |     else if (BN_ucmp(BN_get0_nist_prime_256(), p) == 0
  | 0 | ||||||||||||||||||||||||
| 93 |         group->field_mod_func = BN_nist_mod_256; never executed:  group->field_mod_func = BN_nist_mod_256; | 0 | ||||||||||||||||||||||||
| 94 |     else if (BN_ucmp(BN_get0_nist_prime_384(), p) == 0
  | 0 | ||||||||||||||||||||||||
| 95 |         group->field_mod_func = BN_nist_mod_384; never executed:  group->field_mod_func = BN_nist_mod_384; | 0 | ||||||||||||||||||||||||
| 96 |     else if (BN_ucmp(BN_get0_nist_prime_521(), p) == 0
  | 0 | ||||||||||||||||||||||||
| 97 |         group->field_mod_func = BN_nist_mod_521; never executed:  group->field_mod_func = BN_nist_mod_521; | 0 | ||||||||||||||||||||||||
| 98 | else { | - | ||||||||||||||||||||||||
| 99 | ERR_put_error(16,(202),(135),__FILE__,107); | - | ||||||||||||||||||||||||
| 100 |         goto never executed:   err;goto err;never executed:  goto err; | 0 | ||||||||||||||||||||||||
| 101 | } | - | ||||||||||||||||||||||||
| 102 | - | |||||||||||||||||||||||||
| 103 | ret = ec_GFp_simple_group_set_curve(group, p, a, b, ctx); | - | ||||||||||||||||||||||||
| 104 | - | |||||||||||||||||||||||||
| 105 |  err: code before this statement never executed:  err: | 0 | ||||||||||||||||||||||||
| 106 | BN_CTX_end(ctx); | - | ||||||||||||||||||||||||
| 107 | BN_CTX_free(new_ctx); | - | ||||||||||||||||||||||||
| 108 |     return never executed:   ret;return ret;never executed:  return ret; | 0 | ||||||||||||||||||||||||
| 109 | } | - | ||||||||||||||||||||||||
| 110 | - | |||||||||||||||||||||||||
| 111 | int ec_GFp_nist_field_mul(const EC_GROUP *group, BIGNUM *r, const BIGNUM *a, | - | ||||||||||||||||||||||||
| 112 | const BIGNUM *b, BN_CTX *ctx) | - | ||||||||||||||||||||||||
| 113 | { | - | ||||||||||||||||||||||||
| 114 | int ret = 0; | - | ||||||||||||||||||||||||
| 115 | BN_CTX *ctx_new = | - | ||||||||||||||||||||||||
| 116 | ((void *)0) | - | ||||||||||||||||||||||||
| 117 | ; | - | ||||||||||||||||||||||||
| 118 | - | |||||||||||||||||||||||||
| 119 |     if (!group
 
 
 
  | 0 | ||||||||||||||||||||||||
| 120 | ERR_put_error(16,(200),((3|64)),__FILE__,126); | - | ||||||||||||||||||||||||
| 121 |         goto never executed:   err;goto err;never executed:  goto err; | 0 | ||||||||||||||||||||||||
| 122 | } | - | ||||||||||||||||||||||||
| 123 |     if (!ctx
  | 0 | ||||||||||||||||||||||||
| 124 |         if ((
 
  | 0 | ||||||||||||||||||||||||
| 125 |                                              ((void *)0)
  | 0 | ||||||||||||||||||||||||
| 126 | ) | - | ||||||||||||||||||||||||
| 127 |             goto never executed:   err;goto err;never executed:  goto err; | 0 | ||||||||||||||||||||||||
| 128 | - | |||||||||||||||||||||||||
| 129 |     if (!BN_mul(r, a, b, ctx)
  | 0 | ||||||||||||||||||||||||
| 130 |         goto never executed:   err;goto err;never executed:  goto err; | 0 | ||||||||||||||||||||||||
| 131 |     if (!group->field_mod_func(r, r, group->field, ctx)
  | 0 | ||||||||||||||||||||||||
| 132 |         goto never executed:   err;goto err;never executed:  goto err; | 0 | ||||||||||||||||||||||||
| 133 | - | |||||||||||||||||||||||||
| 134 | ret = 1; | - | ||||||||||||||||||||||||
| 135 |  err: code before this statement never executed:  err: | 0 | ||||||||||||||||||||||||
| 136 | BN_CTX_free(ctx_new); | - | ||||||||||||||||||||||||
| 137 |     return never executed:   ret;return ret;never executed:  return ret; | 0 | ||||||||||||||||||||||||
| 138 | } | - | ||||||||||||||||||||||||
| 139 | - | |||||||||||||||||||||||||
| 140 | int ec_GFp_nist_field_sqr(const EC_GROUP *group, BIGNUM *r, const BIGNUM *a, | - | ||||||||||||||||||||||||
| 141 | BN_CTX *ctx) | - | ||||||||||||||||||||||||
| 142 | { | - | ||||||||||||||||||||||||
| 143 | int ret = 0; | - | ||||||||||||||||||||||||
| 144 | BN_CTX *ctx_new = | - | ||||||||||||||||||||||||
| 145 | ((void *)0) | - | ||||||||||||||||||||||||
| 146 | ; | - | ||||||||||||||||||||||||
| 147 | - | |||||||||||||||||||||||||
| 148 |     if (!group
 
 
  | 0 | ||||||||||||||||||||||||
| 149 | ERR_put_error(16,(201),(134),__FILE__,151); | - | ||||||||||||||||||||||||
| 150 |         goto never executed:   err;goto err;never executed:  goto err; | 0 | ||||||||||||||||||||||||
| 151 | } | - | ||||||||||||||||||||||||
| 152 |     if (!ctx
  | 0 | ||||||||||||||||||||||||
| 153 |         if ((
 
  | 0 | ||||||||||||||||||||||||
| 154 |                                              ((void *)0)
  | 0 | ||||||||||||||||||||||||
| 155 | ) | - | ||||||||||||||||||||||||
| 156 |             goto never executed:   err;goto err;never executed:  goto err; | 0 | ||||||||||||||||||||||||
| 157 | - | |||||||||||||||||||||||||
| 158 |     if (!BN_sqr(r, a, ctx)
  | 0 | ||||||||||||||||||||||||
| 159 |         goto never executed:   err;goto err;never executed:  goto err; | 0 | ||||||||||||||||||||||||
| 160 |     if (!group->field_mod_func(r, r, group->field, ctx)
  | 0 | ||||||||||||||||||||||||
| 161 |         goto never executed:   err;goto err;never executed:  goto err; | 0 | ||||||||||||||||||||||||
| 162 | - | |||||||||||||||||||||||||
| 163 | ret = 1; | - | ||||||||||||||||||||||||
| 164 |  err: code before this statement never executed:  err: | 0 | ||||||||||||||||||||||||
| 165 | BN_CTX_free(ctx_new); | - | ||||||||||||||||||||||||
| 166 |     return never executed:   ret;return ret;never executed:  return ret; | 0 | ||||||||||||||||||||||||
| 167 | } | - | ||||||||||||||||||||||||
| Switch to Source code | Preprocessed file |