docs: def add_tgs(self, tgs_rep, enc_tgs_rep_part, override_pp = False): #from AS_REP
  		"""
  		Creates credential object from the TGS and adds to the ccache file
  		The TGS is the native representation of the asn1 encoded TGS_REP data when the user requests a tgs to a specific service principal with a valid TGT
  		
  		This function doesn't do decryption of the encrypted part of the tgs_rep object, it is expected that the decrypted XXX is supplied in enc_as_rep_part
  		
  		override_pp: bool to determine if client principal should be used as the primary principal for the ccache file
  		"""
  		c = Credential()
  		c.client = CCACHEPrincipal.from_asn1(tgs_rep['cname'], tgs_rep['crealm'])
  		if override_pp == True:
  			self.primary_principal = c.client
  		c.server = CCACHEPrincipal.from_asn1(enc_tgs_rep_part['sname'], enc_tgs_rep_part['srealm'])
  		c.time = Times.from_asn1(enc_tgs_rep_part)
  		c.key = Keyblock.from_asn1(enc_tgs_rep_part['key'])
  		c.is_skey = 0 #not sure!
  		
  		c.tktflags = TicketFlags(enc_tgs_rep_part['flags']).cast(core.IntegerBitString).native
  		c.num_address = 0
  		c.num_authdata = 0
  		c.ticket = CCACHEOctetString.from_asn1(Ticket(tgs_rep['ticket']).dump())
  		c.second_ticket = CCACHEOctetString.empty()
  		
  		self.credentials.append(c)