Project Dependencies - crt26/pqc-evaluation-tools GitHub Wiki

Project Dependencies

Dependency Overview

This page provides a comprehensive overview of the dependencies required to build and run the PQC-Evaluation-Tools suite. Installation and management of these dependencies are fully automated and handled during execution of the main setup script.

While this information is primarily intended for developers and contributors who need insight into the project's build and runtime environment, it may also be helpful for users who wish to override the default cryptographic library versions.

This document outlines:

  • The required system hardware and operating systems
  • The specific cryptographic libraries used for benchmarking
  • The system-level packages required for compiling and testing
  • The Python packages needed for parsing and data processing.

This information helps clarify which software components the project relies on and how the setup script maintains a consistent, reproducible environment. It also includes notes on default versions and how to use alternatives if needed.

Required Hardware and Operating Systems

The automated testing tool is currently only supported in the following environments:

  • x86 Linux Machines using a Debian-based operating system
  • ARM Linux devices using a 64-bit Debian-based Operating System

Cryptographic Dependency Libraries

This document lists the specific commits used as the last tested versions of the project's core dependencies. These versions are pinned by default during setup to ensure compatibility with the PQC-Evaluation-Tools benchmarking framework.

Last Tested Versions

Dependency Version Context Commit SHA Notes
Liboqs Post-0.13.0 9aa76bc1309a9bc10061ec3aa07d727c030c9a86 Commit after 0.13.0 release, before 0.14.0
OQS-Provider Post-0.9.0 2cc8dd3d3ef8764fa432f87a0ae15431d86bfa90 Commit after 0.9.0 release
OpenSSL Official release 3.5.0 N/A Downloaded as a fixed release tarball
pqax Always latest N/A Pulled from latest main branch at install time

Note: These versions are used by default unless the --latest-dependency-versions flag is explicitly set during setup.

For setup instructions and details on using the latest cryptographic dependency versions, please see:

System Package Dependencies

The following system-level packages are required for building and running the PQC-Evaluation-Tools suite. These are automatically checked and installed during the setup process using the apt package manager.

By default, the setup script will install the latest available versions of these packages from the distribution's package repositories if they are not already present on the system.

  • git
  • astyle
  • cmake
  • gcc
  • ninja-build
  • libssl-dev
  • python3-pytest
  • python3-pytest-xdist
  • unzip
  • xsltproc
  • doxygen
  • graphviz
  • python3-yaml
  • valgrind
  • libtool
  • make
  • net-tools
  • python3-pip
  • netcat-openbsd

Python PIP Dependencies

The following Python packages are required for testing and result parsing. These are automatically checked and installed via pip during setup:

  • pandas
  • jinja2
  • tabulate

If the system’s Python environment is restricted (e.g., due to externally-managed-environment policies), the setup script will offer the option to install packages using the --break-system-packages flag. Manual installation is also supported if preferred.