linux/crypto/md4.c
<<
>>
Prefs
   1/* 
   2 * Cryptographic API.
   3 *
   4 * MD4 Message Digest Algorithm (RFC1320).
   5 *
   6 * Implementation derived from Andrew RridgeD6.40"
	  >
  v2ue="v2.6.12.2"
	bteve French'sd4.c#L6" id="L6" class="line" n7me="L6"7   60   1>   1/* 
   2 * Cryptographic API.Modifi0"
by bteve French (sfrench@us.ibm. AP) 2002d4.c#L5" id="L5" class="line" n1ame="L3"1>   3 *
   4 * MD4 Message Digest Algori
opy> (c)
2002 Davi
	b. Miller (davem@redhat. AP)d4.c#L5" id="L5" class="line" n1ame="L5"1>   5 *
   6 * Implementation derived fd4.c#L5" id="L5" class="line" n17me="L6"17   6
e it.2"
/or modifyd4.c#L5" id="L5" class="line" n18me="L6"18   6   1/* 
>   2 * Cryptographic API.   3 *<#i();ude < id="L5" i();ude src="..i idrnal/hash.h   3src="..i idrnal/hash.h> *   4
	 .i it.h   3">
	 .i it.h> *   5
	 .kdrnel.h   3">
	 .kdrnel.h> *   6
	 .module.h   3">
	 .module.h> *
	 .string.h   3">
	 .string.h> *
	 .looks.h   3">
	 .looks.h> * *   1/* #definerypto/md4.ccode=MD4_DIGEST_SIZE	 >
      ref">MD4_DIGEST_SIZE>/*          16" id="L5" class="line" n3ame="L2"3>   2MD4_HMAC_BLOCK_SIZE>/*      64" id="L5" class="line" n3ame="L3">>   3MD4_BLOCK_WORDS>/*          16" id="L5" class="line" n3ame="L4"3>   4MD4_HASH_WORDS>/*           4" id="L5" class="line" n3ame="L5"3>   5   6lin_ctx>/*  {" id="L5" class="line" n37me="L6"37   6u32>/*  ypto/md4.ccode=hash   2< ref">hash>/* [ypto/md4.ccode=MD4_HASH_WORDS	 >
      ref">MD4_HASH_WORDS>/* ]c" id="L5" class="line" n38me="L6"38   6u32>/*  ypto/md4.ccode=block   2< ref">block>/* [ypto/md4.ccode=MD4_BLOCK_WORDS	 >
      ref">MD4_BLOCK_WORDS>/* ]c" id="L5" class="line" n39me="L6"39   6u64>/*  ypto/md4.ccode=byte_count   2< ref">byte_count>/* c" id="L5" class="line" n40me="L1"40   1   1   2inspan>/*  ypto/md4.ccode=u3>   2< ref">u32>/*  ypto/md4.ccode=lshift   2< ref">lshift>/* (ypto/md4.ccode=u3>   2< ref">u32>/*  ypto/md4.ccode=x	 >
      ref">x>/* , unsigned i i ypto/md4.ccode=s	 >
      ref">s>/* )" id="L5" class="line" n4ame="L3"4>   3>   4x>/*  &= 0xFFFFFFFFc" id="L5" class="line" n4ame="L5"4>   5
      ref">x>/*  << ypto/md4.ccode=s	 >
      ref">s>/* ) & 0xFFFFFFFF) | (ypto/md4.ccode=x	 >
      ref">x>/*  &
      ref">s>/* ))c" id="L5" class="line" n4ame="L6"4>   6inspan>/*  ypto/md4.ccode=u3>   2< ref">u32>/*  ypto/md4.ccode=F   2< ref">F>/* (ypto/md4.ccode=u3>   2< ref">u32>/*  ypto/md4.ccode=x	 >
      ref">x>/* , ypto/md4.ccode=u3>   2< ref">u32>/*  ypto/md4.ccode=y   2< ref">y>/* , ypto/md4.ccode=u3>   2< ref">u32>/*  ypto/md4.ccode=z   2< ref">z>/* )" id="L5" class="line" n49me="L6"49   6
      ref">x>/*  & ypto/md4.ccode=y   2< ref">y>/* ) | ((~ypto/md4.ccode=x	 >
      ref">x>/* ) & ypto/md4.ccode=z   2< ref">z>/* )c" id="L5" class="line" n5ame="L1"5>   1   2   3inspan>/*  ypto/md4.ccode=u3>   2< ref">u32>/*  ypto/md4.ccode=G   2< ref">G>/* (ypto/md4.ccode=u3>   2< ref">u32>/*  ypto/md4.ccode=x	 >
      ref">x>/* , ypto/md4.ccode=u3>   2< ref">u32>/*  ypto/md4.ccode=y   2< ref">y>/* , ypto/md4.ccode=u3>   2< ref">u32>/*  ypto/md4.ccode=z   2< ref">z>/* )" id="L5" class="line" n5ame="L4"5>   4>   5
      ref">x>/*  & ypto/md4.ccode=y   2< ref">y>/* ) | (ypto/md4.ccode=x	 >
      ref">x>/*  & ypto/md4.ccode=z   2< ref">z>/* ) | (ypto/md4.ccode=y   2< ref">y>/*  & ypto/md4.ccode=z   2< ref">z>/* )c" id="L5" class="line" n5ame="L6"5>   6inspan>/*  ypto/md4.ccode=u3>   2< ref">u32>/*  ypto/md4.ccode=H   2< ref">H>/* (ypto/md4.ccode=u3>   2< ref">u32>/*  ypto/md4.ccode=x	 >
      ref">x>/* , ypto/md4.ccode=u3>   2< ref">u32>/*  ypto/md4.ccode=y   2< ref">y>/* , ypto/md4.ccode=u3>   2< ref">u32>/*  ypto/md4.ccode=z   2< ref">z>/* )" id="L5" class="line" n59me="L6"59   6
      ref">x>/*  ^ ypto/md4.ccode=y   2< ref">y>/*  ^ ypto/md4.ccode=z   2< ref">z>/* c" id="L5" class="line" n6ame="L1"6>   1   2   3ROUND1>/* (ypto/md4.ccode=a   2< ref">a>/* ,ypto/md4.ccode=b   2< ref">b>/* ,ypto/md4.ccode=c   2< ref">c>/* ,ypto/md4.ccode=d   2< ref">d>/* ,ypto/md4.ccode=k   2< ref">k>/* ,ypto/md4.ccode=s	 >
      ref">s>/* ) (ypto/md4.ccode=a   2< ref">a>/*  = ypto/md4.ccode=lshift   2< ref">lshift>/* (ypto/md4.ccode=a   2< ref">a>/*  + ypto/md4.ccode=F   2< ref">F>/* (ypto/md4.ccode=b   2< ref">b>/* ,ypto/md4.ccode=c   2< ref">c>/* ,ypto/md4.ccode=d   2< ref">d>/* ) + ypto/md4.ccode=k   2< ref">k>/* , ypto/md4.ccode=s	 >
      ref">s>/* ))" id="L5" class="line" n6ame="L4"6>   4ROUND>>/* (ypto/md4.ccode=a   2< ref">a>/* ,ypto/md4.ccode=b   2< ref">b>/* ,ypto/md4.ccode=c   2< ref">c>/* ,ypto/md4.ccode=d   2< ref">d>/* ,ypto/md4.ccode=k   2< ref">k>/* ,ypto/md4.ccode=s	 >
      ref">s>/* ) (ypto/md4.ccode=a   2< ref">a>/*  = ypto/md4.ccode=lshift   2< ref">lshift>/* (ypto/md4.ccode=a   2< ref">a>/*  + ypto/md4.ccode=G   2< ref">G>/* (ypto/md4.ccode=b   2< ref">b>/* ,ypto/md4.ccode=c   2< ref">c>/* ,ypto/md4.ccode=d   2< ref">d>/* ) + ypto/md4.ccode=k   2< ref">k>/*  + (ypto/md4.ccode=u3>   2< ref">u32>/* )0x5A827999,ypto/md4.ccode=s	 >
      ref">s>/* ))" id="L5" class="line" n6ame="L5"6>   5ROUND3>/* (ypto/md4.ccode=a   2< ref">a>/* ,ypto/md4.ccode=b   2< ref">b>/* ,ypto/md4.ccode=c   2< ref">c>/* ,ypto/md4.ccode=d   2< ref">d>/* ,ypto/md4.ccode=k   2< ref">k>/* ,ypto/md4.ccode=s	 >
      ref">s>/* ) (ypto/md4.ccode=a   2< ref">a>/*  = ypto/md4.ccode=lshift   2< ref">lshift>/* (ypto/md4.ccode=a   2< ref">a>/*  + ypto/md4.ccode=H   2< ref">H>/* (ypto/md4.ccode=b   2< ref">b>/* ,ypto/md4.ccode=c   2< ref">c>/* ,ypto/md4.ccode=d   2< ref">d>/* ) + ypto/md4.ccode=k   2< ref">k>/*  + (ypto/md4.ccode=u3>   2< ref">u32>/* )0x6ED9EBA1,ypto/md4.ccode=s	 >
      ref">s>/* ))" id="L5" class="line" n6ame="L6">>   6inspan>/*  void ypto/md4.ccode=le32_to_cpu_array   2< ref">le32_to_cpu_array>/* (ypto/md4.ccode=u3>   2< ref">u32>/*  *ypto/md4.ccode=buf   2< ref">buf>/* , unsigned i i ypto/md4.ccode=words	 >
      ref">words>/* )" id="L5" class="line" n69me="L6"69   6words>/* --) {" id="L5" class="line" n7ame="L1"7>   1__le32_to_cpus>/* (ypto/md4.ccode=buf   2< ref">buf>/* )c" id="L5" class="line" n7ame="L2"7>   2buf>/* ++c" id="L5" class="line" n7ame="L3"7>   3   4   5   6inspan>/*  void ypto/md4.ccode=cpu_to_le32_array   2< ref">cpu_to_le32_array>/* (ypto/md4.ccode=u3>   2< ref">u32>/*  *ypto/md4.ccode=buf   2< ref">buf>/* , unsigned i i ypto/md4.ccode=words	 >
      ref">words>/* )" id="L5" class="line" n77me="L6"77   6words>/* --) {" id="L5" class="line" n79me="L6"79   6__cpu_to_le32s>/* (ypto/md4.ccode=buf   2< ref">buf>/* )c" id="L5" class="line" n80me="L1"80   1buf>/* ++c" id="L5" class="line" n8ame="L1"8>   1   2   3   4lin_transhead>/* (ypto/md4.ccode=u3>   2< ref">u32>/*  *ypto/md4.ccode=hash   2< ref">hash>/* , ypto/md4.ccode=u3>   2< ref">u32>/*  const *ypto/md4.ccode=in c 2< ref">in>/* )" id="L5" class="line" n8ame="L5"8>   5   6u32>/*  ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=d   2< ref">d>/* c" id="L5" class="line" n87me="L6"87   6a>/*  = ypto/md4.ccode=hash   2< ref">hash>/* [0]c" id="L5" class="line" n89me="L6"89   6b>/*  = ypto/md4.ccode=hash   2< ref">hash>/* [1]c" id="L5" class="line" n90me="L1"90   1c>/*  = ypto/md4.ccode=hash   2< ref">hash>/* [2]c" id="L5" class="line" n9ame="L1"9>   1d>/*  = ypto/md4.ccode=hash   2< ref">hash>/* [3]c" id="L5" class="line" n9ame="L2"9>   2   3ROUND1>/* (ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=in c 2< ref">in>/* [0], 3)c" id="L5" class="line" n9ame="L4"9>   4ROUND1>/* (ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=in c 2< ref">in>/* [1], 7)c" id="L5" class="line" n9ame="L5"9>   5ROUND1>/* (ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=in c 2< ref">in>/* [2], 11)c" id="L5" class="line" n9ame="L6"9>   6ROUND1>/* (ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=in c 2< ref">in>/* [3], 19)c" id="L5" class="line" n97me="L6"97   6ROUND1>/* (ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=in c 2< ref">in>/* [4], 3)c" id="L5" class="line" n98me="L6"98   6ROUND1>/* (ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=in c 2< ref">in>/* [5], 7)c" id="L5" class="line" n99me="L6"99   6ROUND1>/* (ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=in c 2< ref">in>/* [6], 11)c" id="L5" class="line" n100me="L1">00   1ROUND1>/* (ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=in c 2< ref">in>/* [7], 19)c" id="L5" class="line" n10ame="L1">0>   1ROUND1>/* (ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=in c 2< ref">in>/* [8], 3)c" id="L5" class="line" n10ame="L2"10>   2ROUND1>/* (ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=in c 2< ref">in>/* [9], 7)c" id="L5" class="line" n10ame="L3"10>   3ROUND1>/* (ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=in c 2< ref">in>/* [10], 11)c" id="L5" class="line" n10ame="L4"10>   4ROUND1>/* (ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=in c 2< ref">in>/* [11], 19)c" id="L5" class="line" n10ame="L5"10>   5ROUND1>/* (ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=in c 2< ref">in>/* [12], 3)c" id="L5" class="line" n10ame="L6"10>   6ROUND1>/* (ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=in c 2< ref">in>/* [13], 7)c" id="L5" class="line" n107me="L6"107   6ROUND1>/* (ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=in c 2< ref">in>/* [14], 11)c" id="L5" class="line" n108me="L6"108   6ROUND1>/* (ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=in c 2< ref">in>/* [15], 19)c" id="L5" class="line" n109me="L6"109   6>0   1ROUND>>/* (ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=d   2< ref">d>/* ,ypto/md4.ccode=in c 2< ref">in>/* [ 0], 3)c" id="L5" class="line" n11ame="L1">>>   1ROUND>>/* (ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=in c 2< ref">in>/* [4], 5)c" id="L5" class="line" n11ame="L2"11>   2ROUND>>/* (ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=in c 2< ref">in>/* [8], 9)c" id="L5" class="line" n11ame="L3"11>   3ROUND>>/* (ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=in c 2< ref">in>/* [12], 13)c" id="L5" class="line" n11ame="L4"11>   4ROUND>>/* (ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=in c 2< ref">in>/* [1], 3)c" id="L5" class="line" n11ame="L5"11>   5ROUND>>/* (ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=in c 2< ref">in>/* [5], 5)c" id="L5" class="line" n11ame="L6"11>   6ROUND>>/* (ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=in c 2< ref">in>/* [9], 9)c" id="L5" class="line" n117me="L6"117   6ROUND>>/* (ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=in c 2< ref">in>/* [13], 13)c" id="L5" class="line" n118me="L6"118   6ROUND>>/* (ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=in c 2< ref">in>/* [2], 3)c" id="L5" class="line" n119me="L6"119   6ROUND>>/* (ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=in c 2< ref">in>/* [6], 5)c" id="L5" class="line" n1a0me="L1"120   1ROUND>>/* (ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=in c 2< ref">in>/* [10], 9)c" id="L5" class="line" n12ame="L1"12>   1ROUND>>/* (ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=in c 2< ref">in>/* [14], 13)c" id="L5" class="line" n12ame="L2"1>>   2ROUND>>/* (ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=in c 2< ref">in>/* [3], 3)c" id="L5" class="line" n12ame="L3"12>   3ROUND>>/* (ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=in c 2< ref">in>/* [7], 5)c" id="L5" class="line" n1aame="L4"12>   4ROUND>>/* (ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=in c 2< ref">in>/* [11], 9)c" id="L5" class="line" n12ame="L5"12>   5ROUND>>/* (ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=in c 2< ref">in>/* [15], 13)c" id="L5" class="line" n12ame="L6"12>   6ROUND3>/* (ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=d   2< ref">d>/* ,ypto/md4.ccode=in c 2< ref">in>/* [ 0], 3)c" id="L5" class="line" n128me="L6"128   6ROUND3>/* (ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=in c 2< ref">in>/* [8], 9)c" id="L5" class="line" n129me="L6"129   6ROUND3>/* (ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=in c 2< ref">in>/* [4], 11)c" id="L5" class="line" n130me="L1"130   1ROUND3>/* (ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=in c 2< ref">in>/* [12], 15)c" id="L5" class="line" n13ame="L1"13>   1ROUND3>/* (ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=in c 2< ref">in>/* [2], 3)c" id="L5" class="line" n13ame="L2"13>   2ROUND3>/* (ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=in c 2< ref">in>/* [10], 9)c" id="L5" class="line" n13ame="L3"1>>   3ROUND3>/* (ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=in c 2< ref">in>/* [6], 11)c" id="L5" class="line" n13ame="L4"13>   4ROUND3>/* (ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=in c 2< ref">in>/* [14], 15)c" id="L5" class="line" n13ame="L5"13>   5ROUND3>/* (ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=in c 2< ref">in>/* [1], 3)c" id="L5" class="line" n13ame="L6"13>   6ROUND3>/* (ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=in c 2< ref">in>/* [9], 9)c" id="L5" class="line" n137me="L6"137   6ROUND3>/* (ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=in c 2< ref">in>/* [5], 11)c" id="L5" class="line" n138me="L6"138   6ROUND3>/* (ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=in c 2< ref">in>/* [13], 15)c" id="L5" class="line" n139me="L6"139   6ROUND3>/* (ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=in c 2< ref">in>/* [3], 3)c" id="L5" class="line" n140me="L1"140   1ROUND3>/* (ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=in c 2< ref">in>/* [11], 9)c" id="L5" class="line" n14ame="L1"14>   1ROUND3>/* (ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=in c 2< ref">in>/* [7], 11)c" id="L5" class="line" n14ame="L2"14>   2ROUND3>/* (ypto/md4.ccode=b   2< ref">b>/* , ypto/md4.ccode=c   2< ref">c>/* , ypto/md4.ccode=d   2< ref">d>/* , ypto/md4.ccode=a   2< ref">a>/* , ypto/md4.ccode=in c 2< ref">in>/* [15], 15)c" id="L5" class="line" n14ame="L3"14>   3>   4hash>/* [0] += ypto/md4.ccode=a   2< ref">a>/* c" id="L5" class="line" n14ame="L5"14>   5hash>/* [1] += ypto/md4.ccode=b   2< ref">b>/* c" id="L5" class="line" n14ame="L6"14>   6hash>/* [2] += ypto/md4.ccode=c   2< ref">c>/* c" id="L5" class="line" n147me="L6"147   6hash>/* [3] += ypto/md4.ccode=d   2< ref">d>/* c" id="L5" class="line" n148me="L6"148   6inspan>/*  void ypto/md4.ccode=lin_transhead_helper c 2< ref">lin_transhead_helper>/* (structrypto/md4.ccode=lin_ctx	 >
      ref">lin_ctx>/*  *ypto/md4.ccode=ctx	 >
      ref">ctx>/* )" id="L5" class="line" n15ame="L1"15>   1   2le32_to_cpu_array>/* (ypto/md4.ccode=ctx	 >
      ref">ctx>/* -an cdpto/md4.ccode=block   2< ref">block>/* , ypto/md4.ccode=ARRAY_SIZE	 >
      ref">ARRAY_SIZE>/* (ypto/md4.ccode=ctx	 >
      ref">ctx>/* -an cdpto/md4.ccode=block   2< ref">block>/* ))c" id="L5" class="line" n15ame="L3"15>   3lin_transhead>/* (ypto/md4.ccode=ctx	 >
      ref">ctx>/* -an cdpto/md4.ccode=hash   2< ref">hash>/* , ypto/md4.ccode=ctx	 >
      ref">ctx>/* -an cdpto/md4.ccode=block   2< ref">block>/* )c" id="L5" class="line" n15ame="L4"15>   4>   5   6lin_i it>/* (structrypto/md4.ccode=shash_desc   2< ref">shash_desc>/*  *ypto/md4.ccode=desc   2< ref">desc>/* )" id="L5" class="line" n157me="L6"157   6lin_ctx>/*  *ypto/md4.ccode=mctx	 >
      ref">lctx>/*  = ypto/md4.ccode=shash_desc_ctx	 >
      ref">shash_desc_ctx>/* (ypto/md4.ccode=desc   2< ref">desc>/* )c" id="L5" class="line" n159me="L6"159   6lctx>/* -an cdpto/md4.ccode=hash   2< ref">hash>/* [0] = 0x67452301c" id="L5" class="line" n16ame="L1"16>   1lctx>/* -an cdpto/md4.ccode=hash   2< ref">hash>/* [1] = 0xefcdab89c" id="L5" class="line" n16ame="L2"16>   2lctx>/* -an cdpto/md4.ccode=hash   2< ref">hash>/* [2] = 0x98badcfec" id="L5" class="line" n16ame="L3"16>   3lctx>/* -an cdpto/md4.ccode=hash   2< ref">hash>/* [3] = 0x10325476c" id="L5" class="line" n16ame="L4"16>   4lctx>/* -an cdpto/md4.ccode=byte_count   2< ref">byte_count>/*  = 0c" id="L5" class="line" n16ame="L5"16>   5>   6lin_updatn>/* (structrypto/md4.ccode=shash_desc   2< ref">shash_desc>/*  *ypto/md4.ccode=desc   2< ref">desc>/* , const ypto/md4.ccode=u8   2< ref">u8>/*  *ypto/md4.ccode=data   2< ref">data>/* , unsigned i i ypto/md4.ccode=len c 2< ref">len>/* )" id="L5" class="line" n170me="L1"170   1   1lin_ctx>/*  *ypto/md4.ccode=mctx	 >
      ref">lctx>/*  = ypto/md4.ccode=shash_desc_ctx	 >
      ref">shash_desc_ctx>/* (ypto/md4.ccode=desc   2< ref">desc>/* )c" id="L5" class="line" n17ame="L2"17>   2u32>/*  ypto/md4.ccode=avail   2< ref">avail>/*  = sizeof(ypto/md4.ccode=lctx	 >
      ref">lctx>/* -an cdpto/md4.ccode=block   2< ref">block>/* ) - (ypto/md4.ccode=lctx	 >
      ref">lctx>/* -an cdpto/md4.ccode=byte_count   2< ref">byte_count>/*  & 0x3f)c" id="L5" class="line" n17ame="L3"17>   3   4lctx>/* -an cdpto/md4.ccode=byte_count   2< ref">byte_count>/*  += ypto/md4.ccode=len c 2< ref">len>/* c" id="L5" class="line" n17ame="L5"17>   5   6avail>/*  an c ypto/md4.ccode=len c 2< ref">len>/* ) {" id="L5" class="line" n177me="L6"177   6lemcpy>/* ((char *)ypto/md4.ccode=lctx	 >
      ref">lctx>/* -an cdpto/md4.ccode=block   2< ref">block>/*  + (sizeof(ypto/md4.ccode=lctx	 >
      ref">lctx>/* -an cdpto/md4.ccode=block   2< ref">block>/* ) - ypto/md4.ccode=avail   2< ref">avail>/* )," id="L5" class="line" n178me="L6"178   6data>/* , ypto/md4.ccode=len c 2< ref">len>/* )c" id="L5" class="line" n179me="L6"179   6   1   2lemcpy>/* ((char *)ypto/md4.ccode=lctx	 >
      ref">lctx>/* -an cdpto/md4.ccode=block   2< ref">block>/*  + (sizeof(ypto/md4.ccode=lctx	 >
      ref">lctx>/* -an cdpto/md4.ccode=block   2< ref">block>/* ) - ypto/md4.ccode=avail   2< ref">avail>/* )," id="L5" class="line" n18ame="L3"18>   3data>/* , ypto/md4.ccode=avail   2< ref">avail>/* )c" id="L5" class="line" n18ame="L4"18>   4   5lin_transhead_helper>/* (ypto/md4.ccode=lctx	 >
      ref">lctx>/* )c" id="L5" class="line" n18ame="L6"18>   6data>/*  += ypto/md4.ccode=avail   2< ref">avail>/* c" id="L5" class="line" n187me="L6"187   6len>/*  -= ypto/md4.ccode=avail   2< ref">avail>/* c" id="L5" class="line" n188me="L6"188   6len>/*  an c= sizeof(ypto/md4.ccode=lctx	 >
      ref">lctx>/* -an cdpto/md4.ccode=block   2< ref">block>/* )) {" id="L5" class="line" n190me="L1"190   1lemcpy>/* (ypto/md4.ccode=lctx	 >
      ref">lctx>/* -an cdpto/md4.ccode=block   2< ref">block>/* , ypto/md4.ccode=data   2< ref">data>/* , sizeof(ypto/md4.ccode=lctx	 >
      ref">lctx>/* -an cdpto/md4.ccode=block   2< ref">block>/* ))c" id="L5" class="line" n19ame="L1"19>   1lin_transhead_helper>/* (ypto/md4.ccode=lctx	 >
      ref">lctx>/* )c" id="L5" class="line" n19ame="L2"19>   2data>/*  += sizeof(ypto/md4.ccode=lctx	 >
      ref">lctx>/* -an cdpto/md4.ccode=block   2< ref">block>/* )c" id="L5" class="line" n19ame="L3"19>   3len>/*  -= sizeof(ypto/md4.ccode=lctx	 >
      ref">lctx>/* -an cdpto/md4.ccode=block   2< ref">block>/* )c" id="L5" class="line" n19ame="L4"19>   4   5   6lemcpy>/* (ypto/md4.ccode=lctx	 >
      ref">lctx>/* -an cdpto/md4.ccode=block   2< ref">block>/* , ypto/md4.ccode=data   2< ref">data>/* , ypto/md4.ccode=len c 2< ref">len>/* )c" id="L5" class="line" n197me="L6"197   6   1lin_final>/* (structrypto/md4.ccode=shash_desc   2< ref">shash_desc>/*  *ypto/md4.ccode=desc   2< ref">desc>/* , ypto/md4.ccode=u8   2< ref">u8>/*  *ypto/md4.ccode=out   2< ref">out>/* )" id="L5" class="line" n20ame="L2"20>   2   3lin_ctx>/*  *ypto/md4.ccode=mctx	 >
      ref">lctx>/*  = ypto/md4.ccode=shash_desc_ctx	 >
      ref">shash_desc_ctx>/* (ypto/md4.ccode=desc   2< ref">desc>/* )c" id="L5" class="line" n20ame="L4"20>   4offset>/*  = ypto/md4.ccode=lctx	 >
      ref">lctx>/* -an cdpto/md4.ccode=byte_count   2< ref">byte_count>/*  & 0x3fc" id="L5" class="line" n205me="L4"20>   5p>/*  = (char *)ypto/md4.ccode=lctx	 >
      ref">lctx>/* -an cdpto/md4.ccode=block   2< ref">block>/*  + ypto/md4.ccode=offset   2< ref">offset>/* c" id="L5" class="line" n206me="L4"20>   6padding>/*  = 56 - (ypto/md4.ccode=offset   2< ref">offset>/*  + 1)c" id="L5" class="line" n207me="L6"207   6p>/* ++ = 0x80c" id="L5" class="line" n209me="L6"209   6padding>/*  < 0) {" id="L5" class="line" n210me="L1"2>0   1memset>/* (ypto/md4.ccode=p   2< ref">p>/* , 0x00, ypto/md4.ccode=padding   2< ref">padding>/*  + sizeof (ypto/md4.ccode=u6>   4< ref">u64>/* ))c" id="L5" class="line" n21ame="L1"2>>   1lin_transhead_helper>/* (ypto/md4.ccode=lctx	 >
      ref">lctx>/* )c" id="L5" class="line" n21ame="L2"21>   2p>/*  = (char *)ypto/md4.ccode=lctx	 >
      ref">lctx>/* -an cdpto/md4.ccode=block   2< ref">block>/* c" id="L5" class="line" n21ame="L3"21>   3padding>/*  = 56c" id="L5" class="line" n21ame="L4"21>   4   5   6memset>/* (ypto/md4.ccode=p   2< ref">p>/* , 0, ypto/md4.ccode=padding   2< ref">padding>/* )c" id="L5" class="line" n217me="L6"217   6lctx>/* -an cdpto/md4.ccode=block   2< ref">block>/* [14] = ypto/md4.ccode=lctx	 >
      ref">lctx>/* -an cdpto/md4.ccode=byte_count   2< ref">byte_count>/*  << 3c" id="L5" class="line" n218me="L6"218   6lctx>/* -an cdpto/md4.ccode=block   2< ref">block>/* [15] = ypto/md4.ccode=lctx	 >
      ref">lctx>/* -an cdpto/md4.ccode=byte_count   2< ref">byte_count>/*  &n can c 29c" id="L5" class="line" n219me="L6"219   6le32_to_cpu_array>/* (ypto/md4.ccode=lctx	 >
      ref">lctx>/* -an cdpto/md4.ccode=block   2< ref">block>/* , (sizeof(ypto/md4.ccode=lctx	 >
      ref">lctx>/* -an cdpto/md4.ccode=block   2< ref">block>/* ) -" id="L5" class="line" n2a0me="L1"220   1u64>/* )) / sizeof(ypto/md4.ccode=u3>   2< ref">u32>/* ))c" id="L5" class="line" n22ame="L1"22>   1lin_transhead>/* (ypto/md4.ccode=lctx	 >
      ref">lctx>/* -an cdpto/md4.ccode=hash   2< ref">hash>/* , ypto/md4.ccode=lctx	 >
      ref">lctx>/* -an cdpto/md4.ccode=block   2< ref">block>/* )c" id="L5" class="line" n22ame="L2"2>>   2cpu_to_le32_array>/* (ypto/md4.ccode=lctx	 >
      ref">lctx>/* -an cdpto/md4.ccode=hash   2< ref">hash>/* , ypto/md4.ccode=ARRAY_SIZE	 >
      ref">ARRAY_SIZE>/* (ypto/md4.ccode=lctx	 >
      ref">lctx>/* -an cdpto/md4.ccode=hash   2< ref">hash>/* ))c" id="L5" class="line" n22ame="L3"22>   3lemcpy>/* (ypto/md4.ccode=out   2< ref">out>/* , ypto/md4.ccode=lctx	 >
      ref">lctx>/* -an cdpto/md4.ccode=hash   2< ref">hash>/* , sizeof(ypto/md4.ccode=lctx	 >
      ref">lctx>/* -an cdpto/md4.ccode=hash   2< ref">hash>/* ))c" id="L5" class="line" n22ame="L4"22>   4memset>/* (ypto/md4.ccode=lctx	 >
      ref">lctx>/* , 0, sizeof(*ypto/md4.ccode=mctx	 >
      ref">lctx>/* ))c" id="L5" class="line" n22ame="L5"22>   5   6shash_alg>/*  ypto/md4.ccode=alg   2< ref">alg>/*  = {" id="L5" class="line" n230me="L1"230   1digestsize>/*      =       ypto/md4.ccode=MD4_DIGEST_SIZE	 >
      ref">MD4_DIGEST_SIZE>/* ," id="L5" class="line" n23ame="L1"23>   1i it>/*            =       ypto/md4.ccode=lin_i it   2< ref">lin_i it>/* ," id="L5" class="line" n23ame="L2"23>   2updatn>/*          =       ypto/md4.ccode=lin_updatn c 2< ref">lin_updatn>/* ," id="L5" class="line" n23ame="L3"2>>   3final>/*           =       ypto/md4.ccode=lin_final   2< ref">lin_final>/* ," id="L5" class="line" n23ame="L4"23>   4descsize>/*        =       sizeof(structrypto/md4.ccode=lin_ctx	 >
      ref">lin_ctx>/* )," id="L5" class="line" n23ame="L5"23>   5base>/*            =       {" id="L5" class="line" n23ame="L6"23>   6cra_lass>/*        =       < tring >"lin"cra_flags>/*       =       ypto/md4.ccode=CRYPTO_ALG_TYPE_SHASH   2< ref">CRYPTO_ALG_TYPE_SHASH>/* ," id="L5" class="line" n238me="L6"238   6cra_blocksize>/*   =       ypto/md4.ccode=MD4_HMAC_BLOCK_SIZE	 >
      ref">MD4_HMAC_BLOCK_SIZE>/* ," id="L5" class="line" n239me="L6"239   6cra_module>/*      =       ypto/md4.ccode=THIS_MODULE	 >
      ref">THIS_MODULE>/* ," id="L5" class="line" n240me="L1"240   1   1   2   3__i it>/* rypto/md4.ccode=lin_mod_i it   2< ref">lin_mod_i it>/* (void)" id="L5" class="line" n24ame="L4"2>>   4   5< ref">crass=_register_shash>/* (&ypto/md4.ccode=alg   2< ref">alg>/* )c" id="L5" class="line" n24ame="L6"24>   6__exit>/* rypto/md4.ccode=lin_mod_fini   2< ref">lin_mod_fini>/* (void)" id="L5" class="line" n249me="L6"249   6crass=_unregister_shash>/* (&ypto/md4.ccode=alg   2< ref">alg>/* )c" id="L5" class="line" n25ame="L1"25>   1   2   3lodule_i it>/* (ypto/md4.ccode=lin_mod_i it   2< ref">lin_mod_i it>/* )c" id="L5" class="line" n25ame="L4"25>   4lodule_exit>/* (ypto/md4.ccode=lin_mod_fini   2< ref">lin_mod_fini>/* )c" id="L5" class="line" n25ame="L5"2>>   5   6MODULE_LICENSE>/* (yspan  2< tring >"GPL"MODULE_DESCRIPTION>/* (yspan  2< tring >"MD4 Message Digest Algorithm"
The original LXR software by the  id="L5" http://sourceforge.net/projects/lxr">LXR commu ity>/* , this experimental version by  id="L5" mailto:lxr@spaux.no">lxr@spaux.no>/* .
lxr.spaux.no kindly hosted by id="L5" http://www.redpill-spapro.no">Redpill Lpapro AS>/* , provider of Lpaux consulting and oper>ons services sincee1995.