def try_credentials(self, domain, username, owned, secret, cred_type, data=None):
        """
        Try to login using the specified credentials and protocol.
        Possible login methods are:
            - plaintext (/kerberos)
            - NTLM-hash (/kerberos)
            - AES-key
        """
        if self.over_fail_limit(username):
            return False
        if self.args.continue_on_success and owned:
            return False
        # Enforcing FQDN for SMB if not using local authentication. Related issues/PRs: #26, #28, #24, #38
        if self.args.protocol == 'smb' and not self.args.local_auth and "." not in domain and not self.args.laps and secret != "" and not (self.domain.upper() == self.hostname.upper()) :
            self.logger.error(f"Domain {domain} for user {username.rstrip()} need to be FQDN ex:domain.local, not domain")
            return False

        with sem:
            if cred_type == 'plaintext':
                if self.args.kerberos:
                    return self.kerberos_login(domain, username, secret, '', '', self.kdcHost, False)
                elif hasattr(self.args, "domain"):  # Some protocolls don't use domain for login
                    return self.plaintext_login(domain, username, secret)
                elif self.args.protocol == 'ssh':
                    return self.plaintext_login(username, secret, data)
                else:
                    return self.plaintext_login(username, secret)
            elif cred_type == 'hash':
                if self.args.kerberos:
                    return self.kerberos_login(domain, username, '', secret, '', self.kdcHost, False)
                return self.hash_login(domain, username, secret)
            elif cred_type == 'aesKey':
                return self.kerberos_login(domain, username, '', '', secret, self.kdcHost, False)

        Try to login using the specified credentials and protocol.
        Possible login methods are:
            - plaintext (/kerberos)
            - NTLM-hash (/kerberos)
            - AES-key
        
cme/connection.py