summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/md5/md5_dgst.c
diff options
context:
space:
mode:
authorbeck <>2000-03-19 11:13:58 +0000
committerbeck <>2000-03-19 11:13:58 +0000
commit796d609550df3a33fc11468741c5d2f6d3df4c11 (patch)
tree6c6d539061caa20372dad0ac4ddb1dfae2fbe7fe /src/lib/libcrypto/md5/md5_dgst.c
parent5be3114c1fd7e0dfea1e38d3abb4cbba75244419 (diff)
downloadopenbsd-796d609550df3a33fc11468741c5d2f6d3df4c11.tar.gz
openbsd-796d609550df3a33fc11468741c5d2f6d3df4c11.tar.bz2
openbsd-796d609550df3a33fc11468741c5d2f6d3df4c11.zip
OpenSSL 0.9.5 merge
*warning* this bumps shared lib minors for libssl and libcrypto from 2.1 to 2.2 if you are using the ssl26 packages for ssh and other things to work you will need to get new ones (see ~beck/libsslsnap/<arch>) on cvs or ~beck/src-patent.tar.gz on cvs
Diffstat (limited to 'src/lib/libcrypto/md5/md5_dgst.c')
-rw-r--r--src/lib/libcrypto/md5/md5_dgst.c154
1 files changed, 78 insertions, 76 deletions
diff --git a/src/lib/libcrypto/md5/md5_dgst.c b/src/lib/libcrypto/md5/md5_dgst.c
index ba0115ae79..23d196b8d4 100644
--- a/src/lib/libcrypto/md5/md5_dgst.c
+++ b/src/lib/libcrypto/md5/md5_dgst.c
@@ -60,7 +60,7 @@
60#include "md5_locl.h" 60#include "md5_locl.h"
61#include <openssl/opensslv.h> 61#include <openssl/opensslv.h>
62 62
63char *MD5_version="MD5" OPENSSL_VERSION_PTEXT; 63const char *MD5_version="MD5" OPENSSL_VERSION_PTEXT;
64 64
65/* Implemented from RFC1321 The MD5 Message-Digest Algorithm 65/* Implemented from RFC1321 The MD5 Message-Digest Algorithm
66 */ 66 */
@@ -186,6 +186,9 @@ void md5_block_host_order (MD5_CTX *c, const void *data, int num)
186#endif 186#endif
187 187
188#ifndef md5_block_data_order 188#ifndef md5_block_data_order
189#ifdef X
190#undef X
191#endif
189void md5_block_data_order (MD5_CTX *c, const void *data_, int num) 192void md5_block_data_order (MD5_CTX *c, const void *data_, int num)
190 { 193 {
191 const unsigned char *data=data_; 194 const unsigned char *data=data_;
@@ -204,16 +207,15 @@ void md5_block_data_order (MD5_CTX *c, const void *data_, int num)
204 * 207 *
205 * <appro@fy.chalmers.se> 208 * <appro@fy.chalmers.se>
206 */ 209 */
207 MD5_LONG X[MD5_LBLOCK]; 210#ifndef MD32_XARRAY
208 /* 211 /* See comment in crypto/sha/sha_locl.h for details. */
209 * In case you wonder why don't I use c->data for this. 212 unsigned long XX0, XX1, XX2, XX3, XX4, XX5, XX6, XX7,
210 * RISCs usually have a handful of registers and if X is 213 XX8, XX9,XX10,XX11,XX12,XX13,XX14,XX15;
211 * declared as automatic array good optimizing compiler 214# define X(i) XX##i
212 * shall accomodate at least part of it in register bank 215#else
213 * instead of memory. 216 MD5_LONG XX[MD5_LBLOCK];
214 * 217# define X(i) XX[i]
215 * <appro@fy.chalmers.se> 218#endif
216 */
217 219
218 A=c->A; 220 A=c->A;
219 B=c->B; 221 B=c->B;
@@ -222,75 +224,75 @@ void md5_block_data_order (MD5_CTX *c, const void *data_, int num)
222 224
223 for (;num--;) 225 for (;num--;)
224 { 226 {
225 HOST_c2l(data,l); X[ 0]=l; HOST_c2l(data,l); X[ 1]=l; 227 HOST_c2l(data,l); X( 0)=l; HOST_c2l(data,l); X( 1)=l;
226 /* Round 0 */ 228 /* Round 0 */
227 R0(A,B,C,D,X[ 0], 7,0xd76aa478L); HOST_c2l(data,l); X[ 2]=l; 229 R0(A,B,C,D,X( 0), 7,0xd76aa478L); HOST_c2l(data,l); X( 2)=l;
228 R0(D,A,B,C,X[ 1],12,0xe8c7b756L); HOST_c2l(data,l); X[ 3]=l; 230 R0(D,A,B,C,X( 1),12,0xe8c7b756L); HOST_c2l(data,l); X( 3)=l;
229 R0(C,D,A,B,X[ 2],17,0x242070dbL); HOST_c2l(data,l); X[ 4]=l; 231 R0(C,D,A,B,X( 2),17,0x242070dbL); HOST_c2l(data,l); X( 4)=l;
230 R0(B,C,D,A,X[ 3],22,0xc1bdceeeL); HOST_c2l(data,l); X[ 5]=l; 232 R0(B,C,D,A,X( 3),22,0xc1bdceeeL); HOST_c2l(data,l); X( 5)=l;
231 R0(A,B,C,D,X[ 4], 7,0xf57c0fafL); HOST_c2l(data,l); X[ 6]=l; 233 R0(A,B,C,D,X( 4), 7,0xf57c0fafL); HOST_c2l(data,l); X( 6)=l;
232 R0(D,A,B,C,X[ 5],12,0x4787c62aL); HOST_c2l(data,l); X[ 7]=l; 234 R0(D,A,B,C,X( 5),12,0x4787c62aL); HOST_c2l(data,l); X( 7)=l;
233 R0(C,D,A,B,X[ 6],17,0xa8304613L); HOST_c2l(data,l); X[ 8]=l; 235 R0(C,D,A,B,X( 6),17,0xa8304613L); HOST_c2l(data,l); X( 8)=l;
234 R0(B,C,D,A,X[ 7],22,0xfd469501L); HOST_c2l(data,l); X[ 9]=l; 236 R0(B,C,D,A,X( 7),22,0xfd469501L); HOST_c2l(data,l); X( 9)=l;
235 R0(A,B,C,D,X[ 8], 7,0x698098d8L); HOST_c2l(data,l); X[10]=l; 237 R0(A,B,C,D,X( 8), 7,0x698098d8L); HOST_c2l(data,l); X(10)=l;
236 R0(D,A,B,C,X[ 9],12,0x8b44f7afL); HOST_c2l(data,l); X[11]=l; 238 R0(D,A,B,C,X( 9),12,0x8b44f7afL); HOST_c2l(data,l); X(11)=l;
237 R0(C,D,A,B,X[10],17,0xffff5bb1L); HOST_c2l(data,l); X[12]=l; 239 R0(C,D,A,B,X(10),17,0xffff5bb1L); HOST_c2l(data,l); X(12)=l;
238 R0(B,C,D,A,X[11],22,0x895cd7beL); HOST_c2l(data,l); X[13]=l; 240 R0(B,C,D,A,X(11),22,0x895cd7beL); HOST_c2l(data,l); X(13)=l;
239 R0(A,B,C,D,X[12], 7,0x6b901122L); HOST_c2l(data,l); X[14]=l; 241 R0(A,B,C,D,X(12), 7,0x6b901122L); HOST_c2l(data,l); X(14)=l;
240 R0(D,A,B,C,X[13],12,0xfd987193L); HOST_c2l(data,l); X[15]=l; 242 R0(D,A,B,C,X(13),12,0xfd987193L); HOST_c2l(data,l); X(15)=l;
241 R0(C,D,A,B,X[14],17,0xa679438eL); 243 R0(C,D,A,B,X(14),17,0xa679438eL);
242 R0(B,C,D,A,X[15],22,0x49b40821L); 244 R0(B,C,D,A,X(15),22,0x49b40821L);
243 /* Round 1 */ 245 /* Round 1 */
244 R1(A,B,C,D,X[ 1], 5,0xf61e2562L); 246 R1(A,B,C,D,X( 1), 5,0xf61e2562L);
245 R1(D,A,B,C,X[ 6], 9,0xc040b340L); 247 R1(D,A,B,C,X( 6), 9,0xc040b340L);
246 R1(C,D,A,B,X[11],14,0x265e5a51L); 248 R1(C,D,A,B,X(11),14,0x265e5a51L);
247 R1(B,C,D,A,X[ 0],20,0xe9b6c7aaL); 249 R1(B,C,D,A,X( 0),20,0xe9b6c7aaL);
248 R1(A,B,C,D,X[ 5], 5,0xd62f105dL); 250 R1(A,B,C,D,X( 5), 5,0xd62f105dL);
249 R1(D,A,B,C,X[10], 9,0x02441453L); 251 R1(D,A,B,C,X(10), 9,0x02441453L);
250 R1(C,D,A,B,X[15],14,0xd8a1e681L); 252 R1(C,D,A,B,X(15),14,0xd8a1e681L);
251 R1(B,C,D,A,X[ 4],20,0xe7d3fbc8L); 253 R1(B,C,D,A,X( 4),20,0xe7d3fbc8L);
252 R1(A,B,C,D,X[ 9], 5,0x21e1cde6L); 254 R1(A,B,C,D,X( 9), 5,0x21e1cde6L);
253 R1(D,A,B,C,X[14], 9,0xc33707d6L); 255 R1(D,A,B,C,X(14), 9,0xc33707d6L);
254 R1(C,D,A,B,X[ 3],14,0xf4d50d87L); 256 R1(C,D,A,B,X( 3),14,0xf4d50d87L);
255 R1(B,C,D,A,X[ 8],20,0x455a14edL); 257 R1(B,C,D,A,X( 8),20,0x455a14edL);
256 R1(A,B,C,D,X[13], 5,0xa9e3e905L); 258 R1(A,B,C,D,X(13), 5,0xa9e3e905L);
257 R1(D,A,B,C,X[ 2], 9,0xfcefa3f8L); 259 R1(D,A,B,C,X( 2), 9,0xfcefa3f8L);
258 R1(C,D,A,B,X[ 7],14,0x676f02d9L); 260 R1(C,D,A,B,X( 7),14,0x676f02d9L);
259 R1(B,C,D,A,X[12],20,0x8d2a4c8aL); 261 R1(B,C,D,A,X(12),20,0x8d2a4c8aL);
260 /* Round 2 */ 262 /* Round 2 */
261 R2(A,B,C,D,X[ 5], 4,0xfffa3942L); 263 R2(A,B,C,D,X( 5), 4,0xfffa3942L);
262 R2(D,A,B,C,X[ 8],11,0x8771f681L); 264 R2(D,A,B,C,X( 8),11,0x8771f681L);
263 R2(C,D,A,B,X[11],16,0x6d9d6122L); 265 R2(C,D,A,B,X(11),16,0x6d9d6122L);
264 R2(B,C,D,A,X[14],23,0xfde5380cL); 266 R2(B,C,D,A,X(14),23,0xfde5380cL);
265 R2(A,B,C,D,X[ 1], 4,0xa4beea44L); 267 R2(A,B,C,D,X( 1), 4,0xa4beea44L);
266 R2(D,A,B,C,X[ 4],11,0x4bdecfa9L); 268 R2(D,A,B,C,X( 4),11,0x4bdecfa9L);
267 R2(C,D,A,B,X[ 7],16,0xf6bb4b60L); 269 R2(C,D,A,B,X( 7),16,0xf6bb4b60L);
268 R2(B,C,D,A,X[10],23,0xbebfbc70L); 270 R2(B,C,D,A,X(10),23,0xbebfbc70L);
269 R2(A,B,C,D,X[13], 4,0x289b7ec6L); 271 R2(A,B,C,D,X(13), 4,0x289b7ec6L);
270 R2(D,A,B,C,X[ 0],11,0xeaa127faL); 272 R2(D,A,B,C,X( 0),11,0xeaa127faL);
271 R2(C,D,A,B,X[ 3],16,0xd4ef3085L); 273 R2(C,D,A,B,X( 3),16,0xd4ef3085L);
272 R2(B,C,D,A,X[ 6],23,0x04881d05L); 274 R2(B,C,D,A,X( 6),23,0x04881d05L);
273 R2(A,B,C,D,X[ 9], 4,0xd9d4d039L); 275 R2(A,B,C,D,X( 9), 4,0xd9d4d039L);
274 R2(D,A,B,C,X[12],11,0xe6db99e5L); 276 R2(D,A,B,C,X(12),11,0xe6db99e5L);
275 R2(C,D,A,B,X[15],16,0x1fa27cf8L); 277 R2(C,D,A,B,X(15),16,0x1fa27cf8L);
276 R2(B,C,D,A,X[ 2],23,0xc4ac5665L); 278 R2(B,C,D,A,X( 2),23,0xc4ac5665L);
277 /* Round 3 */ 279 /* Round 3 */
278 R3(A,B,C,D,X[ 0], 6,0xf4292244L); 280 R3(A,B,C,D,X( 0), 6,0xf4292244L);
279 R3(D,A,B,C,X[ 7],10,0x432aff97L); 281 R3(D,A,B,C,X( 7),10,0x432aff97L);
280 R3(C,D,A,B,X[14],15,0xab9423a7L); 282 R3(C,D,A,B,X(14),15,0xab9423a7L);
281 R3(B,C,D,A,X[ 5],21,0xfc93a039L); 283 R3(B,C,D,A,X( 5),21,0xfc93a039L);
282 R3(A,B,C,D,X[12], 6,0x655b59c3L); 284 R3(A,B,C,D,X(12), 6,0x655b59c3L);
283 R3(D,A,B,C,X[ 3],10,0x8f0ccc92L); 285 R3(D,A,B,C,X( 3),10,0x8f0ccc92L);
284 R3(C,D,A,B,X[10],15,0xffeff47dL); 286 R3(C,D,A,B,X(10),15,0xffeff47dL);
285 R3(B,C,D,A,X[ 1],21,0x85845dd1L); 287 R3(B,C,D,A,X( 1),21,0x85845dd1L);
286 R3(A,B,C,D,X[ 8], 6,0x6fa87e4fL); 288 R3(A,B,C,D,X( 8), 6,0x6fa87e4fL);
287 R3(D,A,B,C,X[15],10,0xfe2ce6e0L); 289 R3(D,A,B,C,X(15),10,0xfe2ce6e0L);
288 R3(C,D,A,B,X[ 6],15,0xa3014314L); 290 R3(C,D,A,B,X( 6),15,0xa3014314L);
289 R3(B,C,D,A,X[13],21,0x4e0811a1L); 291 R3(B,C,D,A,X(13),21,0x4e0811a1L);
290 R3(A,B,C,D,X[ 4], 6,0xf7537e82L); 292 R3(A,B,C,D,X( 4), 6,0xf7537e82L);
291 R3(D,A,B,C,X[11],10,0xbd3af235L); 293 R3(D,A,B,C,X(11),10,0xbd3af235L);
292 R3(C,D,A,B,X[ 2],15,0x2ad7d2bbL); 294 R3(C,D,A,B,X( 2),15,0x2ad7d2bbL);
293 R3(B,C,D,A,X[ 9],21,0xeb86d391L); 295 R3(B,C,D,A,X( 9),21,0xeb86d391L);
294 296
295 A = c->A += A; 297 A = c->A += A;
296 B = c->B += B; 298 B = c->B += B;