cdpxe / WendzelNNTPd

A usable and IPv6-ready Usenet-server (NNTP daemon). It is portable (Linux/*BSD/*nix), supports AUTHINFO authentication, contains ACL as well as role based ACL and provides "invisible" newsgroups. It can run on MySQL and SQLite backends.

Home Page:https://cdpxe.github.io/WendzelNNTPd/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Thesis: Finalization of TLS Support in Legacy Internet Software

cdpxe opened this issue · comments

This issue is foreseen to be addressed in the form of a thesis and will focus on the NNTP server WendzelNNTPd.

Supervision: Steffen Wendzel (website).

Context

Thanks to the two theses works of @cgrill76 and @mich-dy, WendzelNNTPd now features TLS support in form of two development branches:

Goal of the Thesis

The goal of this thesis is to bring TLS support into WendzelNNTPd's main branch. This means to utilize the above-mentioned branches, pick the best components of these branches, and merge them into the main branch. Afterwards, you test the functionality of the new main branch.

Your Tasks

  1. Define requirements for the TLS integration into the main branch. To this end, you also consider the requirements of the previous branches.
    • The PDF files of the theses of both students will be provided!
  2. Analyze both branches and determine the best ideas and code pieces of both branches.
  3. Integrate the best code fragments (that resulted from the previous point) into the main branch.
    • If necessary add own code fragments.
  4. Combine the testing and evaluation methods of both TLS development branches so that all tests of these two branches are used for the evaluation of WendzelNNTPd.
    • Perform an in-depth testing of the TLS functionality using these testing/evaluation methods.
    • Optionally, add additional (own) TLS functionality tests.
  5. Write the thesis :)

Key Requirements

  • Support for OpenSSL, GnuTLS is optional.
  • Support for TLS connections without STARTTLS (most clients do not seem to make use of STARTTLS) as well as with STARTTLS.
  • Intuitive use and configuration (e.g., there should be no difference between setting a TLS and a non-TLS port in the config file).
  • Code must pass functionality tests with the following clients: Thunderbird, Sylpheed/Claws Mail, Pan and slrn. The handling of signals, such as SIG_PIPE, should consider potential errors (see PDF files of the theses that will be provided / code in the development branches).
  • Integrated code must roughly follow coding style of the current implementation (note that the development branches do a good job here).
  • Server documentation must be updated; code should be documented, configuration file too.
  • Code needs to compile under at Ubuntu and Debian Linux as well as one major BSD distribution (OpenBSD, NetBSD or FreeBSD).