open-quantum-safe / liboqs

C library for prototyping and experimenting with quantum-resistant cryptography
https://openquantumsafe.org/
Other
1.82k stars 447 forks source link

Enhance test output #1786

Open baentsch opened 4 months ago

baentsch commented 4 months ago

Currently, most tests output information about the build and execution environment, e.g., as such:

Configuration info
==================
Target platform:  x86_64-Linux-6.5.0-26-generic
Compiler:         gcc (11.4.0)
Compile options:  [-Wa,--noexecstack;-O3;-fomit-frame-pointer;-fdata-sections;-ffunction-sections;-Wl,--gc-sections;-Wbad-function-cast]
OQS version:      0.10.1-dev
Git commit:       864be05738585e975540dd3ee1095d580904517f
OpenSSL enabled:  Yes (OpenSSL 3.0.2 15 Mar 2022)
AES:              NI
SHA-2:            OpenSSL
SHA-3:            C
OQS build flags:  OQS_DIST_BUILD OQS_OPT_TARGET=generic CMAKE_BUILD_TYPE=Release 
CPU exts active:  ADX AES AVX AVX2 BMI1 BMI2 PCLMULQDQ POPCNT SSE SSE2 SSE3

However, liboqs increasingly makes more/different implementations available even for one algorithm, such as plain C code, hardware optimized code containing some assembly optimizations or even 100% assembly code built by external tooling. The actual code run is highly dependent on both build and execution platform (if different).

This issue is to suggest adding a marker next to each algorithm name outputting which of the different code bases actually is running, e.g., by way of reference to the source file (path) actually being executed -- but many other options are conceivable.