3.2.1 Core and modules

Extensibility advertised in the ssh2 standard is transposed in libassh by allowing dynamic registration of external ssh2 algorithms and services.

The core of the library implements the transport layer, dispatches packets and events, handles registration of algorithm modules and performs management of struct assh_context_s and struct assh_session_s objects.

Interface descriptor structures are used in order to declare modules. The following descriptors are used for ssh2 algorithms negotiated during the key-exchange process:

Those descriptor structures inherit from the struct assh_algo_s structure.

Additional pluggable interface descriptors are used by the library:

  • The struct assh_service_s interface descriptor is used to declare implementations of ssh2 services.

  • The struct assh_prng_s interface descriptor is used to declare random generators used by the core and modules.

  • The assh_allocator_t function pointer type is used by the core and modules in order to allocate and free memory.

  • The struct assh_key_algo_s interface descriptor used to declare modules able to create and manage storage of SSH keys.

Valid XHTML 1.0 StrictGenerated by diaxen on Sun Oct 25 23:30:45 2020 using MkDoc