summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjsing <>2023-07-15 15:30:43 +0000
committerjsing <>2023-07-15 15:30:43 +0000
commit63e12b66749be8ad7e7f06dbba6273cba0433d7f (patch)
tree5c4f7cdb7fad9b547d81fd715c971d0ab1ebb5d6
parent621f19e56aa0abe5b71795a2f7e1fae064f180d9 (diff)
downloadopenbsd-63e12b66749be8ad7e7f06dbba6273cba0433d7f.tar.gz
openbsd-63e12b66749be8ad7e7f06dbba6273cba0433d7f.tar.bz2
openbsd-63e12b66749be8ad7e7f06dbba6273cba0433d7f.zip
Mop up MD32_XARRAY from md4.
MD32_XARRAY was added as a workaround for a broken HP C compiler (circa 1999). Clean it up to simplify the code. No change in generated assembly.
-rw-r--r--src/lib/libcrypto/md4/md4_dgst.c143
1 files changed, 68 insertions, 75 deletions
diff --git a/src/lib/libcrypto/md4/md4_dgst.c b/src/lib/libcrypto/md4/md4_dgst.c
index e6fff4893d..33a1cd777e 100644
--- a/src/lib/libcrypto/md4/md4_dgst.c
+++ b/src/lib/libcrypto/md4/md4_dgst.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: md4_dgst.c,v 1.20 2023/07/08 10:45:57 beck Exp $ */ 1/* $OpenBSD: md4_dgst.c,v 1.21 2023/07/15 15:30:43 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -146,16 +146,9 @@ void
146md4_block_data_order(MD4_CTX *c, const void *data_, size_t num) 146md4_block_data_order(MD4_CTX *c, const void *data_, size_t num)
147{ 147{
148 const unsigned char *data = data_; 148 const unsigned char *data = data_;
149 unsigned MD32_REG_T A, B,C, D, l; 149 unsigned MD32_REG_T A, B, C, D, l;
150#ifndef MD32_XARRAY 150 unsigned MD32_REG_T X0, X1, X2, X3, X4, X5, X6, X7,
151 /* See comment in crypto/sha/sha_locl.h for details. */ 151 X8, X9, X10, X11, X12, X13, X14, X15;
152 unsigned MD32_REG_T XX0, XX1, XX2, XX3, XX4, XX5, XX6, XX7,
153 XX8, XX9, XX10, XX11, XX12, XX13, XX14, XX15;
154# define X(i) XX##i
155#else
156 MD4_LONG XX[MD4_LBLOCK];
157# define X(i) XX[i]
158#endif
159 152
160 A = c->A; 153 A = c->A;
161 B = c->B; 154 B = c->B;
@@ -164,88 +157,88 @@ md4_block_data_order(MD4_CTX *c, const void *data_, size_t num)
164 157
165 for (; num--; ) { 158 for (; num--; ) {
166 HOST_c2l(data, l); 159 HOST_c2l(data, l);
167 X( 0) = l; 160 X0 = l;
168 HOST_c2l(data, l); 161 HOST_c2l(data, l);
169 X( 1) = l; 162 X1 = l;
170 /* Round 0 */ 163 /* Round 0 */
171 R0(A, B,C, D,X( 0), 3, 0); 164 R0(A, B, C, D, X0, 3, 0);
172 HOST_c2l(data, l); 165 HOST_c2l(data, l);
173 X( 2) = l; 166 X2 = l;
174 R0(D, A,B, C,X( 1), 7, 0); 167 R0(D, A, B, C, X1, 7, 0);
175 HOST_c2l(data, l); 168 HOST_c2l(data, l);
176 X( 3) = l; 169 X3 = l;
177 R0(C, D,A, B,X( 2), 11, 0); 170 R0(C, D, A, B, X2, 11, 0);
178 HOST_c2l(data, l); 171 HOST_c2l(data, l);
179 X( 4) = l; 172 X4 = l;
180 R0(B, C,D, A,X( 3), 19, 0); 173 R0(B, C, D, A, X3, 19, 0);
181 HOST_c2l(data, l); 174 HOST_c2l(data, l);
182 X( 5) = l; 175 X5 = l;
183 R0(A, B,C, D,X( 4), 3, 0); 176 R0(A, B, C, D, X4, 3, 0);
184 HOST_c2l(data, l); 177 HOST_c2l(data, l);
185 X( 6) = l; 178 X6 = l;
186 R0(D, A,B, C,X( 5), 7, 0); 179 R0(D, A, B, C, X5, 7, 0);
187 HOST_c2l(data, l); 180 HOST_c2l(data, l);
188 X( 7) = l; 181 X7 = l;
189 R0(C, D,A, B,X( 6), 11, 0); 182 R0(C, D, A, B, X6, 11, 0);
190 HOST_c2l(data, l); 183 HOST_c2l(data, l);
191 X( 8) = l; 184 X8 = l;
192 R0(B, C,D, A,X( 7), 19, 0); 185 R0(B, C, D, A, X7, 19, 0);
193 HOST_c2l(data, l); 186 HOST_c2l(data, l);
194 X( 9) = l; 187 X9 = l;
195 R0(A, B,C, D,X( 8), 3, 0); 188 R0(A, B, C, D, X8, 3, 0);
196 HOST_c2l(data, l); 189 HOST_c2l(data, l);
197 X(10) = l; 190 X10 = l;
198 R0(D, A,B, C,X( 9), 7, 0); 191 R0(D, A,B, C,X9, 7, 0);
199 HOST_c2l(data, l); 192 HOST_c2l(data, l);
200 X(11) = l; 193 X11 = l;
201 R0(C, D,A, B,X(10), 11, 0); 194 R0(C, D,A, B,X10, 11, 0);
202 HOST_c2l(data, l); 195 HOST_c2l(data, l);
203 X(12) = l; 196 X12 = l;
204 R0(B, C,D, A,X(11), 19, 0); 197 R0(B, C,D, A,X11, 19, 0);
205 HOST_c2l(data, l); 198 HOST_c2l(data, l);
206 X(13) = l; 199 X13 = l;
207 R0(A, B,C, D,X(12), 3, 0); 200 R0(A, B,C, D,X12, 3, 0);
208 HOST_c2l(data, l); 201 HOST_c2l(data, l);
209 X(14) = l; 202 X14 = l;
210 R0(D, A,B, C,X(13), 7, 0); 203 R0(D, A,B, C,X13, 7, 0);
211 HOST_c2l(data, l); 204 HOST_c2l(data, l);
212 X(15) = l; 205 X15 = l;
213 R0(C, D,A, B,X(14), 11, 0); 206 R0(C, D,A, B,X14, 11, 0);
214 R0(B, C,D, A,X(15), 19, 0); 207 R0(B, C,D, A,X15, 19, 0);
215 /* Round 1 */ 208 /* Round 1 */
216 R1(A, B,C, D,X( 0), 3, 0x5A827999L); 209 R1(A, B, C, D, X0, 3, 0x5A827999L);
217 R1(D, A,B, C,X( 4), 5, 0x5A827999L); 210 R1(D, A, B, C, X4, 5, 0x5A827999L);
218 R1(C, D,A, B,X( 8), 9, 0x5A827999L); 211 R1(C, D, A, B, X8, 9, 0x5A827999L);
219 R1(B, C,D, A,X(12), 13, 0x5A827999L); 212 R1(B, C, D, A, X12, 13, 0x5A827999L);
220 R1(A, B,C, D,X( 1), 3, 0x5A827999L); 213 R1(A, B, C, D, X1, 3, 0x5A827999L);
221 R1(D, A,B, C,X( 5), 5, 0x5A827999L); 214 R1(D, A, B, C, X5, 5, 0x5A827999L);
222 R1(C, D,A, B,X( 9), 9, 0x5A827999L); 215 R1(C, D, A, B, X9, 9, 0x5A827999L);
223 R1(B, C,D, A,X(13), 13, 0x5A827999L); 216 R1(B, C, D, A, X13, 13, 0x5A827999L);
224 R1(A, B,C, D,X( 2), 3, 0x5A827999L); 217 R1(A, B, C, D, X2, 3, 0x5A827999L);
225 R1(D, A,B, C,X( 6), 5, 0x5A827999L); 218 R1(D, A, B, C, X6, 5, 0x5A827999L);
226 R1(C, D,A, B,X(10), 9, 0x5A827999L); 219 R1(C, D, A, B, X10, 9, 0x5A827999L);
227 R1(B, C,D, A,X(14), 13, 0x5A827999L); 220 R1(B, C, D, A, X14, 13, 0x5A827999L);
228 R1(A, B,C, D,X( 3), 3, 0x5A827999L); 221 R1(A, B, C, D, X3, 3, 0x5A827999L);
229 R1(D, A,B, C,X( 7), 5, 0x5A827999L); 222 R1(D, A, B, C, X7, 5, 0x5A827999L);
230 R1(C, D,A, B,X(11), 9, 0x5A827999L); 223 R1(C, D, A, B, X11, 9, 0x5A827999L);
231 R1(B, C,D, A,X(15), 13, 0x5A827999L); 224 R1(B, C, D, A, X15, 13, 0x5A827999L);
232 /* Round 2 */ 225 /* Round 2 */
233 R2(A, B,C, D,X( 0), 3, 0x6ED9EBA1L); 226 R2(A, B, C, D, X0, 3, 0x6ED9EBA1L);
234 R2(D, A,B, C,X( 8), 9, 0x6ED9EBA1L); 227 R2(D, A, B, C, X8, 9, 0x6ED9EBA1L);
235 R2(C, D,A, B,X( 4), 11, 0x6ED9EBA1L); 228 R2(C, D, A, B, X4, 11, 0x6ED9EBA1L);
236 R2(B, C,D, A,X(12), 15, 0x6ED9EBA1L); 229 R2(B, C, D, A, X12, 15, 0x6ED9EBA1L);
237 R2(A, B,C, D,X( 2), 3, 0x6ED9EBA1L); 230 R2(A, B, C, D, X2, 3, 0x6ED9EBA1L);
238 R2(D, A,B, C,X(10), 9, 0x6ED9EBA1L); 231 R2(D, A, B, C, X10, 9, 0x6ED9EBA1L);
239 R2(C, D,A, B,X( 6), 11, 0x6ED9EBA1L); 232 R2(C, D, A, B, X6, 11, 0x6ED9EBA1L);
240 R2(B, C,D, A,X(14), 15, 0x6ED9EBA1L); 233 R2(B, C, D, A, X14, 15, 0x6ED9EBA1L);
241 R2(A, B,C, D,X( 1), 3, 0x6ED9EBA1L); 234 R2(A, B, C, D, X1, 3, 0x6ED9EBA1L);
242 R2(D, A,B, C,X( 9), 9, 0x6ED9EBA1L); 235 R2(D, A, B, C, X9, 9, 0x6ED9EBA1L);
243 R2(C, D,A, B,X( 5), 11, 0x6ED9EBA1L); 236 R2(C, D, A, B, X5, 11, 0x6ED9EBA1L);
244 R2(B, C,D, A,X(13), 15, 0x6ED9EBA1L); 237 R2(B, C, D, A, X13, 15, 0x6ED9EBA1L);
245 R2(A, B,C, D,X( 3), 3, 0x6ED9EBA1L); 238 R2(A, B, C, D, X3, 3, 0x6ED9EBA1L);
246 R2(D, A,B, C,X(11), 9, 0x6ED9EBA1L); 239 R2(D, A, B, C, X11, 9, 0x6ED9EBA1L);
247 R2(C, D,A, B,X( 7), 11, 0x6ED9EBA1L); 240 R2(C, D, A, B, X7, 11, 0x6ED9EBA1L);
248 R2(B, C,D, A,X(15), 15, 0x6ED9EBA1L); 241 R2(B, C, D, A, X15, 15, 0x6ED9EBA1L);
249 242
250 A = c->A += A; 243 A = c->A += A;
251 B = c->B += B; 244 B = c->B += B;