OpenCoverage

rsa_sign.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/rsa/rsa_sign.c
Switch to Source codePreprocessed file
LineSourceCount
1static int encode_pkcs1(unsigned char **out, int *out_len, int type,-
2 const unsigned char *m, unsigned int m_len)-
3{-
4 X509_SIG sig;-
5 X509_ALGOR algor;-
6 ASN1_TYPE parameter;-
7 ASN1_OCTET_STRING digest;-
8 uint8_t *der = -
9 ((void *)0)-
10 ;-
11 int len;-
12-
13 sig.algor = &algor;-
14 sig.algor->algorithm = OBJ_nid2obj(type);-
15 if (sig.algor->algorithm ==
sig.algor->alg...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 1567 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1567
16 ((void *)0)
sig.algor->alg...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 1567 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1567
17 ) {-
18 ERR_put_error(4,(146),(117),__FILE__,44);-
19 return
never executed: return 0;
0;
never executed: return 0;
0
20 }-
21 if (OBJ_length(sig.algor->algorithm) == 0
OBJ_length(sig...lgorithm) == 0Description
TRUEnever evaluated
FALSEevaluated 1567 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-1567
22 ERR_put_error(4,(146),(116),__FILE__,49)-
23 ;-
24 return
never executed: return 0;
0;
never executed: return 0;
0
25 }-
26 parameter.type = 5;-
27 parameter.value.ptr = -
28 ((void *)0)-
29 ;-
30 sig.algor->parameter = &parameter;-
31-
32 sig.digest = &digest;-
33 sig.digest->data = (unsigned char *)m;-
34 sig.digest->length = m_len;-
35-
36 len = i2d_X509_SIG(&sig, &der);-
37 if (len < 0
len < 0Description
TRUEnever evaluated
FALSEevaluated 1567 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-1567
38 return
never executed: return 0;
0;
never executed: return 0;
0
39-
40 *out = der;-
41 *out_len = len;-
42 return
executed 1567 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1;
executed 1567 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1567
43}-
44-
45int RSA_sign(int type, const unsigned char *m, unsigned int m_len,-
46 unsigned char *sigret, unsigned int *siglen, RSA *rsa)-
47{-
48 int encrypt_len, encoded_len = 0, ret = 0;-
49 unsigned char *tmps = -
50 ((void *)0)-
51 ;-
52 const unsigned char *encoded = -
53 ((void *)0)-
54 ;-
55-
56 if (rsa->meth->rsa_sign
rsa->meth->rsa_signDescription
TRUEnever evaluated
FALSEevaluated 559 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-559
57 return
never executed: return rsa->meth->rsa_sign(type, m, m_len, sigret, siglen, rsa);
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
58 }-
59-
60-
61 if (type == 114
type == 114Description
TRUEevaluated 381 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 178 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
178-381
62-
63-
64-
65-
66-
67 if (m_len != 36
m_len != 36Description
TRUEnever evaluated
FALSEevaluated 381 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-381
68 ERR_put_error(4,(117),(131),__FILE__,88);-
69 return
never executed: return 0;
0;
never executed: return 0;
0
70 }-
71 encoded_len = 36;-
72 encoded = m;-
73 }
executed 381 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
else {
381
74 if (!encode_pkcs1(&tmps, &encoded_len, type, m, m_len)
!encode_pkcs1(...ype, m, m_len)Description
TRUEnever evaluated
FALSEevaluated 178 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-178
75 goto
never executed: goto err;
err;
never executed: goto err;
0
76 encoded = tmps;-
77 }
executed 178 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
178
78-
79 if (encoded_len > RSA_size(rsa) - 11
encoded_len > ...size(rsa) - 11Description
TRUEnever evaluated
FALSEevaluated 559 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-559
80 ERR_put_error(4,(117),(112),__FILE__,100);-
81 goto
never executed: goto err;
err;
never executed: goto err;
0
82 }-
83 encrypt_len = RSA_private_encrypt(encoded_len, encoded, sigret, rsa,-
84 1);-
85 if (encrypt_len <= 0
encrypt_len <= 0Description
TRUEnever evaluated
FALSEevaluated 559 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-559
86 goto
never executed: goto err;
err;
never executed: goto err;
0
87-
88 *siglen = encrypt_len;-
89 ret = 1;-
90-
91err:
code before this statement executed 559 times by 1 test: err:
Executed by:
  • libcrypto.so.1.1
559
92 CRYPTO_clear_free(tmps, (size_t)encoded_len, __FILE__, 112);-
93 return
executed 559 times by 1 test: return ret;
Executed by:
  • libcrypto.so.1.1
ret;
executed 559 times by 1 test: return ret;
Executed by:
  • libcrypto.so.1.1
559
94}-
95int int_rsa_verify(int type, const unsigned char *m, unsigned int m_len,-
96 unsigned char *rm, size_t *prm_len,-
97 const unsigned char *sigbuf, size_t siglen, RSA *rsa)-
98{-
99 int decrypt_len, ret = 0, encoded_len = 0;-
100 unsigned char *decrypt_buf = -
101 ((void *)0)-
102 , *encoded = -
103 ((void *)0)-
104 ;-
105-
106 if (siglen != (size_t)RSA_size(rsa)
siglen != (siz...)RSA_size(rsa)Description
TRUEevaluated 3 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 1766 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
3-1766
107 ERR_put_error(4,(145),(119),__FILE__,132);-
108 return
executed 3 times by 1 test: return 0;
Executed by:
  • libcrypto.so.1.1
0;
executed 3 times by 1 test: return 0;
Executed by:
  • libcrypto.so.1.1
3
109 }-
110-
111-
112 decrypt_buf = CRYPTO_malloc(siglen, __FILE__, 137);-
113 if (decrypt_buf ==
decrypt_buf == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 1766 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1766
114 ((void *)0)
decrypt_buf == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 1766 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1766
115 ) {-
116 ERR_put_error(4,(145),((1|64)),__FILE__,139);-
117 goto
never executed: goto err;
err;
never executed: goto err;
0
118 }-
119-
120 decrypt_len = RSA_public_decrypt((int)siglen, sigbuf, decrypt_buf, rsa,-
121 1);-
122 if (decrypt_len <= 0
decrypt_len <= 0Description
TRUEevaluated 23 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 1743 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
23-1743
123 goto
executed 23 times by 1 test: goto err;
Executed by:
  • libcrypto.so.1.1
err;
executed 23 times by 1 test: goto err;
Executed by:
  • libcrypto.so.1.1
23
124-
125 if (type == 114
type == 114Description
TRUEevaluated 350 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 1393 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
350-1393
126-
127-
128-
129-
130-
131 if (decrypt_len != 36
decrypt_len != 36Description
TRUEevaluated 3 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 347 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
3-347
132 ERR_put_error(4,(145),(104),__FILE__,155);-
133 goto
executed 3 times by 1 test: goto err;
Executed by:
  • libcrypto.so.1.1
err;
executed 3 times by 1 test: goto err;
Executed by:
  • libcrypto.so.1.1
3
134 }-
135-
136 if (rm !=
rm != ((void *)0)Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 346 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
1-346
137 ((void *)0)
rm != ((void *)0)Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 346 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
1-346
138 ) {-
139 memcpy(rm, decrypt_buf, 36);-
140 *prm_len = 36;-
141 }
executed 1 time by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
else {
1
142 if (m_len != 36
m_len != 36Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 345 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
1-345
143 ERR_put_error(4,(145),(131),__FILE__,164);-
144 goto
executed 1 time by 1 test: goto err;
Executed by:
  • libcrypto.so.1.1
err;
executed 1 time by 1 test: goto err;
Executed by:
  • libcrypto.so.1.1
1
145 }-
146-
147 if (memcmp(decrypt_buf, m, 36) != 0
memcmp(decrypt...f, m, 36) != 0Description
TRUEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 343 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
2-343
148 ERR_put_error(4,(145),(104),__FILE__,169);-
149 goto
executed 2 times by 1 test: goto err;
Executed by:
  • libcrypto.so.1.1
err;
executed 2 times by 1 test: goto err;
Executed by:
  • libcrypto.so.1.1
2
150 }-
151 }
executed 343 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
343
152 } else if (type == 95
type == 95Description
TRUEevaluated 9 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 1384 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
&& decrypt_len == 2 + 16
decrypt_len == 2 + 16Description
TRUEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 5 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
4-1384
153 && decrypt_buf[0] == 0x04
decrypt_buf[0] == 0x04Description
TRUEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
&& decrypt_buf[1] == 0x10
decrypt_buf[1] == 0x10Description
TRUEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
) {
0-4
154-
155-
156-
157-
158 if (rm !=
rm != ((void *)0)Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 3 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
1-3
159 ((void *)0)
rm != ((void *)0)Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 3 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
1-3
160 ) {-
161 memcpy(rm, decrypt_buf + 2, 16);-
162 *prm_len = 16;-
163 }
executed 1 time by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
else {
1
164 if (m_len != 16
m_len != 16Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
1-2
165 ERR_put_error(4,(145),(131),__FILE__,184);-
166 goto
executed 1 time by 1 test: goto err;
Executed by:
  • libcrypto.so.1.1
err;
executed 1 time by 1 test: goto err;
Executed by:
  • libcrypto.so.1.1
1
167 }-
168-
169 if (memcmp(m, decrypt_buf + 2, 16) != 0
memcmp(m, decr... + 2, 16) != 0Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
1
170 ERR_put_error(4,(145),(104),__FILE__,189);-
171 goto
executed 1 time by 1 test: goto err;
Executed by:
  • libcrypto.so.1.1
err;
executed 1 time by 1 test: goto err;
Executed by:
  • libcrypto.so.1.1
1
172 }-
173 }
executed 1 time by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
1
174 } else {-
175-
176-
177-
178-
179-
180 if (rm !=
rm != ((void *)0)Description
TRUEevaluated 7 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 1382 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
7-1382
181 ((void *)0)
rm != ((void *)0)Description
TRUEevaluated 7 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 1382 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
7-1382
182 ) {-
183 const EVP_MD *md = EVP_get_digestbyname(OBJ_nid2sn(type));-
184 if (md ==
md == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 7 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-7
185 ((void *)0)
md == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 7 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-7
186 ) {-
187 ERR_put_error(4,(145),(117),__FILE__,202);-
188 goto
never executed: goto err;
err;
never executed: goto err;
0
189 }-
190-
191 m_len = EVP_MD_size(md);-
192 if (m_len > (size_t)decrypt_len
m_len > (size_t)decrypt_lenDescription
TRUEnever evaluated
FALSEevaluated 7 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-7
193 ERR_put_error(4,(145),(143),__FILE__,208);-
194 goto
never executed: goto err;
err;
never executed: goto err;
0
195 }-
196 m = decrypt_buf + decrypt_len - m_len;-
197 }
executed 7 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
7
198-
199-
200 if (!encode_pkcs1(&encoded, &encoded_len, type, m, m_len)
!encode_pkcs1(...ype, m, m_len)Description
TRUEnever evaluated
FALSEevaluated 1389 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-1389
201 goto
never executed: goto err;
err;
never executed: goto err;
0
202-
203 if (encoded_len != decrypt_len
encoded_len != decrypt_lenDescription
TRUEevaluated 11 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 1378 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
11-1378
204 || memcmp(encoded, decrypt_buf, encoded_len) != 0
memcmp(encoded...oded_len) != 0Description
TRUEevaluated 18 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 1360 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
18-1360
205 ERR_put_error(4,(145),(104),__FILE__,220);-
206 goto
executed 29 times by 1 test: goto err;
Executed by:
  • libcrypto.so.1.1
err;
executed 29 times by 1 test: goto err;
Executed by:
  • libcrypto.so.1.1
29
207 }-
208-
209-
210 if (rm !=
rm != ((void *)0)Description
TRUEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 1358 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
2-1358
211 ((void *)0)
rm != ((void *)0)Description
TRUEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 1358 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
2-1358
212 ) {-
213 memcpy(rm, m, m_len);-
214 *prm_len = m_len;-
215 }
executed 2 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
2
216 }
executed 1360 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
1360
217-
218 ret = 1;-
219-
220err:
code before this statement executed 1706 times by 1 test: err:
Executed by:
  • libcrypto.so.1.1
1706
221 CRYPTO_clear_free(encoded, (size_t)encoded_len, __FILE__, 234);-
222 CRYPTO_clear_free(decrypt_buf, siglen, __FILE__, 235);-
223 return
executed 1766 times by 1 test: return ret;
Executed by:
  • libcrypto.so.1.1
ret;
executed 1766 times by 1 test: return ret;
Executed by:
  • libcrypto.so.1.1
1766
224}-
225-
226int RSA_verify(int type, const unsigned char *m, unsigned int m_len,-
227 const unsigned char *sigbuf, unsigned int siglen, RSA *rsa)-
228{-
229-
230 if (rsa->meth->rsa_verify
rsa->meth->rsa_verifyDescription
TRUEnever evaluated
FALSEevaluated 1758 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-1758
231 return
never executed: return rsa->meth->rsa_verify(type, m, m_len, sigbuf, siglen, rsa);
rsa->meth->rsa_verify(type, m, m_len, sigbuf, siglen, rsa);
never executed: return rsa->meth->rsa_verify(type, m, m_len, sigbuf, siglen, rsa);
0
232 }-
233-
234 return
executed 1758 times by 1 test: return int_rsa_verify(type, m, m_len, ((void *)0) , ((void *)0) , sigbuf, siglen, rsa);
Executed by:
  • libcrypto.so.1.1
int_rsa_verify(type, m, m_len,
executed 1758 times by 1 test: return int_rsa_verify(type, m, m_len, ((void *)0) , ((void *)0) , sigbuf, siglen, rsa);
Executed by:
  • libcrypto.so.1.1
1758
235 ((void *)0)
executed 1758 times by 1 test: return int_rsa_verify(type, m, m_len, ((void *)0) , ((void *)0) , sigbuf, siglen, rsa);
Executed by:
  • libcrypto.so.1.1
1758
236 ,
executed 1758 times by 1 test: return int_rsa_verify(type, m, m_len, ((void *)0) , ((void *)0) , sigbuf, siglen, rsa);
Executed by:
  • libcrypto.so.1.1
1758
237 ((void *)0)
executed 1758 times by 1 test: return int_rsa_verify(type, m, m_len, ((void *)0) , ((void *)0) , sigbuf, siglen, rsa);
Executed by:
  • libcrypto.so.1.1
1758
238 , sigbuf, siglen, rsa);
executed 1758 times by 1 test: return int_rsa_verify(type, m, m_len, ((void *)0) , ((void *)0) , sigbuf, siglen, rsa);
Executed by:
  • libcrypto.so.1.1
1758
239}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2