OpenCoverage

rmd_dgst.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/ripemd/rmd_dgst.c
Source codeSwitch to Preprocessed file
LineSourceCount
1/*-
2 * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.-
3 *-
4 * Licensed under the OpenSSL license (the "License"). You may not use-
5 * this file except in compliance with the License. You can obtain a copy-
6 * in the file LICENSE in the source distribution or at-
7 * https://www.openssl.org/source/license.html-
8 */-
9-
10#include <stdio.h>-
11#include "rmd_locl.h"-
12#include <openssl/opensslv.h>-
13-
14#ifdef RMD160_ASM-
15void ripemd160_block_x86(RIPEMD160_CTX *c, unsigned long *p, size_t num);-
16# define ripemd160_block ripemd160_block_x86-
17#else-
18void ripemd160_block(RIPEMD160_CTX *c, unsigned long *p, size_t num);-
19#endif-
20-
21int RIPEMD160_Init(RIPEMD160_CTX *c)-
22{-
23 memset(c, 0, sizeof(*c));-
24 c->A = RIPEMD160_A;-
25 c->B = RIPEMD160_B;-
26 c->C = RIPEMD160_C;-
27 c->D = RIPEMD160_D;-
28 c->E = RIPEMD160_E;-
29 return 1;
executed 8 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
8
30}-
31-
32#ifndef ripemd160_block_data_order-
33# ifdef X-
34# undef X-
35# endif-
36void ripemd160_block_data_order(RIPEMD160_CTX *ctx, const void *p, size_t num)-
37{-
38 const unsigned char *data = p;-
39 register unsigned MD32_REG_T A, B, C, D, E;-
40 unsigned MD32_REG_T a, b, c, d, e, l;-
41# ifndef MD32_XARRAY-
42 /* See comment in crypto/sha/sha_locl.h for details. */-
43 unsigned MD32_REG_T XX0, XX1, XX2, XX3, XX4, XX5, XX6, XX7,-
44 XX8, XX9, XX10, XX11, XX12, XX13, XX14, XX15;-
45# define X(i) XX##i-
46# else-
47 RIPEMD160_LONG XX[16];-
48# define X(i) XX[i]-
49# endif-
50-
51 for (; num--;) {
num--Description
TRUEevaluated 11 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 11 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
11
52-
53 A = ctx->A;-
54 B = ctx->B;-
55 C = ctx->C;-
56 D = ctx->D;-
57 E = ctx->E;-
58-
59 (void)HOST_c2l(data, l);-
60 X(0) = l;-
61 (void)HOST_c2l(data, l);-
62 X(1) = l;-
63 RIP1(A, B, C, D, E, WL00, SL00);-
64 (void)HOST_c2l(data, l);-
65 X(2) = l;-
66 RIP1(E, A, B, C, D, WL01, SL01);-
67 (void)HOST_c2l(data, l);-
68 X(3) = l;-
69 RIP1(D, E, A, B, C, WL02, SL02);-
70 (void)HOST_c2l(data, l);-
71 X(4) = l;-
72 RIP1(C, D, E, A, B, WL03, SL03);-
73 (void)HOST_c2l(data, l);-
74 X(5) = l;-
75 RIP1(B, C, D, E, A, WL04, SL04);-
76 (void)HOST_c2l(data, l);-
77 X(6) = l;-
78 RIP1(A, B, C, D, E, WL05, SL05);-
79 (void)HOST_c2l(data, l);-
80 X(7) = l;-
81 RIP1(E, A, B, C, D, WL06, SL06);-
82 (void)HOST_c2l(data, l);-
83 X(8) = l;-
84 RIP1(D, E, A, B, C, WL07, SL07);-
85 (void)HOST_c2l(data, l);-
86 X(9) = l;-
87 RIP1(C, D, E, A, B, WL08, SL08);-
88 (void)HOST_c2l(data, l);-
89 X(10) = l;-
90 RIP1(B, C, D, E, A, WL09, SL09);-
91 (void)HOST_c2l(data, l);-
92 X(11) = l;-
93 RIP1(A, B, C, D, E, WL10, SL10);-
94 (void)HOST_c2l(data, l);-
95 X(12) = l;-
96 RIP1(E, A, B, C, D, WL11, SL11);-
97 (void)HOST_c2l(data, l);-
98 X(13) = l;-
99 RIP1(D, E, A, B, C, WL12, SL12);-
100 (void)HOST_c2l(data, l);-
101 X(14) = l;-
102 RIP1(C, D, E, A, B, WL13, SL13);-
103 (void)HOST_c2l(data, l);-
104 X(15) = l;-
105 RIP1(B, C, D, E, A, WL14, SL14);-
106 RIP1(A, B, C, D, E, WL15, SL15);-
107-
108 RIP2(E, A, B, C, D, WL16, SL16, KL1);-
109 RIP2(D, E, A, B, C, WL17, SL17, KL1);-
110 RIP2(C, D, E, A, B, WL18, SL18, KL1);-
111 RIP2(B, C, D, E, A, WL19, SL19, KL1);-
112 RIP2(A, B, C, D, E, WL20, SL20, KL1);-
113 RIP2(E, A, B, C, D, WL21, SL21, KL1);-
114 RIP2(D, E, A, B, C, WL22, SL22, KL1);-
115 RIP2(C, D, E, A, B, WL23, SL23, KL1);-
116 RIP2(B, C, D, E, A, WL24, SL24, KL1);-
117 RIP2(A, B, C, D, E, WL25, SL25, KL1);-
118 RIP2(E, A, B, C, D, WL26, SL26, KL1);-
119 RIP2(D, E, A, B, C, WL27, SL27, KL1);-
120 RIP2(C, D, E, A, B, WL28, SL28, KL1);-
121 RIP2(B, C, D, E, A, WL29, SL29, KL1);-
122 RIP2(A, B, C, D, E, WL30, SL30, KL1);-
123 RIP2(E, A, B, C, D, WL31, SL31, KL1);-
124-
125 RIP3(D, E, A, B, C, WL32, SL32, KL2);-
126 RIP3(C, D, E, A, B, WL33, SL33, KL2);-
127 RIP3(B, C, D, E, A, WL34, SL34, KL2);-
128 RIP3(A, B, C, D, E, WL35, SL35, KL2);-
129 RIP3(E, A, B, C, D, WL36, SL36, KL2);-
130 RIP3(D, E, A, B, C, WL37, SL37, KL2);-
131 RIP3(C, D, E, A, B, WL38, SL38, KL2);-
132 RIP3(B, C, D, E, A, WL39, SL39, KL2);-
133 RIP3(A, B, C, D, E, WL40, SL40, KL2);-
134 RIP3(E, A, B, C, D, WL41, SL41, KL2);-
135 RIP3(D, E, A, B, C, WL42, SL42, KL2);-
136 RIP3(C, D, E, A, B, WL43, SL43, KL2);-
137 RIP3(B, C, D, E, A, WL44, SL44, KL2);-
138 RIP3(A, B, C, D, E, WL45, SL45, KL2);-
139 RIP3(E, A, B, C, D, WL46, SL46, KL2);-
140 RIP3(D, E, A, B, C, WL47, SL47, KL2);-
141-
142 RIP4(C, D, E, A, B, WL48, SL48, KL3);-
143 RIP4(B, C, D, E, A, WL49, SL49, KL3);-
144 RIP4(A, B, C, D, E, WL50, SL50, KL3);-
145 RIP4(E, A, B, C, D, WL51, SL51, KL3);-
146 RIP4(D, E, A, B, C, WL52, SL52, KL3);-
147 RIP4(C, D, E, A, B, WL53, SL53, KL3);-
148 RIP4(B, C, D, E, A, WL54, SL54, KL3);-
149 RIP4(A, B, C, D, E, WL55, SL55, KL3);-
150 RIP4(E, A, B, C, D, WL56, SL56, KL3);-
151 RIP4(D, E, A, B, C, WL57, SL57, KL3);-
152 RIP4(C, D, E, A, B, WL58, SL58, KL3);-
153 RIP4(B, C, D, E, A, WL59, SL59, KL3);-
154 RIP4(A, B, C, D, E, WL60, SL60, KL3);-
155 RIP4(E, A, B, C, D, WL61, SL61, KL3);-
156 RIP4(D, E, A, B, C, WL62, SL62, KL3);-
157 RIP4(C, D, E, A, B, WL63, SL63, KL3);-
158-
159 RIP5(B, C, D, E, A, WL64, SL64, KL4);-
160 RIP5(A, B, C, D, E, WL65, SL65, KL4);-
161 RIP5(E, A, B, C, D, WL66, SL66, KL4);-
162 RIP5(D, E, A, B, C, WL67, SL67, KL4);-
163 RIP5(C, D, E, A, B, WL68, SL68, KL4);-
164 RIP5(B, C, D, E, A, WL69, SL69, KL4);-
165 RIP5(A, B, C, D, E, WL70, SL70, KL4);-
166 RIP5(E, A, B, C, D, WL71, SL71, KL4);-
167 RIP5(D, E, A, B, C, WL72, SL72, KL4);-
168 RIP5(C, D, E, A, B, WL73, SL73, KL4);-
169 RIP5(B, C, D, E, A, WL74, SL74, KL4);-
170 RIP5(A, B, C, D, E, WL75, SL75, KL4);-
171 RIP5(E, A, B, C, D, WL76, SL76, KL4);-
172 RIP5(D, E, A, B, C, WL77, SL77, KL4);-
173 RIP5(C, D, E, A, B, WL78, SL78, KL4);-
174 RIP5(B, C, D, E, A, WL79, SL79, KL4);-
175-
176 a = A;-
177 b = B;-
178 c = C;-
179 d = D;-
180 e = E;-
181 /* Do other half */-
182 A = ctx->A;-
183 B = ctx->B;-
184 C = ctx->C;-
185 D = ctx->D;-
186 E = ctx->E;-
187-
188 RIP5(A, B, C, D, E, WR00, SR00, KR0);-
189 RIP5(E, A, B, C, D, WR01, SR01, KR0);-
190 RIP5(D, E, A, B, C, WR02, SR02, KR0);-
191 RIP5(C, D, E, A, B, WR03, SR03, KR0);-
192 RIP5(B, C, D, E, A, WR04, SR04, KR0);-
193 RIP5(A, B, C, D, E, WR05, SR05, KR0);-
194 RIP5(E, A, B, C, D, WR06, SR06, KR0);-
195 RIP5(D, E, A, B, C, WR07, SR07, KR0);-
196 RIP5(C, D, E, A, B, WR08, SR08, KR0);-
197 RIP5(B, C, D, E, A, WR09, SR09, KR0);-
198 RIP5(A, B, C, D, E, WR10, SR10, KR0);-
199 RIP5(E, A, B, C, D, WR11, SR11, KR0);-
200 RIP5(D, E, A, B, C, WR12, SR12, KR0);-
201 RIP5(C, D, E, A, B, WR13, SR13, KR0);-
202 RIP5(B, C, D, E, A, WR14, SR14, KR0);-
203 RIP5(A, B, C, D, E, WR15, SR15, KR0);-
204-
205 RIP4(E, A, B, C, D, WR16, SR16, KR1);-
206 RIP4(D, E, A, B, C, WR17, SR17, KR1);-
207 RIP4(C, D, E, A, B, WR18, SR18, KR1);-
208 RIP4(B, C, D, E, A, WR19, SR19, KR1);-
209 RIP4(A, B, C, D, E, WR20, SR20, KR1);-
210 RIP4(E, A, B, C, D, WR21, SR21, KR1);-
211 RIP4(D, E, A, B, C, WR22, SR22, KR1);-
212 RIP4(C, D, E, A, B, WR23, SR23, KR1);-
213 RIP4(B, C, D, E, A, WR24, SR24, KR1);-
214 RIP4(A, B, C, D, E, WR25, SR25, KR1);-
215 RIP4(E, A, B, C, D, WR26, SR26, KR1);-
216 RIP4(D, E, A, B, C, WR27, SR27, KR1);-
217 RIP4(C, D, E, A, B, WR28, SR28, KR1);-
218 RIP4(B, C, D, E, A, WR29, SR29, KR1);-
219 RIP4(A, B, C, D, E, WR30, SR30, KR1);-
220 RIP4(E, A, B, C, D, WR31, SR31, KR1);-
221-
222 RIP3(D, E, A, B, C, WR32, SR32, KR2);-
223 RIP3(C, D, E, A, B, WR33, SR33, KR2);-
224 RIP3(B, C, D, E, A, WR34, SR34, KR2);-
225 RIP3(A, B, C, D, E, WR35, SR35, KR2);-
226 RIP3(E, A, B, C, D, WR36, SR36, KR2);-
227 RIP3(D, E, A, B, C, WR37, SR37, KR2);-
228 RIP3(C, D, E, A, B, WR38, SR38, KR2);-
229 RIP3(B, C, D, E, A, WR39, SR39, KR2);-
230 RIP3(A, B, C, D, E, WR40, SR40, KR2);-
231 RIP3(E, A, B, C, D, WR41, SR41, KR2);-
232 RIP3(D, E, A, B, C, WR42, SR42, KR2);-
233 RIP3(C, D, E, A, B, WR43, SR43, KR2);-
234 RIP3(B, C, D, E, A, WR44, SR44, KR2);-
235 RIP3(A, B, C, D, E, WR45, SR45, KR2);-
236 RIP3(E, A, B, C, D, WR46, SR46, KR2);-
237 RIP3(D, E, A, B, C, WR47, SR47, KR2);-
238-
239 RIP2(C, D, E, A, B, WR48, SR48, KR3);-
240 RIP2(B, C, D, E, A, WR49, SR49, KR3);-
241 RIP2(A, B, C, D, E, WR50, SR50, KR3);-
242 RIP2(E, A, B, C, D, WR51, SR51, KR3);-
243 RIP2(D, E, A, B, C, WR52, SR52, KR3);-
244 RIP2(C, D, E, A, B, WR53, SR53, KR3);-
245 RIP2(B, C, D, E, A, WR54, SR54, KR3);-
246 RIP2(A, B, C, D, E, WR55, SR55, KR3);-
247 RIP2(E, A, B, C, D, WR56, SR56, KR3);-
248 RIP2(D, E, A, B, C, WR57, SR57, KR3);-
249 RIP2(C, D, E, A, B, WR58, SR58, KR3);-
250 RIP2(B, C, D, E, A, WR59, SR59, KR3);-
251 RIP2(A, B, C, D, E, WR60, SR60, KR3);-
252 RIP2(E, A, B, C, D, WR61, SR61, KR3);-
253 RIP2(D, E, A, B, C, WR62, SR62, KR3);-
254 RIP2(C, D, E, A, B, WR63, SR63, KR3);-
255-
256 RIP1(B, C, D, E, A, WR64, SR64);-
257 RIP1(A, B, C, D, E, WR65, SR65);-
258 RIP1(E, A, B, C, D, WR66, SR66);-
259 RIP1(D, E, A, B, C, WR67, SR67);-
260 RIP1(C, D, E, A, B, WR68, SR68);-
261 RIP1(B, C, D, E, A, WR69, SR69);-
262 RIP1(A, B, C, D, E, WR70, SR70);-
263 RIP1(E, A, B, C, D, WR71, SR71);-
264 RIP1(D, E, A, B, C, WR72, SR72);-
265 RIP1(C, D, E, A, B, WR73, SR73);-
266 RIP1(B, C, D, E, A, WR74, SR74);-
267 RIP1(A, B, C, D, E, WR75, SR75);-
268 RIP1(E, A, B, C, D, WR76, SR76);-
269 RIP1(D, E, A, B, C, WR77, SR77);-
270 RIP1(C, D, E, A, B, WR78, SR78);-
271 RIP1(B, C, D, E, A, WR79, SR79);-
272-
273 D = ctx->B + c + D;-
274 ctx->B = ctx->C + d + E;-
275 ctx->C = ctx->D + e + A;-
276 ctx->D = ctx->E + a + B;-
277 ctx->E = ctx->A + b + C;-
278 ctx->A = D;-
279-
280 }
executed 11 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
11
281}
executed 11 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
11
282#endif-
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.2.2