src/Robin/Ntlm/Message/NtlmV2AuthenticateMessageEncoder.php
public function calculateNtProofString(HashCredentialInterface $hash_credential, $server_challenge_nonce, $blob)
    {
        $data_to_hash = ($server_challenge_nonce . $blob);

        $keyed_hasher = $this->crypt_hasher_factory->build(
            static::KEYED_HASHER_ALGORITHM,
            $hash_credential->getValue()
        );

        return $keyed_hasher->update($data_to_hash)->digest();
    }
public function calculateNtProofString(HashCredentialInterface $hash_credential, $server_challenge_nonce, $blob)
    {
        $data_to_hash = ($server_challenge_nonce . $blob);

        $keyed_hasher = $this->crypt_hasher_factory->build(
            static::KEYED_HASHER_ALGORITHM,
            $hash_credential->getValue()
        );

        return $keyed_hasher->update($data_to_hash)->digest();
    }
Calculates the NT "proof" string (known as "NtProofStr" in the official
documentation).

@param HashCredentialInterface $hash_credential The user's authentication
NT hash credential.
@param string $server_challenge_nonce The 64-bit (8-byte) unsigned
server-sent "nonce" (number used once) represented as a binary string.
@param string $blob The binary encoded "blob" string.
@return string The calculated NT "proof" string as a binary string.