Question: #include #include #include #include #define ROTL ( a , b ) ( ( ( a ) < < ( b ) ) | ( (
#include
#include
#include
#include
#define ROTLababab
#define ROTRababab
#define CHxyzx & y~x & z
#define MAJxyzx & yx & zy & z
#define SigmaxROTRx ROTRx ROTRx
#define SigmaxROTRx ROTRx ROTRx
#define sigmaxROTRx ROTRxx
#define sigmaxROTRx ROTRxx
#define ROTLababab
#define ROTRababab
#define sigmaxROTRx ROTRxx
#define sigmaxROTRx ROTRxx
#define SigmaxROTRx ROTRx ROTRx
#define SigmaxROTRx ROTRx ROTRx
void shaprocessunsigned int unsigned char;
void shaprocessunsigned int unsigned char;
void shaprocessunsigned long unsigned char ;
int testSHAint shatype, int numT;
int main int argc, char argv
int numofT;
testSHAnumofT;
testSHAnumofT;
testSHAnumofT;
exit;
void shamsgpadunsigned char message int size, unsigned int bitlen,
unsigned char paddedmsg
int i;
for i; i;
paddedmsg bitlen ;
paddedmsg bitlen ;
return;
void shamsgpadunsigned int bitlen, unsigned char paddedmsg
int i;
for i; i; i
paddedmsgix;
paddedmsg bitlen;
paddedmsg bitlen ;
paddedmsg bitlen ;
paddedmsg bitlen ;
return;
void shamdunsigned char message int size, unsigned int hash
unsigned int bitlen size;
hashx;
hashxEFCDAB;
hashxBADCFE;
hashx;
hashxCDEF;
int i;
unsigned char msgTBH; BYTE msg to be hashed
unsigned char paddedMessage; last msg block to be hashed
int Q size;
int R size;
unsigned char msgR;
memcpymsg &messageQ R sizeofunsigned char;
for i; i
memcpymsgTBH msg R sizeofunsigned char;
msgTBHRx;
for iR; i; i
msgTBHix;
shaprocesshash msgTBH;
shamsgpadbitlenpaddedMessage;
else
shamsgpadmsg R bitlen, paddedMessage;
shaprocesshash paddedMessage;
return;
void shaprocessunsigned int hash unsigned char msg
const unsigned int KxAxEDEBAxFBBCDCxCACD;
unsigned int W;
unsigned int A B C D E T;
int i;
fori ; i ; i
Wiunsigned msgi
unsigned msgi
unsigned msgi
unsigned msgi ;
fori ; i ; i
Wi Wi Wi Wi Wi;
Wi ROTLWi;
A hash;
B hash;
C hash;
D hash;
E hash;
fori ; i ; i
T ROTLAB & C~B & D E Wi K;
E D;
D C;
C ROTLB;
B A;
A T;
fori ; i ; i
T ROTLABCD E Wi
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
