anchor.diff:  
       Fm_hash: IHash;
       Fm_opad, Fm_ipad, Fm_key: THashLibByteArray;
  +    Fm_blocksize: Int32;
   
     strict protected
   
  
positive.code: begin
    Inherited Create(a_underlyingHash.HashSize, a_underlyingHash.BlockSize);
    Fm_hash := a_underlyingHash;
    System.SetLength(Fm_key, 0);
    System.SetLength(Fm_ipad, Fm_hash.BlockSize);
    System.SetLength(Fm_opad, Fm_hash.BlockSize);
  end;
  
  function THMACNotBuildInAdapter.GetKey: THashLibByteArray;
  
negative.code: procedure THMACNotBuildInAdapter.UpdatePads;
  var
    LKey: THashLibByteArray;
    Idx, LBlockSize: Int32;
  begin
    LBlockSize := Fm_hash.BlockSize;
    if (System.Length(Key) > LBlockSize) then
    begin
      LKey := Fm_hash.ComputeBytes(Key).GetBytes();
    end
  