Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 363537
b: refs/heads/master
c: a51ff90
h: refs/heads/master
i:
  363535: 0770582
v: v3
  • Loading branch information
Joe Perches authored and Greg Kroah-Hartman committed Mar 19, 2013
1 parent 761faf9 commit b7bd591
Show file tree
Hide file tree
Showing 3 changed files with 87 additions and 87 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: fd0badb8edd3d59d226248d9f8aceca8b0aadb81
refs/heads/master: a51ff9058ca08a97b2e69dc70748a53eb144c3f8
166 changes: 83 additions & 83 deletions trunk/drivers/staging/vt6655/michael.c
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,11 @@

/*--------------------- Static Functions --------------------------*/
/*
static unsigned long s_dwGetUINT32(unsigned char *p); // Get unsigned long from 4 bytes LSByte first
static void s_vPutUINT32(unsigned char *p, unsigned long val); // Put unsigned long into 4 bytes LSByte first
static unsigned long s_dwGetUINT32(unsigned char *p); // Get unsigned long from 4 bytes LSByte first
static void s_vPutUINT32(unsigned char *p, unsigned long val); // Put unsigned long into 4 bytes LSByte first
*/
static void s_vClear(void); // Clear the internal message,
// resets the object to the state just after construction.
// resets the object to the state just after construction.
static void s_vSetKey(unsigned long dwK0, unsigned long dwK1);
static void s_vAppendByte(unsigned char b); // Add a single byte to the internal message

Expand All @@ -66,116 +66,116 @@ static unsigned int nBytesInM; // # bytes in M
/*--------------------- Export Functions --------------------------*/

/*
static unsigned long s_dwGetUINT32 (unsigned char *p)
static unsigned long s_dwGetUINT32 (unsigned char *p)
// Convert from unsigned char [] to unsigned long in a portable way
{
unsigned long res = 0;
unsigned int i;
for(i=0; i<4; i++ )
{
res |= (*p++) << (8*i);
}
return res;
unsigned long res = 0;
unsigned int i;
for (i=0; i<4; i++)
{
res |= (*p++) << (8 * i);
}
return res;
}
static void s_vPutUINT32 (unsigned char *p, unsigned long val)
// Convert from unsigned long to unsigned char [] in a portable way
{
unsigned int i;
for(i=0; i<4; i++ )
{
*p++ = (unsigned char) (val & 0xff);
val >>= 8;
}
unsigned int i;
for (i=0; i<4; i++)
{
*p++ = (unsigned char) (val & 0xff);
val >>= 8;
}
}
*/

static void s_vClear (void)
static void s_vClear(void)
{
// Reset the state to the empty message.
L = K0;
R = K1;
nBytesInM = 0;
M = 0;
// Reset the state to the empty message.
L = K0;
R = K1;
nBytesInM = 0;
M = 0;
}

static void s_vSetKey (unsigned long dwK0, unsigned long dwK1)
static void s_vSetKey(unsigned long dwK0, unsigned long dwK1)
{
// Set the key
K0 = dwK0;
K1 = dwK1;
// and reset the message
s_vClear();
// Set the key
K0 = dwK0;
K1 = dwK1;
// and reset the message
s_vClear();
}

static void s_vAppendByte (unsigned char b)
static void s_vAppendByte(unsigned char b)
{
// Append the byte to our word-sized buffer
M |= b << (8*nBytesInM);
nBytesInM++;
// Process the word if it is full.
if( nBytesInM >= 4 )
{
L ^= M;
R ^= ROL32( L, 17 );
L += R;
R ^= ((L & 0xff00ff00) >> 8) | ((L & 0x00ff00ff) << 8);
L += R;
R ^= ROL32( L, 3 );
L += R;
R ^= ROR32( L, 2 );
L += R;
// Clear the buffer
M = 0;
nBytesInM = 0;
}
// Append the byte to our word-sized buffer
M |= b << (8*nBytesInM);
nBytesInM++;
// Process the word if it is full.
if (nBytesInM >= 4)
{
L ^= M;
R ^= ROL32(L, 17);
L += R;
R ^= ((L & 0xff00ff00) >> 8) | ((L & 0x00ff00ff) << 8);
L += R;
R ^= ROL32(L, 3);
L += R;
R ^= ROR32(L, 2);
L += R;
// Clear the buffer
M = 0;
nBytesInM = 0;
}
}

void MIC_vInit (unsigned long dwK0, unsigned long dwK1)
void MIC_vInit(unsigned long dwK0, unsigned long dwK1)
{
// Set the key
s_vSetKey(dwK0, dwK1);
// Set the key
s_vSetKey(dwK0, dwK1);
}


void MIC_vUnInit (void)
void MIC_vUnInit(void)
{
// Wipe the key material
K0 = 0;
K1 = 0;
// Wipe the key material
K0 = 0;
K1 = 0;

// And the other fields as well.
//Note that this sets (L,R) to (K0,K1) which is just fine.
s_vClear();
// And the other fields as well.
//Note that this sets (L,R) to (K0,K1) which is just fine.
s_vClear();
}

void MIC_vAppend (unsigned char *src, unsigned int nBytes)
void MIC_vAppend(unsigned char *src, unsigned int nBytes)
{
// This is simple
while (nBytes > 0)
{
s_vAppendByte(*src++);
nBytes--;
}
// This is simple
while (nBytes > 0)
{
s_vAppendByte(*src++);
nBytes--;
}
}

void MIC_vGetMIC (unsigned long *pdwL, unsigned long *pdwR)
void MIC_vGetMIC(unsigned long *pdwL, unsigned long *pdwR)
{
// Append the minimum padding
s_vAppendByte(0x5a);
s_vAppendByte(0);
s_vAppendByte(0);
s_vAppendByte(0);
s_vAppendByte(0);
// and then zeroes until the length is a multiple of 4
while( nBytesInM != 0 )
{
s_vAppendByte(0);
}
// The s_vAppendByte function has already computed the result.
*pdwL = L;
*pdwR = R;
// Reset to the empty message.
s_vClear();
// Append the minimum padding
s_vAppendByte(0x5a);
s_vAppendByte(0);
s_vAppendByte(0);
s_vAppendByte(0);
s_vAppendByte(0);
// and then zeroes until the length is a multiple of 4
while (nBytesInM != 0)
{
s_vAppendByte(0);
}
// The s_vAppendByte function has already computed the result.
*pdwL = L;
*pdwR = R;
// Reset to the empty message.
s_vClear();
}

6 changes: 3 additions & 3 deletions trunk/drivers/staging/vt6655/michael.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,9 @@ void MIC_vGetMIC(unsigned long *pdwL, unsigned long *pdwR);
/*--------------------- Export Macros ------------------------------*/

// Rotation functions on 32 bit values
#define ROL32( A, n ) \
( ((A) << (n)) | ( ((A)>>(32-(n))) & ( (1UL << (n)) - 1 ) ) )
#define ROR32( A, n ) ROL32( (A), 32-(n) )
#define ROL32(A, n) \
(((A) << (n)) | (((A)>>(32-(n))) & ((1UL << (n)) - 1)))
#define ROR32(A, n) ROL32((A), 32-(n))

#endif //__MICHAEL_H__

Expand Down

0 comments on commit b7bd591

Please sign in to comment.