use hash.h; fixes for crays
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@5693 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -42,15 +42,9 @@
|
||||
RCSID("$Id$");
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "hash.h"
|
||||
#include "md4.h"
|
||||
|
||||
#ifndef min
|
||||
#define min(a,b) (((a)>(b))?(b):(a))
|
||||
#endif
|
||||
|
||||
#define A m->counter[0]
|
||||
#define B m->counter[1]
|
||||
#define C m->counter[2]
|
||||
@@ -68,13 +62,7 @@ md4_init (struct md4 *m)
|
||||
A = 0x67452301;
|
||||
}
|
||||
|
||||
static inline u_int32_t
|
||||
cshift (u_int32_t x, unsigned int n)
|
||||
{
|
||||
return (x << n) | (x >> (32 - n));
|
||||
}
|
||||
|
||||
#define F(x,y,z) ((x & y) | (~x & z))
|
||||
#define F(x,y,z) CRAYFIX((x & y) | (~x & z))
|
||||
#define G(x,y,z) ((x & y) | (x & z) | (y & z))
|
||||
#define H(x,y,z) (x ^ y ^ z)
|
||||
|
||||
@@ -175,10 +163,9 @@ static inline u_int32_t
|
||||
swap_u_int32_t (u_int32_t t)
|
||||
{
|
||||
#if defined(WORDS_BIGENDIAN)
|
||||
#define ROL(x,n) ((x)<<(n))|((x)>>(32-(n)))
|
||||
u_int32_t temp1, temp2;
|
||||
|
||||
temp1 = ROL(t,16);
|
||||
temp1 = cshift(t, 16);
|
||||
temp2 = temp1 >> 8;
|
||||
temp1 &= 0x00ff00ff;
|
||||
temp2 &= 0x00ff00ff;
|
||||
@@ -197,30 +184,30 @@ struct x32{
|
||||
void
|
||||
md4_update (struct md4 *m, const void *v, size_t len)
|
||||
{
|
||||
const unsigned char *p = v;
|
||||
m->sz += len;
|
||||
while(len > 0){
|
||||
size_t l = min(len, 64 - m->offset);
|
||||
memcpy(m->save + m->offset, p, l);
|
||||
m->offset += l;
|
||||
p += l;
|
||||
len -= l;
|
||||
if(m->offset == 64){
|
||||
const unsigned char *p = v;
|
||||
m->sz += len;
|
||||
while(len > 0){
|
||||
size_t l = min(len, 64 - m->offset);
|
||||
memcpy(m->save + m->offset, p, l);
|
||||
m->offset += l;
|
||||
p += l;
|
||||
len -= l;
|
||||
if(m->offset == 64){
|
||||
#if defined(WORDS_BIGENDIAN)
|
||||
int i;
|
||||
u_int32_t current[16];
|
||||
struct x32 *u = (struct x32*)m->save;
|
||||
for(i = 0; i < 8; i++){
|
||||
current[2*i+0] = swap_u_int32_t(u[i].a);
|
||||
current[2*i+1] = swap_u_int32_t(u[i].b);
|
||||
}
|
||||
calc(m, current);
|
||||
int i;
|
||||
u_int32_t current[16];
|
||||
struct x32 *u = (struct x32*)m->save;
|
||||
for(i = 0; i < 8; i++){
|
||||
current[2*i+0] = swap_u_int32_t(u[i].a);
|
||||
current[2*i+1] = swap_u_int32_t(u[i].b);
|
||||
}
|
||||
calc(m, current);
|
||||
#else
|
||||
calc(m, (u_int32_t*)m->save);
|
||||
calc(m, (u_int32_t*)m->save);
|
||||
#endif
|
||||
m->offset = 0;
|
||||
m->offset = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
@@ -42,15 +42,9 @@
|
||||
RCSID("$Id$");
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "hash.h"
|
||||
#include "md5.h"
|
||||
|
||||
#ifndef min
|
||||
#define min(a,b) (((a)>(b))?(b):(a))
|
||||
#endif
|
||||
|
||||
#define A m->counter[0]
|
||||
#define B m->counter[1]
|
||||
#define C m->counter[2]
|
||||
@@ -68,16 +62,10 @@ md5_init (struct md5 *m)
|
||||
A = 0x67452301;
|
||||
}
|
||||
|
||||
static inline u_int32_t
|
||||
cshift (u_int32_t x, unsigned int n)
|
||||
{
|
||||
return (x << n) | (x >> (32 - n));
|
||||
}
|
||||
|
||||
#define F(x,y,z) ((x & y) | (~x & z))
|
||||
#define G(x,y,z) ((x & z) | (y & ~z))
|
||||
#define F(x,y,z) CRAYFIX((x & y) | (~x & z))
|
||||
#define G(x,y,z) CRAYFIX((x & z) | (y & ~z))
|
||||
#define H(x,y,z) (x ^ y ^ z)
|
||||
#define I(x,y,z) (y ^ (x | ~z))
|
||||
#define I(x,y,z) CRAYFIX(y ^ (x | ~z))
|
||||
|
||||
#define DOIT(a,b,c,d,k,s,i,OP) \
|
||||
a = b + cshift(a + OP(b,c,d) + X[k] + (i), s)
|
||||
@@ -199,10 +187,9 @@ static inline u_int32_t
|
||||
swap_u_int32_t (u_int32_t t)
|
||||
{
|
||||
#if defined(WORDS_BIGENDIAN)
|
||||
#define ROL(x,n) ((x)<<(n))|((x)>>(32-(n)))
|
||||
u_int32_t temp1, temp2;
|
||||
|
||||
temp1 = ROL(t,16);
|
||||
temp1 = cshift(t, 16);
|
||||
temp2 = temp1 >> 8;
|
||||
temp1 &= 0x00ff00ff;
|
||||
temp2 &= 0x00ff00ff;
|
||||
|
@@ -42,15 +42,9 @@
|
||||
RCSID("$Id$");
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "hash.h"
|
||||
#include "sha.h"
|
||||
|
||||
#ifndef min
|
||||
#define min(a,b) (((a)>(b))?(b):(a))
|
||||
#endif
|
||||
|
||||
#define A m->counter[0]
|
||||
#define B m->counter[1]
|
||||
#define C m->counter[2]
|
||||
@@ -70,13 +64,8 @@ sha_init (struct sha *m)
|
||||
E = 0xc3d2e1f0;
|
||||
}
|
||||
|
||||
static inline u_int32_t
|
||||
cshift (u_int32_t x, unsigned int n)
|
||||
{
|
||||
return (x << n) | (x >> (32 - n));
|
||||
}
|
||||
|
||||
#define F0(x,y,z) ((x & y) | (~x & z))
|
||||
#define F0(x,y,z) CRAYFIX((x & y) | (~x & z))
|
||||
#define F1(x,y,z) (x ^ y ^ z)
|
||||
#define F2(x,y,z) ((x & y) | (x & z) | (y & z))
|
||||
#define F3(x,y,z) F1(x,y,z)
|
||||
@@ -226,7 +215,7 @@ swap_u_int32_t (u_int32_t t)
|
||||
#define ROL(x,n) ((x)<<(n))|((x)>>(32-(n)))
|
||||
u_int32_t temp1, temp2;
|
||||
|
||||
temp1 = ROL(t,16);
|
||||
temp1 = cshift(t, 16);
|
||||
temp2 = temp1 >> 8;
|
||||
temp1 &= 0x00ff00ff;
|
||||
temp2 &= 0x00ff00ff;
|
||||
|
Reference in New Issue
Block a user