Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/rsa/rsa_sign.c |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | - | |||||||||||||||||||
2 | - | |||||||||||||||||||
3 | - | |||||||||||||||||||
4 | - | |||||||||||||||||||
5 | - | |||||||||||||||||||
6 | - | |||||||||||||||||||
7 | static int encode_pkcs1(unsigned char **, int *, int , const unsigned char *, | - | ||||||||||||||||||
8 | unsigned int); | - | ||||||||||||||||||
9 | static int | - | ||||||||||||||||||
10 | encode_pkcs1(unsigned char **out, int *out_len, int type, | - | ||||||||||||||||||
11 | const unsigned char *m, unsigned int m_len) | - | ||||||||||||||||||
12 | { | - | ||||||||||||||||||
13 | X509_SIG sig; | - | ||||||||||||||||||
14 | X509_ALGOR algor; | - | ||||||||||||||||||
15 | ASN1_TYPE parameter; | - | ||||||||||||||||||
16 | ASN1_OCTET_STRING digest; | - | ||||||||||||||||||
17 | uint8_t *der = | - | ||||||||||||||||||
18 | ((void *)0) | - | ||||||||||||||||||
19 | ; | - | ||||||||||||||||||
20 | int len; | - | ||||||||||||||||||
21 | - | |||||||||||||||||||
22 | sig.algor = &algor; | - | ||||||||||||||||||
23 | if ((
| 0-142 | ||||||||||||||||||
24 | ((void *)0)
| 0-142 | ||||||||||||||||||
25 | ) { | - | ||||||||||||||||||
26 | ERR_put_error(4,(0xfff),(117),__FILE__,98); | - | ||||||||||||||||||
27 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||
28 | } | - | ||||||||||||||||||
29 | if (sig.algor->algorithm->length == 0
| 0-142 | ||||||||||||||||||
30 | ERR_put_error(4,(0xfff),(116),__FILE__,103) | - | ||||||||||||||||||
31 | ; | - | ||||||||||||||||||
32 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||
33 | } | - | ||||||||||||||||||
34 | parameter.type = 5; | - | ||||||||||||||||||
35 | parameter.value.ptr = | - | ||||||||||||||||||
36 | ((void *)0) | - | ||||||||||||||||||
37 | ; | - | ||||||||||||||||||
38 | sig.algor->parameter = ¶meter; | - | ||||||||||||||||||
39 | - | |||||||||||||||||||
40 | sig.digest = &digest; | - | ||||||||||||||||||
41 | sig.digest->data = (unsigned char*)m; | - | ||||||||||||||||||
42 | sig.digest->length = m_len; | - | ||||||||||||||||||
43 | - | |||||||||||||||||||
44 | if ((
| 0-142 | ||||||||||||||||||
45 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||
46 | - | |||||||||||||||||||
47 | *out = der; | - | ||||||||||||||||||
48 | *out_len = len; | - | ||||||||||||||||||
49 | - | |||||||||||||||||||
50 | return executed 142 times by 5 tests: 1;return 1; Executed by:
executed 142 times by 5 tests: return 1; Executed by:
| 142 | ||||||||||||||||||
51 | } | - | ||||||||||||||||||
52 | - | |||||||||||||||||||
53 | int | - | ||||||||||||||||||
54 | RSA_sign(int type, const unsigned char *m, unsigned int m_len, | - | ||||||||||||||||||
55 | unsigned char *sigret, unsigned int *siglen, RSA *rsa) | - | ||||||||||||||||||
56 | { | - | ||||||||||||||||||
57 | const unsigned char *encoded = | - | ||||||||||||||||||
58 | ((void *)0) | - | ||||||||||||||||||
59 | ; | - | ||||||||||||||||||
60 | unsigned char *tmps = | - | ||||||||||||||||||
61 | ((void *)0) | - | ||||||||||||||||||
62 | ; | - | ||||||||||||||||||
63 | int encrypt_len, encoded_len = 0, ret = 0; | - | ||||||||||||||||||
64 | - | |||||||||||||||||||
65 | if ((
| 0-51 | ||||||||||||||||||
66 | ((void *)0)
| 0 | ||||||||||||||||||
67 | ) | - | ||||||||||||||||||
68 | return never executed: rsa->meth->rsa_sign(type, m, m_len, sigret, siglen, rsa);return rsa->meth->rsa_sign(type, m, m_len, sigret, siglen, rsa); never executed: return rsa->meth->rsa_sign(type, m, m_len, sigret, siglen, rsa); | 0 | ||||||||||||||||||
69 | - | |||||||||||||||||||
70 | - | |||||||||||||||||||
71 | if (type == 114
| 15-36 | ||||||||||||||||||
72 | - | |||||||||||||||||||
73 | - | |||||||||||||||||||
74 | - | |||||||||||||||||||
75 | - | |||||||||||||||||||
76 | - | |||||||||||||||||||
77 | if (m_len != 36
| 0-15 | ||||||||||||||||||
78 | ERR_put_error(4,(0xfff),(143),__FILE__,142); | - | ||||||||||||||||||
79 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||
80 | } | - | ||||||||||||||||||
81 | encoded_len = 36; | - | ||||||||||||||||||
82 | encoded = m; | - | ||||||||||||||||||
83 | } executed 15 times by 2 tests: else {end of block Executed by:
| 15 | ||||||||||||||||||
84 | if (!encode_pkcs1(&tmps, &encoded_len, type, m, m_len)
| 0-36 | ||||||||||||||||||
85 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
86 | encoded = tmps; | - | ||||||||||||||||||
87 | } executed 36 times by 5 tests: end of block Executed by:
| 36 | ||||||||||||||||||
88 | if (encoded_len > RSA_size(rsa) - 11
| 0-51 | ||||||||||||||||||
89 | ERR_put_error(4,(0xfff),(112),__FILE__,153); | - | ||||||||||||||||||
90 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
91 | } | - | ||||||||||||||||||
92 | if ((
| 0-51 | ||||||||||||||||||
93 | rsa, 1)) <= 0
| 0-51 | ||||||||||||||||||
94 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
95 | - | |||||||||||||||||||
96 | *siglen = encrypt_len; | - | ||||||||||||||||||
97 | ret = 1; | - | ||||||||||||||||||
98 | - | |||||||||||||||||||
99 | err: code before this statement executed 51 times by 5 tests: err: Executed by:
| 51 | ||||||||||||||||||
100 | freezero(tmps, (size_t)encoded_len); | - | ||||||||||||||||||
101 | return executed 51 times by 5 tests: (ret);return (ret); Executed by:
executed 51 times by 5 tests: return (ret); Executed by:
| 51 | ||||||||||||||||||
102 | } | - | ||||||||||||||||||
103 | int | - | ||||||||||||||||||
104 | int_rsa_verify(int type, const unsigned char *m, unsigned int m_len, | - | ||||||||||||||||||
105 | unsigned char *rm, size_t *prm_len, const unsigned char *sigbuf, | - | ||||||||||||||||||
106 | size_t siglen, RSA *rsa) | - | ||||||||||||||||||
107 | { | - | ||||||||||||||||||
108 | unsigned char *decrypt_buf, *encoded = | - | ||||||||||||||||||
109 | ((void *)0) | - | ||||||||||||||||||
110 | ; | - | ||||||||||||||||||
111 | int decrypt_len, encoded_len = 0, ret = 0; | - | ||||||||||||||||||
112 | - | |||||||||||||||||||
113 | if (siglen != (size_t)RSA_size(rsa)
| 0-120 | ||||||||||||||||||
114 | ERR_put_error(4,(0xfff),(119),__FILE__,185); | - | ||||||||||||||||||
115 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||
116 | } | - | ||||||||||||||||||
117 | - | |||||||||||||||||||
118 | - | |||||||||||||||||||
119 | if ((
| 0-120 | ||||||||||||||||||
120 | ((void *)0)
| 0-120 | ||||||||||||||||||
121 | ) { | - | ||||||||||||||||||
122 | ERR_put_error(4,(0xfff),((1|64)),__FILE__,191); | - | ||||||||||||||||||
123 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
124 | } | - | ||||||||||||||||||
125 | if ((
| 0-120 | ||||||||||||||||||
126 | rsa, 1)) <= 0
| 0-120 | ||||||||||||||||||
127 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
128 | - | |||||||||||||||||||
129 | if (type == 114
| 14-106 | ||||||||||||||||||
130 | - | |||||||||||||||||||
131 | - | |||||||||||||||||||
132 | - | |||||||||||||||||||
133 | - | |||||||||||||||||||
134 | - | |||||||||||||||||||
135 | if (decrypt_len != 36
| 0-14 | ||||||||||||||||||
136 | ERR_put_error(4,(0xfff),(143),__FILE__,205); | - | ||||||||||||||||||
137 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
138 | } | - | ||||||||||||||||||
139 | - | |||||||||||||||||||
140 | if (rm !=
| 0-14 | ||||||||||||||||||
141 | ((void *)0)
| 0-14 | ||||||||||||||||||
142 | ) { | - | ||||||||||||||||||
143 | memcpy(rm, decrypt_buf, 36); | - | ||||||||||||||||||
144 | *prm_len = 36; | - | ||||||||||||||||||
145 | } never executed: else {end of block | 0 | ||||||||||||||||||
146 | if (m_len != 36
| 0-14 | ||||||||||||||||||
147 | ERR_put_error(4,(0xfff),(131),__FILE__,214); | - | ||||||||||||||||||
148 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
149 | } | - | ||||||||||||||||||
150 | if (timingsafe_bcmp(decrypt_buf,
| 0-14 | ||||||||||||||||||
151 | m, 36) != 0
| 0-14 | ||||||||||||||||||
152 | ERR_put_error(4,(0xfff),(104),__FILE__,219); | - | ||||||||||||||||||
153 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
154 | } | - | ||||||||||||||||||
155 | } executed 14 times by 1 test: end of block Executed by:
| 14 | ||||||||||||||||||
156 | } else { | - | ||||||||||||||||||
157 | - | |||||||||||||||||||
158 | - | |||||||||||||||||||
159 | - | |||||||||||||||||||
160 | - | |||||||||||||||||||
161 | - | |||||||||||||||||||
162 | if (rm !=
| 0-106 | ||||||||||||||||||
163 | ((void *)0)
| 0-106 | ||||||||||||||||||
164 | ) { | - | ||||||||||||||||||
165 | const EVP_MD *md; | - | ||||||||||||||||||
166 | - | |||||||||||||||||||
167 | if ((
| 0 | ||||||||||||||||||
168 | ((void *)0)
| 0 | ||||||||||||||||||
169 | ) { | - | ||||||||||||||||||
170 | ERR_put_error(4,(0xfff),(117),__FILE__,233); | - | ||||||||||||||||||
171 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
172 | } | - | ||||||||||||||||||
173 | if ((
| 0 | ||||||||||||||||||
174 | ERR_put_error(4,(0xfff),(143),__FILE__,237); | - | ||||||||||||||||||
175 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
176 | } | - | ||||||||||||||||||
177 | m = decrypt_buf + decrypt_len - m_len; | - | ||||||||||||||||||
178 | } never executed: end of block | 0 | ||||||||||||||||||
179 | - | |||||||||||||||||||
180 | - | |||||||||||||||||||
181 | if (!encode_pkcs1(&encoded, &encoded_len, type, m, m_len)
| 0-106 | ||||||||||||||||||
182 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
183 | - | |||||||||||||||||||
184 | if (encoded_len != decrypt_len
| 0-106 | ||||||||||||||||||
185 | timingsafe_bcmp(encoded, decrypt_buf, encoded_len) != 0
| 0-106 | ||||||||||||||||||
186 | ERR_put_error(4,(0xfff),(104),__FILE__,249); | - | ||||||||||||||||||
187 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
188 | } | - | ||||||||||||||||||
189 | - | |||||||||||||||||||
190 | - | |||||||||||||||||||
191 | if (rm !=
| 0-106 | ||||||||||||||||||
192 | ((void *)0)
| 0-106 | ||||||||||||||||||
193 | ) { | - | ||||||||||||||||||
194 | memcpy(rm, m, m_len); | - | ||||||||||||||||||
195 | *prm_len = m_len; | - | ||||||||||||||||||
196 | } never executed: end of block | 0 | ||||||||||||||||||
197 | } executed 106 times by 3 tests: end of block Executed by:
| 106 | ||||||||||||||||||
198 | - | |||||||||||||||||||
199 | ret = 1; | - | ||||||||||||||||||
200 | err: code before this statement executed 120 times by 3 tests: err: Executed by:
| 120 | ||||||||||||||||||
201 | freezero(encoded, (size_t)encoded_len); | - | ||||||||||||||||||
202 | freezero(decrypt_buf, siglen); | - | ||||||||||||||||||
203 | return executed 120 times by 3 tests: ret;return ret; Executed by:
executed 120 times by 3 tests: return ret; Executed by:
| 120 | ||||||||||||||||||
204 | } | - | ||||||||||||||||||
205 | - | |||||||||||||||||||
206 | int | - | ||||||||||||||||||
207 | RSA_verify(int dtype, const unsigned char *m, unsigned int m_len, | - | ||||||||||||||||||
208 | const unsigned char *sigbuf, unsigned int siglen, RSA *rsa) | - | ||||||||||||||||||
209 | { | - | ||||||||||||||||||
210 | if ((
| 0-120 | ||||||||||||||||||
211 | return never executed: rsa->meth->rsa_verify(dtype, m, m_len, sigbuf, siglen,return rsa->meth->rsa_verify(dtype, m, m_len, sigbuf, siglen, rsa); never executed: return rsa->meth->rsa_verify(dtype, m, m_len, sigbuf, siglen, rsa); | 0 | ||||||||||||||||||
212 | rsa); never executed: return rsa->meth->rsa_verify(dtype, m, m_len, sigbuf, siglen, rsa); | 0 | ||||||||||||||||||
213 | - | |||||||||||||||||||
214 | return executed 120 times by 3 tests: int_rsa_verify(dtype, m, m_len, return int_rsa_verify(dtype, m, m_len, ((void *)0) , ((void *)0) , sigbuf, siglen, rsa); Executed by:
executed 120 times by 3 tests: return int_rsa_verify(dtype, m, m_len, ((void *)0) , ((void *)0) , sigbuf, siglen, rsa); Executed by:
| 120 | ||||||||||||||||||
215 | ((void *)0) executed 120 times by 3 tests: return int_rsa_verify(dtype, m, m_len, ((void *)0) , ((void *)0) , sigbuf, siglen, rsa); Executed by:
| 120 | ||||||||||||||||||
216 | , executed 120 times by 3 tests: return int_rsa_verify(dtype, m, m_len, ((void *)0) , ((void *)0) , sigbuf, siglen, rsa); Executed by:
| 120 | ||||||||||||||||||
217 | ((void *)0) executed 120 times by 3 tests: return int_rsa_verify(dtype, m, m_len, ((void *)0) , ((void *)0) , sigbuf, siglen, rsa); Executed by:
| 120 | ||||||||||||||||||
218 | , sigbuf, siglen, rsa); executed 120 times by 3 tests: return int_rsa_verify(dtype, m, m_len, ((void *)0) , ((void *)0) , sigbuf, siglen, rsa); Executed by:
| 120 | ||||||||||||||||||
219 | } | - | ||||||||||||||||||
Switch to Source code | Preprocessed file |