OpenCoverage

sha512.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/sha/sha512.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4int sha512_224_init(SHA512_CTX *c)-
5{-
6 c->h[0] = 0x8c3d37c819544da2ULL;-
7 c->h[1] = 0x73e1996689dcd4d6ULL;-
8 c->h[2] = 0x1dfab7ae32ff9c82ULL;-
9 c->h[3] = 0x679dd514582f9fcfULL;-
10 c->h[4] = 0x0f6d2b697bd44da8ULL;-
11 c->h[5] = 0x77e36f7304c48942ULL;-
12 c->h[6] = 0x3f9d85a86a1d36c8ULL;-
13 c->h[7] = 0x1112e6ad91d692a1ULL;-
14-
15 c->Nl = 0;-
16 c->Nh = 0;-
17 c->num = 0;-
18 c->md_len = 28;-
19 return
executed 7 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1;
executed 7 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
7
20}-
21-
22int sha512_256_init(SHA512_CTX *c)-
23{-
24 c->h[0] = 0x22312194fc2bf72cULL;-
25 c->h[1] = 0x9f555fa3c84c64c2ULL;-
26 c->h[2] = 0x2393b86b6f53b151ULL;-
27 c->h[3] = 0x963877195940eabdULL;-
28 c->h[4] = 0x96283ee2a88effe3ULL;-
29 c->h[5] = 0xbe5e1e2553863992ULL;-
30 c->h[6] = 0x2b0199fc2c85b8aaULL;-
31 c->h[7] = 0x0eb72ddc81c52ca2ULL;-
32-
33 c->Nl = 0;-
34 c->Nh = 0;-
35 c->num = 0;-
36 c->md_len = 32;-
37 return
executed 7 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1;
executed 7 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
7
38}-
39-
40int SHA384_Init(SHA512_CTX *c)-
41{-
42 c->h[0] = 0xcbbb9d5dc1059ed8ULL;-
43 c->h[1] = 0x629a292a367cd507ULL;-
44 c->h[2] = 0x9159015a3070dd17ULL;-
45 c->h[3] = 0x152fecd8f70e5939ULL;-
46 c->h[4] = 0x67332667ffc00b31ULL;-
47 c->h[5] = 0x8eb44a8768581511ULL;-
48 c->h[6] = 0xdb0c2e0d64f98fa7ULL;-
49 c->h[7] = 0x47b5481dbefa4fa4ULL;-
50-
51 c->Nl = 0;-
52 c->Nh = 0;-
53 c->num = 0;-
54 c->md_len = 48;-
55 return
executed 66347 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1;
executed 66347 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
66347
56}-
57-
58int SHA512_Init(SHA512_CTX *c)-
59{-
60 c->h[0] = 0x6a09e667f3bcc908ULL;-
61 c->h[1] = 0xbb67ae8584caa73bULL;-
62 c->h[2] = 0x3c6ef372fe94f82bULL;-
63 c->h[3] = 0xa54ff53a5f1d36f1ULL;-
64 c->h[4] = 0x510e527fade682d1ULL;-
65 c->h[5] = 0x9b05688c2b3e6c1fULL;-
66 c->h[6] = 0x1f83d9abfb41bd6bULL;-
67 c->h[7] = 0x5be0cd19137e2179ULL;-
68-
69 c->Nl = 0;-
70 c->Nh = 0;-
71 c->num = 0;-
72 c->md_len = 64;-
73 return
executed 234323 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1;
executed 234323 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
234323
74}-
75-
76-
77-
78-
79void sha512_block_data_order(SHA512_CTX *ctx, const void *in, size_t num);-
80-
81int SHA512_Final(unsigned char *md, SHA512_CTX *c)-
82{-
83 unsigned char *p = (unsigned char *)c->u.p;-
84 size_t n = c->num;-
85-
86 p[n] = 0x80;-
87 n++;-
88 if (n > (sizeof(c->u) - 16)
n > (sizeof(c->u) - 16)Description
TRUEevaluated 18677 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 327039 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
18677-327039
89 memset(p + n, 0, sizeof(c->u) - n);-
90 n = 0;-
91 sha512_block_data_order(c, p, 1);-
92 }
executed 18677 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
18677
93-
94 memset(p + n, 0, sizeof(c->u) - 16 - n);-
95-
96-
97-
98-
99 p[sizeof(c->u) - 1] = (unsigned char)(c->Nl);-
100 p[sizeof(c->u) - 2] = (unsigned char)(c->Nl >> 8);-
101 p[sizeof(c->u) - 3] = (unsigned char)(c->Nl >> 16);-
102 p[sizeof(c->u) - 4] = (unsigned char)(c->Nl >> 24);-
103 p[sizeof(c->u) - 5] = (unsigned char)(c->Nl >> 32);-
104 p[sizeof(c->u) - 6] = (unsigned char)(c->Nl >> 40);-
105 p[sizeof(c->u) - 7] = (unsigned char)(c->Nl >> 48);-
106 p[sizeof(c->u) - 8] = (unsigned char)(c->Nl >> 56);-
107 p[sizeof(c->u) - 9] = (unsigned char)(c->Nh);-
108 p[sizeof(c->u) - 10] = (unsigned char)(c->Nh >> 8);-
109 p[sizeof(c->u) - 11] = (unsigned char)(c->Nh >> 16);-
110 p[sizeof(c->u) - 12] = (unsigned char)(c->Nh >> 24);-
111 p[sizeof(c->u) - 13] = (unsigned char)(c->Nh >> 32);-
112 p[sizeof(c->u) - 14] = (unsigned char)(c->Nh >> 40);-
113 p[sizeof(c->u) - 15] = (unsigned char)(c->Nh >> 48);-
114 p[sizeof(c->u) - 16] = (unsigned char)(c->Nh >> 56);-
115-
116-
117 sha512_block_data_order(c, p, 1);-
118-
119 if (md == 0
md == 0Description
TRUEnever evaluated
FALSEevaluated 345716 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-345716
120 return
never executed: return 0;
0;
never executed: return 0;
0
121-
122 switch (c->md_len) {-
123-
124 case
executed 7 times by 1 test: case 28:
Executed by:
  • libcrypto.so.1.1
28:
executed 7 times by 1 test: case 28:
Executed by:
  • libcrypto.so.1.1
7
125 for (n = 0; n < 28 / 8
n < 28 / 8Description
TRUEevaluated 21 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 7 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
; n++) {
7-21
126 unsigned long long t = c->h[n];-
127-
128 *(md++) = (unsigned char)(t >> 56);-
129 *(md++) = (unsigned char)(t >> 48);-
130 *(md++) = (unsigned char)(t >> 40);-
131 *(md++) = (unsigned char)(t >> 32);-
132 *(md++) = (unsigned char)(t >> 24);-
133 *(md++) = (unsigned char)(t >> 16);-
134 *(md++) = (unsigned char)(t >> 8);-
135 *(md++) = (unsigned char)(t);-
136 }
executed 21 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
21
137-
138-
139-
140-
141 {-
142 unsigned long long t = c->h[28 / 8];-
143-
144 *(md++) = (unsigned char)(t >> 56);-
145 *(md++) = (unsigned char)(t >> 48);-
146 *(md++) = (unsigned char)(t >> 40);-
147 *(md++) = (unsigned char)(t >> 32);-
148 }-
149 break;
executed 7 times by 1 test: break;
Executed by:
  • libcrypto.so.1.1
7
150 case
executed 7 times by 1 test: case 32:
Executed by:
  • libcrypto.so.1.1
32:
executed 7 times by 1 test: case 32:
Executed by:
  • libcrypto.so.1.1
7
151 for (n = 0; n < 32 / 8
n < 32 / 8Description
TRUEevaluated 28 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 7 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
; n++) {
7-28
152 unsigned long long t = c->h[n];-
153-
154 *(md++) = (unsigned char)(t >> 56);-
155 *(md++) = (unsigned char)(t >> 48);-
156 *(md++) = (unsigned char)(t >> 40);-
157 *(md++) = (unsigned char)(t >> 32);-
158 *(md++) = (unsigned char)(t >> 24);-
159 *(md++) = (unsigned char)(t >> 16);-
160 *(md++) = (unsigned char)(t >> 8);-
161 *(md++) = (unsigned char)(t);-
162 }
executed 28 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
28
163 break;
executed 7 times by 1 test: break;
Executed by:
  • libcrypto.so.1.1
7
164 case
executed 86810 times by 1 test: case 48:
Executed by:
  • libcrypto.so.1.1
48:
executed 86810 times by 1 test: case 48:
Executed by:
  • libcrypto.so.1.1
86810
165 for (n = 0; n < 48 / 8
n < 48 / 8Description
TRUEevaluated 520860 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 86810 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
; n++) {
86810-520860
166 unsigned long long t = c->h[n];-
167-
168 *(md++) = (unsigned char)(t >> 56);-
169 *(md++) = (unsigned char)(t >> 48);-
170 *(md++) = (unsigned char)(t >> 40);-
171 *(md++) = (unsigned char)(t >> 32);-
172 *(md++) = (unsigned char)(t >> 24);-
173 *(md++) = (unsigned char)(t >> 16);-
174 *(md++) = (unsigned char)(t >> 8);-
175 *(md++) = (unsigned char)(t);-
176 }
executed 520860 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
520860
177 break;
executed 86810 times by 1 test: break;
Executed by:
  • libcrypto.so.1.1
86810
178 case
executed 258892 times by 1 test: case 64:
Executed by:
  • libcrypto.so.1.1
64:
executed 258892 times by 1 test: case 64:
Executed by:
  • libcrypto.so.1.1
258892
179 for (n = 0; n < 64 / 8
n < 64 / 8Description
TRUEevaluated 2071136 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 258892 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
; n++) {
258892-2071136
180 unsigned long long t = c->h[n];-
181-
182 *(md++) = (unsigned char)(t >> 56);-
183 *(md++) = (unsigned char)(t >> 48);-
184 *(md++) = (unsigned char)(t >> 40);-
185 *(md++) = (unsigned char)(t >> 32);-
186 *(md++) = (unsigned char)(t >> 24);-
187 *(md++) = (unsigned char)(t >> 16);-
188 *(md++) = (unsigned char)(t >> 8);-
189 *(md++) = (unsigned char)(t);-
190 }
executed 2071136 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
2071136
191 break;
executed 258892 times by 1 test: break;
Executed by:
  • libcrypto.so.1.1
258892
192-
193 default
never executed: default:
:
never executed: default:
0
194 return
never executed: return 0;
0;
never executed: return 0;
0
195 }-
196-
197 return
executed 345716 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1;
executed 345716 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
345716
198}-
199-
200int SHA384_Final(unsigned char *md, SHA512_CTX *c)-
201{-
202 return
executed 86807 times by 1 test: return SHA512_Final(md, c);
Executed by:
  • libcrypto.so.1.1
SHA512_Final(md, c);
executed 86807 times by 1 test: return SHA512_Final(md, c);
Executed by:
  • libcrypto.so.1.1
86807
203}-
204-
205int SHA512_Update(SHA512_CTX *c, const void *_data, size_t len)-
206{-
207 unsigned long long l;-
208 unsigned char *p = c->u.p;-
209 const unsigned char *data = (const unsigned char *)_data;-
210-
211 if (len == 0
len == 0Description
TRUEevaluated 21 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 1045529 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
21-1045529
212 return
executed 21 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1;
executed 21 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
21
213-
214 l = (c->Nl + (((unsigned long long) len) << 3)) & 0xffffffffffffffffULL;-
215 if (l < c->Nl
l < c->NlDescription
TRUEnever evaluated
FALSEevaluated 1045529 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-1045529
216 c->Nh++;
never executed: c->Nh++;
0
217 if (sizeof(len) >= 8
sizeof(len) >= 8Description
TRUEevaluated 1045529 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
)
0-1045529
218 c->Nh += (((unsigned long long) len) >> 61);
executed 1045529 times by 1 test: c->Nh += (((unsigned long long) len) >> 61);
Executed by:
  • libcrypto.so.1.1
1045529
219 c->Nl = l;-
220-
221 if (c->num != 0
c->num != 0Description
TRUEevaluated 640995 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 404534 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
404534-640995
222 size_t n = sizeof(c->u) - c->num;-
223-
224 if (len < n
len < nDescription
TRUEevaluated 554527 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 86468 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
86468-554527
225 memcpy(p + c->num, data, len), c->num += (unsigned int)len;-
226 return
executed 554527 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1;
executed 554527 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
554527
227 } else {-
228 memcpy(p + c->num, data, n), c->num = 0;-
229 len -= n, data += n;-
230 sha512_block_data_order(c, p, 1);-
231 }
executed 86468 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
86468
232 }-
233-
234 if (len >= sizeof(c->u)
len >= sizeof(c->u)Description
TRUEevaluated 70853 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 420149 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
70853-420149
235 sha512_block_data_order(c, data, len / sizeof(c->u)),-
236 data += len, len %= sizeof(c->u), data -= len;-
237 }
executed 70853 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
70853
238-
239 if (len != 0
len != 0Description
TRUEevaluated 420900 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 70102 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
70102-420900
240 memcpy(p, data, len), c->num = (int)len;
executed 420900 times by 1 test: memcpy(p, data, len), c->num = (int)len;
Executed by:
  • libcrypto.so.1.1
420900
241-
242 return
executed 491002 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1;
executed 491002 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
491002
243}-
244-
245int SHA384_Update(SHA512_CTX *c, const void *data, size_t len)-
246{-
247 return
executed 190411 times by 1 test: return SHA512_Update(c, data, len);
Executed by:
  • libcrypto.so.1.1
SHA512_Update(c, data, len);
executed 190411 times by 1 test: return SHA512_Update(c, data, len);
Executed by:
  • libcrypto.so.1.1
190411
248}-
249-
250void SHA512_Transform(SHA512_CTX *c, const unsigned char *data)-
251{-
252-
253-
254-
255-
256 sha512_block_data_order(c, data, 1);-
257}
executed 394 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
394
258-
259unsigned char *SHA384(const unsigned char *d, size_t n, unsigned char *md)-
260{-
261 SHA512_CTX c;-
262 static unsigned char m[48];-
263-
264 if (md ==
md == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
265 ((void *)0)
md == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
266 )-
267 md = m;
never executed: md = m;
0
268 SHA384_Init(&c);-
269 SHA512_Update(&c, d, n);-
270 SHA512_Final(md, &c);-
271 OPENSSL_cleanse(&c, sizeof(c));-
272 return
never executed: return md;
md;
never executed: return md;
0
273}-
274-
275unsigned char *SHA512(const unsigned char *d, size_t n, unsigned char *md)-
276{-
277 SHA512_CTX c;-
278 static unsigned char m[64];-
279-
280 if (md ==
md == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 35 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-35
281 ((void *)0)
md == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 35 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-35
282 )-
283 md = m;
never executed: md = m;
0
284 SHA512_Init(&c);-
285 SHA512_Update(&c, d, n);-
286 SHA512_Final(md, &c);-
287 OPENSSL_cleanse(&c, sizeof(c));-
288 return
executed 35 times by 1 test: return md;
Executed by:
  • libcrypto.so.1.1
md;
executed 35 times by 1 test: return md;
Executed by:
  • libcrypto.so.1.1
35
289}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2