AERN: Authenticated Encrypted Relay Network 1.0.0.0a (A1)
A post quantum authenticated and encrypted proxy chain network
adc.h File Reference

AERN Domain Controller (ADC) Server. More...

#include "aerncommon.h"

Go to the source code of this file.

Functions

AERN_EXPORT_API void aern_adc_pause_server (void)
 Pause the ADC server.
AERN_EXPORT_API int32_t aern_adc_start_server (void)
 Start the ADC server.
AERN_EXPORT_API void aern_adc_stop_server (void)
 Stop the ADC server.

Detailed Description

AERN Domain Controller (ADC) Server.

The AERN Domain Controller (ADC) is a central component of the Anonymous Encrypted Relay Network (AERN) responsible for managing the network's device list (topology), certificate distribution, and convergence. The ADC server acts as an intermediary between remote devices (APS and clients) and the root certificate authority. It handles operations such as:

  • Processing registration requests from devices seeking to join the network.
  • Issuing incremental updates and convergence responses to synchronize device topology.
  • Broadcasting revocation and announcement messages to update the network state.

The ADC server is implemented as a dedicated network server that listens for incoming TCP connections (supporting both IPv4 and IPv6). It uses a console-based command loop to accept administrator commands for configuration, certificate management, and topology control. An idle timeout mechanism automatically logs out inactive sessions.

The implementation includes rigorous internal tests of its convergence, certificate verification, and topology update routines. These tests ensure that the ADC server reliably maintains an accurate network view and securely processes certificate-related transactions.

Note
The public API provided in this header comprises functions to start, pause, and stop the ADC server. Internal operations (such as certificate generation, topology convergence, and node queries) are encapsulated within the ADC server's implementation.

Function Documentation

◆ aern_adc_pause_server()

AERN_EXPORT_API void aern_adc_pause_server ( void )

Pause the ADC server.

Temporarily suspends the ADC server's processing of incoming network requests and command loop.

◆ aern_adc_start_server()

AERN_EXPORT_API int32_t aern_adc_start_server ( void )

Start the ADC server.

Initializes and starts the AERN ADC server. This function configures the network listening socket, loads the local ADC certificate (importing the root certificate if necessary), initializes the topology database, and begins the interactive command loop.

Returns
Returns zero on success; a non-zero value indicates an error during initialization.

◆ aern_adc_stop_server()

AERN_EXPORT_API void aern_adc_stop_server ( void )

Stop the ADC server.

Terminates the ADC server by shutting down the network socket, stopping the command loop, and releasing all allocated resources.