def authenticate(server_key,request_message):
    lines=request_message.split("\n")
    ticket=lines[0]
    encrypted_message=lines[1]
    #print(request_message)
    session_key_and_ticket_expiration =decrypt_func(server_key,ticket)
    session_key=session_key_and_ticket_expiration.split("\n")[0]
    ticket_expiration=session_key_and_ticket_expiration.split("\n")[1]
    if(datetime.strptime(ticket_expiration,"%Y-%m-%d %H:%M:%S.%f")>datetime.now()):
        message=decrypt_func(session_key,encrypted_message)
        return message
    else:
        return "Expired Ticket"
    def handle(self):
        #log_in_request form #####\nUserID
        self.log_in_request = self.request.recv(1024)
        #seperating the id from the encrypted message
        self.encyripted_message, self.id = parse_message(self.log_in_request)
        #finding the requests key from the database
        self.key=find_key(self.id)
        #print self.key
        #Decrypting message
        self.message= decrypt_func(self.key, self.encyripted_message)
        #print self.message
        serverinfo=self.message.split("\n")
        print int(serverinfo[1])
        print authentication_server.server_database
        self.session_key=str(session_key)
        #print self.session_key

        self.server_encryption_key=find_server_key((serverinfo[0],int(serverinfo[1])),authentication_server.server_database)
        #create ticket
        self.ticket=prepare_ticket(self.server_encryption_key, self.session_key)

        #Sending Token
        self.token= prepare_token(self.ticket,session_key,(serverinfo[0],serverinfo[1]))
        self.encryipted_token=encrypt_func(self.key,self.token)
        self.request.send(self.encryipted_token)