def decrypt_data(self, cipher: DesCipher, key: bitarray) -> None: field: dataclasses.Field for field in dataclasses.fields(self): setattr(self, field.name, cipher.decrypt(getattr(self, field.name), key))
def __init__(self, cipher: DesCipher, key: bitarray, ticket_granting_ticket: TicketGrantingTicket, encryption_key: bitarray) -> None: self.encrypted_ticket_granting_ticket = ticket_granting_ticket self.encrypted_ticket_granting_ticket.encrypt_data(cipher, key) self.encrypted_encryption_key = cipher.encrypt(encryption_key, key)
def __init__(self, cipher: DesCipher, key: bitarray, ticket_granting_service: TicketGrantingService, encryption_key: bitarray) -> None: self.encrypted_ticket_granting_service = ticket_granting_service self.encrypted_ticket_granting_service.encrypt_data(cipher, key) self.encrypted_encryption_key = cipher.encrypt(encryption_key, key)
def __init__(self, cipher: DesCipher, key: bitarray, timestamp: int) -> None: self.encrypted_timestamp = cipher.encrypt(int2ba(timestamp), key)
def launch(cipher: DesCipher, client_id: int, client_key: bitarray, requested_service_server_id: int, tgs_id: int, as_tgs_key: bitarray, c_tgs_key: bitarray, as_valid_period_seconds: int, tgs_ss_key: bitarray, c_ss_key: bitarray, tgs_valid_period_seconds: int) -> None: client = Client(cipher, client_id, client_key) kb_server = KerberosServer(cipher, tgs_id, as_tgs_key, c_tgs_key, {client_id: client_key}, as_valid_period_seconds, tgs_ss_key, c_ss_key, tgs_valid_period_seconds) service_server = Server(cipher, c_ss_key, tgs_ss_key) authentication_server_request = client.make_request_authentication_server() authentication_server_response = kb_server.send_response_authentication_server( authentication_server_request) if authentication_server_response is None: return None ticket_granting_server_request = client.make_request_ticket_granting_server( authentication_server_response, requested_service_server_id) ticket_granting_server_response = kb_server.send_response_ticket_granting_server( ticket_granting_server_request) if ticket_granting_server_response is None: return None service_server_request = client.make_request_service_server( ticket_granting_server_response) service_server.send_response(service_server_request) launch(DesCipher(DesCipher.generate_parameters()), 42, bitarray(56), 101, 56, bitarray(56), bitarray(56), 15, bitarray(56), bitarray(56), 15)