Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/ec/ec_print.c |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | - | |||||||||||||
2 | BIGNUM * | - | ||||||||||||
3 | EC_POINT_point2bn(const EC_GROUP * group, const EC_POINT * point, | - | ||||||||||||
4 | point_conversion_form_t form, BIGNUM * ret, BN_CTX * ctx) | - | ||||||||||||
5 | { | - | ||||||||||||
6 | size_t buf_len = 0; | - | ||||||||||||
7 | unsigned char *buf; | - | ||||||||||||
8 | - | |||||||||||||
9 | buf_len = EC_POINT_point2oct(group, point, form, | - | ||||||||||||
10 | - | |||||||||||||
11 | ((void *)0) | - | ||||||||||||
12 | , 0, ctx); | - | ||||||||||||
13 | if (buf_len == 0
| 0 | ||||||||||||
14 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||||||||
15 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||
16 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||
17 | - | |||||||||||||
18 | if ((
| 0 | ||||||||||||
19 | ((void *)0)
| 0 | ||||||||||||
20 | ) | - | ||||||||||||
21 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||||||||
22 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||
23 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||
24 | - | |||||||||||||
25 | if (!EC_POINT_point2oct(group, point, form, buf, buf_len, ctx)
| 0 | ||||||||||||
26 | free(buf); | - | ||||||||||||
27 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||||||||
28 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||
29 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||
30 | } | - | ||||||||||||
31 | ret = BN_bin2bn(buf, buf_len, ret); | - | ||||||||||||
32 | - | |||||||||||||
33 | free(buf); | - | ||||||||||||
34 | - | |||||||||||||
35 | return never executed: ret;return ret; never executed: return ret; | 0 | ||||||||||||
36 | } | - | ||||||||||||
37 | - | |||||||||||||
38 | EC_POINT * | - | ||||||||||||
39 | EC_POINT_bn2point(const EC_GROUP * group, | - | ||||||||||||
40 | const BIGNUM * bn, EC_POINT * point, BN_CTX * ctx) | - | ||||||||||||
41 | { | - | ||||||||||||
42 | size_t buf_len = 0; | - | ||||||||||||
43 | unsigned char *buf; | - | ||||||||||||
44 | EC_POINT *ret; | - | ||||||||||||
45 | - | |||||||||||||
46 | if ((
| 0 | ||||||||||||
47 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||||||||
48 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||
49 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||
50 | buf = malloc(buf_len); | - | ||||||||||||
51 | if (buf ==
| 0 | ||||||||||||
52 | ((void *)0)
| 0 | ||||||||||||
53 | ) | - | ||||||||||||
54 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||||||||
55 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||
56 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||
57 | - | |||||||||||||
58 | if (!BN_bn2bin(bn, buf)
| 0 | ||||||||||||
59 | free(buf); | - | ||||||||||||
60 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||||||||
61 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||
62 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||
63 | } | - | ||||||||||||
64 | if (point ==
| 0 | ||||||||||||
65 | ((void *)0)
| 0 | ||||||||||||
66 | ) { | - | ||||||||||||
67 | if ((
| 0 | ||||||||||||
68 | ((void *)0)
| 0 | ||||||||||||
69 | ) { | - | ||||||||||||
70 | free(buf); | - | ||||||||||||
71 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||||||||
72 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||
73 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||
74 | } | - | ||||||||||||
75 | } never executed: elseend of block | 0 | ||||||||||||
76 | ret = point; never executed: ret = point; | 0 | ||||||||||||
77 | - | |||||||||||||
78 | if (!EC_POINT_oct2point(group, ret, buf, buf_len, ctx)
| 0 | ||||||||||||
79 | if (point ==
| 0 | ||||||||||||
80 | ((void *)0)
| 0 | ||||||||||||
81 | ) | - | ||||||||||||
82 | EC_POINT_clear_free(ret); never executed: EC_POINT_clear_free(ret); | 0 | ||||||||||||
83 | free(buf); | - | ||||||||||||
84 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||||||||
85 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||
86 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||
87 | } | - | ||||||||||||
88 | free(buf); | - | ||||||||||||
89 | return never executed: ret;return ret; never executed: return ret; | 0 | ||||||||||||
90 | } | - | ||||||||||||
91 | - | |||||||||||||
92 | static const char *HEX_DIGITS = "0123456789ABCDEF"; | - | ||||||||||||
93 | - | |||||||||||||
94 | - | |||||||||||||
95 | char * | - | ||||||||||||
96 | EC_POINT_point2hex(const EC_GROUP * group, const EC_POINT * point, | - | ||||||||||||
97 | point_conversion_form_t form, BN_CTX * ctx) | - | ||||||||||||
98 | { | - | ||||||||||||
99 | char *ret, *p; | - | ||||||||||||
100 | size_t buf_len = 0, i; | - | ||||||||||||
101 | unsigned char *buf, *pbuf; | - | ||||||||||||
102 | - | |||||||||||||
103 | buf_len = EC_POINT_point2oct(group, point, form, | - | ||||||||||||
104 | - | |||||||||||||
105 | ((void *)0) | - | ||||||||||||
106 | , 0, ctx); | - | ||||||||||||
107 | if (buf_len == 0
| 0 | ||||||||||||
108 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||||||||
109 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||
110 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||
111 | - | |||||||||||||
112 | if ((
| 0 | ||||||||||||
113 | ((void *)0)
| 0 | ||||||||||||
114 | ) | - | ||||||||||||
115 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||||||||
116 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||
117 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||
118 | - | |||||||||||||
119 | if (!EC_POINT_point2oct(group, point, form, buf, buf_len, ctx)
| 0 | ||||||||||||
120 | free(buf); | - | ||||||||||||
121 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||||||||
122 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||
123 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||
124 | } | - | ||||||||||||
125 | ret = reallocarray( | - | ||||||||||||
126 | ((void *)0) | - | ||||||||||||
127 | , buf_len + 1, 2); | - | ||||||||||||
128 | if (ret ==
| 0 | ||||||||||||
129 | ((void *)0)
| 0 | ||||||||||||
130 | ) { | - | ||||||||||||
131 | free(buf); | - | ||||||||||||
132 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||||||||
133 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||
134 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||
135 | } | - | ||||||||||||
136 | p = ret; | - | ||||||||||||
137 | pbuf = buf; | - | ||||||||||||
138 | for (i = buf_len; i > 0
| 0 | ||||||||||||
139 | int v = (int) *(pbuf++); | - | ||||||||||||
140 | *(p++) = HEX_DIGITS[v >> 4]; | - | ||||||||||||
141 | *(p++) = HEX_DIGITS[v & 0x0F]; | - | ||||||||||||
142 | } never executed: end of block | 0 | ||||||||||||
143 | *p = '\0'; | - | ||||||||||||
144 | - | |||||||||||||
145 | free(buf); | - | ||||||||||||
146 | - | |||||||||||||
147 | return never executed: ret;return ret; never executed: return ret; | 0 | ||||||||||||
148 | } | - | ||||||||||||
149 | - | |||||||||||||
150 | EC_POINT * | - | ||||||||||||
151 | EC_POINT_hex2point(const EC_GROUP * group, const char *buf, | - | ||||||||||||
152 | EC_POINT * point, BN_CTX * ctx) | - | ||||||||||||
153 | { | - | ||||||||||||
154 | EC_POINT *ret = | - | ||||||||||||
155 | ((void *)0) | - | ||||||||||||
156 | ; | - | ||||||||||||
157 | BIGNUM *tmp_bn = | - | ||||||||||||
158 | ((void *)0) | - | ||||||||||||
159 | ; | - | ||||||||||||
160 | - | |||||||||||||
161 | if (!BN_hex2bn(&tmp_bn, buf)
| 0 | ||||||||||||
162 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||||||||
163 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||
164 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||
165 | - | |||||||||||||
166 | ret = EC_POINT_bn2point(group, tmp_bn, point, ctx); | - | ||||||||||||
167 | - | |||||||||||||
168 | BN_clear_free(tmp_bn); | - | ||||||||||||
169 | - | |||||||||||||
170 | return never executed: ret;return ret; never executed: return ret; | 0 | ||||||||||||
171 | } | - | ||||||||||||
Switch to Source code | Preprocessed file |