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)