src/Robin/Ntlm/Message/NtlmV2AuthenticateMessageEncoder.php
public function encodeBlob(DateTime $time, $client_challenge, $target_info)
    {
        $blob_data = '';

        $blob_data .= pack('C', static::BLOB_RESPONSE_VERSION);
        $blob_data .= pack('C', static::BLOB_HIGHEST_RESPONSE_VERSION);
        $blob_data .= pack('x6');
        $blob_data .= pack('V', $time->getTimestamp());
        $blob_data .= pack('x4'); // Null-pad the timestamp, we don't need microsecond precision
        $blob_data .= pack('a8', $client_challenge);
        $blob_data .= pack('x4');
        $blob_data .= pack('a*', $target_info);
        $blob_data .= pack('x4');

        return $blob_data;
    }
public function encodeBlob(DateTime $time, $client_challenge, $target_info)
    {
        $blob_data = '';

        $blob_data .= pack('C', static::BLOB_RESPONSE_VERSION);
        $blob_data .= pack('C', static::BLOB_HIGHEST_RESPONSE_VERSION);
        $blob_data .= pack('x6');
        $blob_data .= pack('V', $time->getTimestamp());
        $blob_data .= pack('x4'); // Null-pad the timestamp, we don't need microsecond precision
        $blob_data .= pack('a8', $client_challenge);
        $blob_data .= pack('x4');
        $blob_data .= pack('a*', $target_info);
        $blob_data .= pack('x4');

        return $blob_data;
    }
Encodes the "blob" (also known as "temp" in the official documentation).

This value is used in calculating/generating both the NT response and the
base session key.

@param DateTime $time The current time.
@param string $client_challenge A randomly generated 64-bit (8-byte)
unsigned client-generated binary string.
@param string $target_info The "TargetInfo" data sent by the server and
encoded in the server challenge.
@return string The encoded blob as a binary string.