OpenCoverage

ecp_nist.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/ec/ecp_nist.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3const 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: return &ret;
&ret;
never executed: return &ret;
0
61}-
62-
63int 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: return ec_GFp_simple_group_copy(dest, src);
ec_GFp_simple_group_copy(dest, src);
never executed: return ec_GFp_simple_group_copy(dest, src);
0
68}-
69-
70int 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 ==
ctx == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
79 ((void *)0)
ctx == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
80 )-
81 if ((
(ctx = new_ctx...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
ctx = new_ctx = BN_CTX_new()) ==
(ctx = new_ctx...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
82 ((void *)0)
(ctx = new_ctx...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
83 )-
84 return
never executed: return 0;
0;
never executed: return 0;
0
85-
86 BN_CTX_start(ctx);-
87-
88 if (BN_ucmp(BN_get0_nist_prime_192(), p) == 0
BN_ucmp(BN_get...192(), p) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
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
BN_ucmp(BN_get...224(), p) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
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
BN_ucmp(BN_get...256(), p) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
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
BN_ucmp(BN_get...384(), p) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
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
BN_ucmp(BN_get...521(), p) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
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: goto err;
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: return ret;
ret;
never executed: return ret;
0
109}-
110-
111int 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
!groupDescription
TRUEnever evaluated
FALSEnever evaluated
|| !r
!rDescription
TRUEnever evaluated
FALSEnever evaluated
|| !a
!aDescription
TRUEnever evaluated
FALSEnever evaluated
|| !b
!bDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
120 ERR_put_error(16,(200),((3|64)),__FILE__,126);-
121 goto
never executed: goto err;
err;
never executed: goto err;
0
122 }-
123 if (!ctx
!ctxDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
124 if ((
(ctx_new = ctx...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
ctx_new = ctx = BN_CTX_new()) ==
(ctx_new = ctx...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
125 ((void *)0)
(ctx_new = ctx...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
126 )-
127 goto
never executed: goto err;
err;
never executed: goto err;
0
128-
129 if (!BN_mul(r, a, b, ctx)
!BN_mul(r, a, b, ctx)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
130 goto
never executed: goto err;
err;
never executed: goto err;
0
131 if (!group->field_mod_func(r, r, group->field, ctx)
!group->field_...p->field, ctx)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
132 goto
never executed: goto err;
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: return ret;
ret;
never executed: return ret;
0
138}-
139-
140int 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
!groupDescription
TRUEnever evaluated
FALSEnever evaluated
|| !r
!rDescription
TRUEnever evaluated
FALSEnever evaluated
|| !a
!aDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
149 ERR_put_error(16,(201),(134),__FILE__,151);-
150 goto
never executed: goto err;
err;
never executed: goto err;
0
151 }-
152 if (!ctx
!ctxDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
153 if ((
(ctx_new = ctx...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
ctx_new = ctx = BN_CTX_new()) ==
(ctx_new = ctx...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
154 ((void *)0)
(ctx_new = ctx...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
155 )-
156 goto
never executed: goto err;
err;
never executed: goto err;
0
157-
158 if (!BN_sqr(r, a, ctx)
!BN_sqr(r, a, ctx)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
159 goto
never executed: goto err;
err;
never executed: goto err;
0
160 if (!group->field_mod_func(r, r, group->field, ctx)
!group->field_...p->field, ctx)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
161 goto
never executed: goto err;
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: return ret;
ret;
never executed: return ret;
0
167}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2