anchor.diff:     FillChar( k_opad, sizeof(k_ipad), 0 );
   
      if KeyLen > 64 then begin
  -	// if key is longer than 64 bytes reset it to key=SHA1(key)
  -	SHA1Reset ( Context);
  -	SHA1Input ( Context, PChar(@Key), KeyLen );
  -	SHA1Result( Context, Digest );
  -	// store key in pads
  -	Move( Digest, k_ipad, SHA1HashSize );
  -	Move( Digest, k_opad, SHA1HashSize );
  +    // if key is longer than 64 bytes reset it to key=SHA1(key)
  +    SHA1Reset ( Context);
  +    SHA1Input ( Context, PChar(@Key), KeyLen );
  +    SHA1Result( Context, Digest );
  +    // store key in pads
  +    Move( Digest, k_ipad, SHA1HashSize );
  +    Move( Digest, k_opad, SHA1HashSize );
      end else begin
  -	// store key in pads
  -	Move( Key, k_ipad, KeyLen );
  -	Move( Key, k_opad, KeyLen );
  +    // store key in pads
  +    Move( Key, k_ipad, KeyLen );
  +    Move( Key, k_opad, KeyLen );
      end;
   
      // XOR key with ipad and opad values
      for i:=0 to 63 do begin
  -	k_ipad[i] := k_ipad[i] xor $36;
  -	k_opad[i] := k_opad[i] xor $5c;
  +   k_ipad[i] := k_ipad[i] xor $36;
  +   k_opad[i] := k_opad[i] xor $5c;
      end;
   
      // perform inner SHA1
  
positive.code: end;
  
  function HMAC_SHA1_EX( const Data: String;
  			 const Key : String ): String;
  var  Digest: SHA1Digest;
  begin
     HMAC_SHA1( Data[1], length(Data), Key[1], length(Key), Digest );
  
negative.code: // Keyed SHA1 (HMAC-SHA1), RFC 2104
  
  
  procedure HMAC_SHA1(const Data; DataLen: Integer;
                      const Key;  KeyLen : Integer;
                      out   Digest       : SHA1Digest );
  var  k_ipad, k_opad: array[0..64] of Byte;
       Context: SHA1Context;
       i      : Integer;
  