docs: def get_key_for_enctype(self, etype):
  		"""
  		Returns the encryption key bytes for the enctryption type.
  		"""
  		if etype == EncryptionType.AES256_CTS_HMAC_SHA1_96:
  			if self.kerberos_key_aes_256:
  				return bytes.fromhex(self.kerberos_key_aes_256)
  			if self.password is not None:
  				salt = (self.domain.upper() + self.username).encode()
  				return string_to_key(Enctype.AES256, self.password.encode(), salt).contents
  			raise Exception('There is no key for AES256 encryption')
  		elif etype == EncryptionType.AES128_CTS_HMAC_SHA1_96:
  			if self.kerberos_key_aes_128:
  				return bytes.fromhex(self.kerberos_key_aes_128)
  			if self.password is not None:
  				salt = (self.domain.upper() + self.username).encode()
  				return string_to_key(Enctype.AES128, self.password.encode(), salt).contents
  			raise Exception('There is no key for AES128 encryption')
  		elif etype == EncryptionType.ARCFOUR_HMAC_MD5:
  			if self.kerberos_key_rc4:
  				return bytes.fromhex(self.kerberos_key_rc4)
  			if self.nt_hash:
  				return bytes.fromhex(self.nt_hash)
  			elif self.password:
  				self.nt_hash = hashlib.new('md4', self.password.encode('utf-16-le')).hexdigest().upper()
  				return bytes.fromhex(self.nt_hash)
  			else:
  				raise Exception('There is no key for RC4 encryption')
  		elif etype == EncryptionType.DES3_CBC_SHA1:
  			if self.kerberos_key_des3:
  				return bytes.fromhex(self.kerberos_key_des)
  			elif self.password:
  				salt = (self.domain.upper() + self.username).encode()
  				return string_to_key(Enctype.DES3, self.password.encode(), salt).contents
  			else:
  				raise Exception('There is no key for DES3 encryption')
  				
  		elif etype == EncryptionType.DES_CBC_MD5: #etype == EncryptionType.DES_CBC_CRC or etype == EncryptionType.DES_CBC_MD4 or 
  			if self.kerberos_key_des:
  				return bytes.fromhex(self.kerberos_key_des)
  			elif self.password:
  				salt = (self.domain.upper() + self.username).encode()
  				return string_to_key(Enctype.DES_MD5, self.password.encode(), salt).contents
  			else:
  				raise Exception('There is no key for DES3 encryption')
  		
  		else:
  			raise Exception('Unsupported encryption type: %s' % etype.name)