Lines Matching +full:- +full:d

2  *  RIPE MD-160 implementation
5 * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
9 * The RIPEMD-160 algorithm was designed by RIPE in 1996
11 * http://ehash.iaik.tugraz.at/wiki/RIPEMD-160
49 * RIPEMD-160 context setup
53 ctx->total[0] = 0; in mbedtls_ripemd160_starts()
54 ctx->total[1] = 0; in mbedtls_ripemd160_starts()
56 ctx->state[0] = 0x67452301; in mbedtls_ripemd160_starts()
57 ctx->state[1] = 0xEFCDAB89; in mbedtls_ripemd160_starts()
58 ctx->state[2] = 0x98BADCFE; in mbedtls_ripemd160_starts()
59 ctx->state[3] = 0x10325476; in mbedtls_ripemd160_starts()
60 ctx->state[4] = 0xC3D2E1F0; in mbedtls_ripemd160_starts()
73 uint32_t A, B, C, D, E, Ap, Bp, Cp, Dp, Ep, X[16]; in mbedtls_internal_ripemd160_process() member
93 local.A = local.Ap = ctx->state[0]; in mbedtls_internal_ripemd160_process()
94 local.B = local.Bp = ctx->state[1]; in mbedtls_internal_ripemd160_process()
95 local.C = local.Cp = ctx->state[2]; in mbedtls_internal_ripemd160_process()
96 local.D = local.Dp = ctx->state[3]; in mbedtls_internal_ripemd160_process()
97 local.E = local.Ep = ctx->state[4]; in mbedtls_internal_ripemd160_process()
105 #define S(x, n) (((x) << (n)) | ((x) >> (32 - (n)))) in mbedtls_internal_ripemd160_process()
107 #define P(a, b, c, d, e, r, s, f, k) \ in mbedtls_internal_ripemd160_process() argument
110 (a) += f((b), (c), (d)) + local.X[r] + (k); \ in mbedtls_internal_ripemd160_process()
115 #define P2(a, b, c, d, e, r, s, rp, sp) \ in mbedtls_internal_ripemd160_process() argument
118 P((a), (b), (c), (d), (e), (r), (s), F, K); \ in mbedtls_internal_ripemd160_process()
119 P(a ## p, b ## p, c ## p, d ## p, e ## p, \ in mbedtls_internal_ripemd160_process()
127 P2(local.A, local.B, local.C, local.D, local.E, 0, 11, 5, 8); in mbedtls_internal_ripemd160_process()
128 P2(local.E, local.A, local.B, local.C, local.D, 1, 14, 14, 9); in mbedtls_internal_ripemd160_process()
129 P2(local.D, local.E, local.A, local.B, local.C, 2, 15, 7, 9); in mbedtls_internal_ripemd160_process()
130 P2(local.C, local.D, local.E, local.A, local.B, 3, 12, 0, 11); in mbedtls_internal_ripemd160_process()
131 P2(local.B, local.C, local.D, local.E, local.A, 4, 5, 9, 13); in mbedtls_internal_ripemd160_process()
132 P2(local.A, local.B, local.C, local.D, local.E, 5, 8, 2, 15); in mbedtls_internal_ripemd160_process()
133 P2(local.E, local.A, local.B, local.C, local.D, 6, 7, 11, 15); in mbedtls_internal_ripemd160_process()
134 P2(local.D, local.E, local.A, local.B, local.C, 7, 9, 4, 5); in mbedtls_internal_ripemd160_process()
135 P2(local.C, local.D, local.E, local.A, local.B, 8, 11, 13, 7); in mbedtls_internal_ripemd160_process()
136 P2(local.B, local.C, local.D, local.E, local.A, 9, 13, 6, 7); in mbedtls_internal_ripemd160_process()
137 P2(local.A, local.B, local.C, local.D, local.E, 10, 14, 15, 8); in mbedtls_internal_ripemd160_process()
138 P2(local.E, local.A, local.B, local.C, local.D, 11, 15, 8, 11); in mbedtls_internal_ripemd160_process()
139 P2(local.D, local.E, local.A, local.B, local.C, 12, 6, 1, 14); in mbedtls_internal_ripemd160_process()
140 P2(local.C, local.D, local.E, local.A, local.B, 13, 7, 10, 14); in mbedtls_internal_ripemd160_process()
141 P2(local.B, local.C, local.D, local.E, local.A, 14, 9, 3, 12); in mbedtls_internal_ripemd160_process()
142 P2(local.A, local.B, local.C, local.D, local.E, 15, 8, 12, 6); in mbedtls_internal_ripemd160_process()
152 P2(local.E, local.A, local.B, local.C, local.D, 7, 7, 6, 9); in mbedtls_internal_ripemd160_process()
153 P2(local.D, local.E, local.A, local.B, local.C, 4, 6, 11, 13); in mbedtls_internal_ripemd160_process()
154 P2(local.C, local.D, local.E, local.A, local.B, 13, 8, 3, 15); in mbedtls_internal_ripemd160_process()
155 P2(local.B, local.C, local.D, local.E, local.A, 1, 13, 7, 7); in mbedtls_internal_ripemd160_process()
156 P2(local.A, local.B, local.C, local.D, local.E, 10, 11, 0, 12); in mbedtls_internal_ripemd160_process()
157 P2(local.E, local.A, local.B, local.C, local.D, 6, 9, 13, 8); in mbedtls_internal_ripemd160_process()
158 P2(local.D, local.E, local.A, local.B, local.C, 15, 7, 5, 9); in mbedtls_internal_ripemd160_process()
159 P2(local.C, local.D, local.E, local.A, local.B, 3, 15, 10, 11); in mbedtls_internal_ripemd160_process()
160 P2(local.B, local.C, local.D, local.E, local.A, 12, 7, 14, 7); in mbedtls_internal_ripemd160_process()
161 P2(local.A, local.B, local.C, local.D, local.E, 0, 12, 15, 7); in mbedtls_internal_ripemd160_process()
162 P2(local.E, local.A, local.B, local.C, local.D, 9, 15, 8, 12); in mbedtls_internal_ripemd160_process()
163 P2(local.D, local.E, local.A, local.B, local.C, 5, 9, 12, 7); in mbedtls_internal_ripemd160_process()
164 P2(local.C, local.D, local.E, local.A, local.B, 2, 11, 4, 6); in mbedtls_internal_ripemd160_process()
165 P2(local.B, local.C, local.D, local.E, local.A, 14, 7, 9, 15); in mbedtls_internal_ripemd160_process()
166 P2(local.A, local.B, local.C, local.D, local.E, 11, 13, 1, 13); in mbedtls_internal_ripemd160_process()
167 P2(local.E, local.A, local.B, local.C, local.D, 8, 12, 2, 11); in mbedtls_internal_ripemd160_process()
177 P2(local.D, local.E, local.A, local.B, local.C, 3, 11, 15, 9); in mbedtls_internal_ripemd160_process()
178 P2(local.C, local.D, local.E, local.A, local.B, 10, 13, 5, 7); in mbedtls_internal_ripemd160_process()
179 P2(local.B, local.C, local.D, local.E, local.A, 14, 6, 1, 15); in mbedtls_internal_ripemd160_process()
180 P2(local.A, local.B, local.C, local.D, local.E, 4, 7, 3, 11); in mbedtls_internal_ripemd160_process()
181 P2(local.E, local.A, local.B, local.C, local.D, 9, 14, 7, 8); in mbedtls_internal_ripemd160_process()
182 P2(local.D, local.E, local.A, local.B, local.C, 15, 9, 14, 6); in mbedtls_internal_ripemd160_process()
183 P2(local.C, local.D, local.E, local.A, local.B, 8, 13, 6, 6); in mbedtls_internal_ripemd160_process()
184 P2(local.B, local.C, local.D, local.E, local.A, 1, 15, 9, 14); in mbedtls_internal_ripemd160_process()
185 P2(local.A, local.B, local.C, local.D, local.E, 2, 14, 11, 12); in mbedtls_internal_ripemd160_process()
186 P2(local.E, local.A, local.B, local.C, local.D, 7, 8, 8, 13); in mbedtls_internal_ripemd160_process()
187 P2(local.D, local.E, local.A, local.B, local.C, 0, 13, 12, 5); in mbedtls_internal_ripemd160_process()
188 P2(local.C, local.D, local.E, local.A, local.B, 6, 6, 2, 14); in mbedtls_internal_ripemd160_process()
189 P2(local.B, local.C, local.D, local.E, local.A, 13, 5, 10, 13); in mbedtls_internal_ripemd160_process()
190 P2(local.A, local.B, local.C, local.D, local.E, 11, 12, 0, 13); in mbedtls_internal_ripemd160_process()
191 P2(local.E, local.A, local.B, local.C, local.D, 5, 7, 4, 7); in mbedtls_internal_ripemd160_process()
192 P2(local.D, local.E, local.A, local.B, local.C, 12, 5, 13, 5); in mbedtls_internal_ripemd160_process()
202 P2(local.C, local.D, local.E, local.A, local.B, 1, 11, 8, 15); in mbedtls_internal_ripemd160_process()
203 P2(local.B, local.C, local.D, local.E, local.A, 9, 12, 6, 5); in mbedtls_internal_ripemd160_process()
204 P2(local.A, local.B, local.C, local.D, local.E, 11, 14, 4, 8); in mbedtls_internal_ripemd160_process()
205 P2(local.E, local.A, local.B, local.C, local.D, 10, 15, 1, 11); in mbedtls_internal_ripemd160_process()
206 P2(local.D, local.E, local.A, local.B, local.C, 0, 14, 3, 14); in mbedtls_internal_ripemd160_process()
207 P2(local.C, local.D, local.E, local.A, local.B, 8, 15, 11, 14); in mbedtls_internal_ripemd160_process()
208 P2(local.B, local.C, local.D, local.E, local.A, 12, 9, 15, 6); in mbedtls_internal_ripemd160_process()
209 P2(local.A, local.B, local.C, local.D, local.E, 4, 8, 0, 14); in mbedtls_internal_ripemd160_process()
210 P2(local.E, local.A, local.B, local.C, local.D, 13, 9, 5, 6); in mbedtls_internal_ripemd160_process()
211 P2(local.D, local.E, local.A, local.B, local.C, 3, 14, 12, 9); in mbedtls_internal_ripemd160_process()
212 P2(local.C, local.D, local.E, local.A, local.B, 7, 5, 2, 12); in mbedtls_internal_ripemd160_process()
213 P2(local.B, local.C, local.D, local.E, local.A, 15, 6, 13, 9); in mbedtls_internal_ripemd160_process()
214 P2(local.A, local.B, local.C, local.D, local.E, 14, 8, 9, 12); in mbedtls_internal_ripemd160_process()
215 P2(local.E, local.A, local.B, local.C, local.D, 5, 6, 7, 5); in mbedtls_internal_ripemd160_process()
216 P2(local.D, local.E, local.A, local.B, local.C, 6, 5, 10, 15); in mbedtls_internal_ripemd160_process()
217 P2(local.C, local.D, local.E, local.A, local.B, 2, 12, 14, 8); in mbedtls_internal_ripemd160_process()
227 P2(local.B, local.C, local.D, local.E, local.A, 4, 9, 12, 8); in mbedtls_internal_ripemd160_process()
228 P2(local.A, local.B, local.C, local.D, local.E, 0, 15, 15, 5); in mbedtls_internal_ripemd160_process()
229 P2(local.E, local.A, local.B, local.C, local.D, 5, 5, 10, 12); in mbedtls_internal_ripemd160_process()
230 P2(local.D, local.E, local.A, local.B, local.C, 9, 11, 4, 9); in mbedtls_internal_ripemd160_process()
231 P2(local.C, local.D, local.E, local.A, local.B, 7, 6, 1, 12); in mbedtls_internal_ripemd160_process()
232 P2(local.B, local.C, local.D, local.E, local.A, 12, 8, 5, 5); in mbedtls_internal_ripemd160_process()
233 P2(local.A, local.B, local.C, local.D, local.E, 2, 13, 8, 14); in mbedtls_internal_ripemd160_process()
234 P2(local.E, local.A, local.B, local.C, local.D, 10, 12, 7, 6); in mbedtls_internal_ripemd160_process()
235 P2(local.D, local.E, local.A, local.B, local.C, 14, 5, 6, 8); in mbedtls_internal_ripemd160_process()
236 P2(local.C, local.D, local.E, local.A, local.B, 1, 12, 2, 13); in mbedtls_internal_ripemd160_process()
237 P2(local.B, local.C, local.D, local.E, local.A, 3, 13, 13, 6); in mbedtls_internal_ripemd160_process()
238 P2(local.A, local.B, local.C, local.D, local.E, 8, 14, 14, 5); in mbedtls_internal_ripemd160_process()
239 P2(local.E, local.A, local.B, local.C, local.D, 11, 11, 0, 15); in mbedtls_internal_ripemd160_process()
240 P2(local.D, local.E, local.A, local.B, local.C, 6, 8, 3, 13); in mbedtls_internal_ripemd160_process()
241 P2(local.C, local.D, local.E, local.A, local.B, 15, 5, 9, 11); in mbedtls_internal_ripemd160_process()
242 P2(local.B, local.C, local.D, local.E, local.A, 13, 6, 11, 11); in mbedtls_internal_ripemd160_process()
248 local.C = ctx->state[1] + local.C + local.Dp; in mbedtls_internal_ripemd160_process()
249 ctx->state[1] = ctx->state[2] + local.D + local.Ep; in mbedtls_internal_ripemd160_process()
250 ctx->state[2] = ctx->state[3] + local.E + local.Ap; in mbedtls_internal_ripemd160_process()
251 ctx->state[3] = ctx->state[4] + local.A + local.Bp; in mbedtls_internal_ripemd160_process()
252 ctx->state[4] = ctx->state[0] + local.B + local.Cp; in mbedtls_internal_ripemd160_process()
253 ctx->state[0] = local.C; in mbedtls_internal_ripemd160_process()
264 * RIPEMD-160 process buffer
278 left = ctx->total[0] & 0x3F; in mbedtls_ripemd160_update()
279 fill = 64 - left; in mbedtls_ripemd160_update()
281 ctx->total[0] += (uint32_t) ilen; in mbedtls_ripemd160_update()
282 ctx->total[0] &= 0xFFFFFFFF; in mbedtls_ripemd160_update()
284 if (ctx->total[0] < (uint32_t) ilen) { in mbedtls_ripemd160_update()
285 ctx->total[1]++; in mbedtls_ripemd160_update()
289 memcpy((void *) (ctx->buffer + left), input, fill); in mbedtls_ripemd160_update()
291 if ((ret = mbedtls_internal_ripemd160_process(ctx, ctx->buffer)) != 0) { in mbedtls_ripemd160_update()
296 ilen -= fill; in mbedtls_ripemd160_update()
306 ilen -= 64; in mbedtls_ripemd160_update()
310 memcpy((void *) (ctx->buffer + left), input, ilen); in mbedtls_ripemd160_update()
325 * RIPEMD-160 final digest
335 high = (ctx->total[0] >> 29) in mbedtls_ripemd160_finish()
336 | (ctx->total[1] << 3); in mbedtls_ripemd160_finish()
337 low = (ctx->total[0] << 3); in mbedtls_ripemd160_finish()
342 last = ctx->total[0] & 0x3F; in mbedtls_ripemd160_finish()
343 padn = (last < 56) ? (56 - last) : (120 - last); in mbedtls_ripemd160_finish()
355 MBEDTLS_PUT_UINT32_LE(ctx->state[0], output, 0); in mbedtls_ripemd160_finish()
356 MBEDTLS_PUT_UINT32_LE(ctx->state[1], output, 4); in mbedtls_ripemd160_finish()
357 MBEDTLS_PUT_UINT32_LE(ctx->state[2], output, 8); in mbedtls_ripemd160_finish()
358 MBEDTLS_PUT_UINT32_LE(ctx->state[3], output, 12); in mbedtls_ripemd160_finish()
359 MBEDTLS_PUT_UINT32_LE(ctx->state[4], output, 16); in mbedtls_ripemd160_finish()
371 * output = RIPEMD-160( input buffer )
402 * Test vectors from the RIPEMD-160 paper and
455 mbedtls_printf(" RIPEMD-160 test #%d: ", i + 1); in mbedtls_ripemd160_self_test()