code: def _get_channel_bindings_value(server_certificate_hash):
          
          # Channel Binding Tokens support, used for NTLMv2
          # Decode the SHA256 certificate hash
          certificate_digest = base64.b16decode(server_certificate_hash)
  
          # Initialise the GssChannelBindingsStruct and add the certificate_digest to the application_data field
          gss_channel_bindings = GssChannelBindingsStruct()
          gss_channel_bindings[gss_channel_bindings.APPLICATION_DATA] = 'tls-server-end-point:'.encode() + certificate_digest
  
          # Get the gss_channel_bindings_struct and create an MD5 hash
          channel_bindings_struct_data = gss_channel_bindings.get_data()
          channel_bindings_hash = hashlib.md5(channel_bindings_struct_data).hexdigest()
  
          try:
              cbt_value = bytearray.fromhex(channel_bindings_hash)
          except TypeError:
              # Work-around for Python 2.6 bug
              cbt_value = bytearray.fromhex(unicode(channel_bindings_hash))
  
          channel_bindings = bytes(cbt_value)
          return channel_bindings
docs: https://msdn.microsoft.com/en-us/library/windows/desktop/dd919963%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396
          https://blogs.msdn.microsoft.com/openspecification/2013/03/26/ntlm-and-channel-binding-hash-aka-extended-protection-for-authentication/
  
          Get's the MD5 hash of the gss_channel_bindings_struct to add to the AV_PAIR MSV_AV_CHANNEL_BINDINGS.
          This method takes in the SHA256 hash (Hash of the DER encoded certificate of the server we are connecting to)
          and add's it to the gss_channel_bindings_struct. It then gets the MD5 hash and converts this to a
          byte array in preparation of adding it to the AV_PAIR structure.
  
          :param server_certificate_hash: The SHA256 hash of the server certificate (DER encoded) NTLM is authenticated to
          :return channel_bindings: An MD5 hash of the gss_channel_bindings_struct to add to the AV_PAIR MsvChannelBindings