OpenCoverage

ecp_nist.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/ec/ecp_nist.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3const EC_METHOD *-
4EC_GFp_nist_method(void)-
5{-
6 static const EC_METHOD ret = {-
7 .flags = 0x1,-
8 .field_type = 406,-
9 .group_init = ec_GFp_simple_group_init,-
10 .group_finish = ec_GFp_simple_group_finish,-
11 .group_clear_finish = ec_GFp_simple_group_clear_finish,-
12 .group_copy = ec_GFp_nist_group_copy,-
13 .group_set_curve = ec_GFp_nist_group_set_curve,-
14 .group_get_curve = ec_GFp_simple_group_get_curve,-
15 .group_get_degree = ec_GFp_simple_group_get_degree,-
16 .group_check_discriminant =-
17 ec_GFp_simple_group_check_discriminant,-
18 .point_init = ec_GFp_simple_point_init,-
19 .point_finish = ec_GFp_simple_point_finish,-
20 .point_clear_finish = ec_GFp_simple_point_clear_finish,-
21 .point_copy = ec_GFp_simple_point_copy,-
22 .point_set_to_infinity = ec_GFp_simple_point_set_to_infinity,-
23 .point_set_Jprojective_coordinates_GFp =-
24 ec_GFp_simple_set_Jprojective_coordinates_GFp,-
25 .point_get_Jprojective_coordinates_GFp =-
26 ec_GFp_simple_get_Jprojective_coordinates_GFp,-
27 .point_set_affine_coordinates =-
28 ec_GFp_simple_point_set_affine_coordinates,-
29 .point_get_affine_coordinates =-
30 ec_GFp_simple_point_get_affine_coordinates,-
31 .add = ec_GFp_simple_add,-
32 .dbl = ec_GFp_simple_dbl,-
33 .invert = ec_GFp_simple_invert,-
34 .is_at_infinity = ec_GFp_simple_is_at_infinity,-
35 .is_on_curve = ec_GFp_simple_is_on_curve,-
36 .point_cmp = ec_GFp_simple_cmp,-
37 .make_affine = ec_GFp_simple_make_affine,-
38 .points_make_affine = ec_GFp_simple_points_make_affine,-
39 .mul_generator_ct = ec_GFp_simple_mul_generator_ct,-
40 .mul_single_ct = ec_GFp_simple_mul_single_ct,-
41 .mul_double_nonct = ec_GFp_simple_mul_double_nonct,-
42 .field_mul = ec_GFp_nist_field_mul,-
43 .field_sqr = ec_GFp_nist_field_sqr-
44 };-
45-
46 return
never executed: return &ret;
&ret;
never executed: return &ret;
0
47}-
48-
49int-
50ec_GFp_nist_group_copy(EC_GROUP * dest, const EC_GROUP * src)-
51{-
52 dest->field_mod_func = src->field_mod_func;-
53-
54 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
55}-
56-
57int-
58ec_GFp_nist_group_set_curve(EC_GROUP *group, const BIGNUM *p,-
59 const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)-
60{-
61 int ret = 0;-
62 BN_CTX *new_ctx = -
63 ((void *)0)-
64 ;-
65 BIGNUM *tmp_bn;-
66-
67 if (ctx ==
ctx == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
68 ((void *)0)
ctx == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
69 )-
70 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
71 ((void *)0)
(ctx = new_ctx...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
72 )-
73 return
never executed: return 0;
0;
never executed: return 0;
0
74-
75 BN_CTX_start(ctx);-
76 if ((
(tmp_bn = BN_C...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
tmp_bn = BN_CTX_get(ctx)) ==
(tmp_bn = BN_C...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
77 ((void *)0)
(tmp_bn = BN_C...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
78 )-
79 goto
never executed: goto err;
err;
never executed: goto err;
0
80-
81 if (BN_ucmp(BN_get0_nist_prime_192(), p) == 0
BN_ucmp(BN_get...192(), p) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
82 group->field_mod_func = BN_nist_mod_192;
never executed: group->field_mod_func = BN_nist_mod_192;
0
83 else if (BN_ucmp(BN_get0_nist_prime_224(), p) == 0
BN_ucmp(BN_get...224(), p) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
84 group->field_mod_func = BN_nist_mod_224;
never executed: group->field_mod_func = BN_nist_mod_224;
0
85 else if (BN_ucmp(BN_get0_nist_prime_256(), p) == 0
BN_ucmp(BN_get...256(), p) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
86 group->field_mod_func = BN_nist_mod_256;
never executed: group->field_mod_func = BN_nist_mod_256;
0
87 else if (BN_ucmp(BN_get0_nist_prime_384(), p) == 0
BN_ucmp(BN_get...384(), p) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
88 group->field_mod_func = BN_nist_mod_384;
never executed: group->field_mod_func = BN_nist_mod_384;
0
89 else if (BN_ucmp(BN_get0_nist_prime_521(), p) == 0
BN_ucmp(BN_get...521(), p) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
90 group->field_mod_func = BN_nist_mod_521;
never executed: group->field_mod_func = BN_nist_mod_521;
0
91 else {-
92 ERR_put_error(16,(0xfff),(135),__FILE__,151);-
93 goto
never executed: goto err;
err;
never executed: goto err;
0
94 }-
95-
96 ret = ec_GFp_simple_group_set_curve(group, p, a, b, ctx);-
97-
98 err:
code before this statement never executed: err:
0
99 BN_CTX_end(ctx);-
100 BN_CTX_free(new_ctx);-
101 return
never executed: return ret;
ret;
never executed: return ret;
0
102}-
103-
104-
105int-
106ec_GFp_nist_field_mul(const EC_GROUP *group, BIGNUM *r, const BIGNUM *a,-
107 const BIGNUM *b, BN_CTX *ctx)-
108{-
109 int ret = 0;-
110 BN_CTX *ctx_new = -
111 ((void *)0)-
112 ;-
113-
114 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
115 ERR_put_error(16,(0xfff),((3|64)),__FILE__,172);-
116 goto
never executed: goto err;
err;
never executed: goto err;
0
117 }-
118 if (!ctx
!ctxDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
119 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
120 ((void *)0)
(ctx_new = ctx...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
121 )-
122 goto
never executed: goto err;
err;
never executed: goto err;
0
123-
124 if (!BN_mul(r, a, b, ctx)
!BN_mul(r, a, b, ctx)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
125 goto
never executed: goto err;
err;
never executed: goto err;
0
126 if (!group->field_mod_func(r, r, &group->field, ctx)
!group->field_...p->field, ctx)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
127 goto
never executed: goto err;
err;
never executed: goto err;
0
128-
129 ret = 1;-
130 err:
code before this statement never executed: err:
0
131 BN_CTX_free(ctx_new);-
132 return
never executed: return ret;
ret;
never executed: return ret;
0
133}-
134-
135-
136int-
137ec_GFp_nist_field_sqr(const EC_GROUP * group, BIGNUM * r, const BIGNUM * a,-
138 BN_CTX * ctx)-
139{-
140 int ret = 0;-
141 BN_CTX *ctx_new = -
142 ((void *)0)-
143 ;-
144-
145 if (!group
!groupDescription
TRUEnever evaluated
FALSEnever evaluated
|| !r
!rDescription
TRUEnever evaluated
FALSEnever evaluated
|| !a
!aDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
146 ERR_put_error(16,(0xfff),(134),__FILE__,199);-
147 goto
never executed: goto err;
err;
never executed: goto err;
0
148 }-
149 if (!ctx
!ctxDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
150 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
151 ((void *)0)
(ctx_new = ctx...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
152 )-
153 goto
never executed: goto err;
err;
never executed: goto err;
0
154-
155 if (!BN_sqr(r, a, ctx)
!BN_sqr(r, a, ctx)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
156 goto
never executed: goto err;
err;
never executed: goto err;
0
157 if (!group->field_mod_func(r, r, &group->field, ctx)
!group->field_...p->field, ctx)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
158 goto
never executed: goto err;
err;
never executed: goto err;
0
159-
160 ret = 1;-
161 err:
code before this statement never executed: err:
0
162 BN_CTX_free(ctx_new);-
163 return
never executed: return ret;
ret;
never executed: return ret;
0
164}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2