From 5e0d801c1d714c3adddddecf35892970e5febbc2 Mon Sep 17 00:00:00 2001 From: Steffen Jaeckel Date: Tue, 7 Oct 2025 08:08:30 +0200 Subject: [PATCH] Clarify MPI providers a bit further This closes #354 Signed-off-by: Steffen Jaeckel --- doc/crypt.tex | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/doc/crypt.tex b/doc/crypt.tex index 335956f3..4f201163 100644 --- a/doc/crypt.tex +++ b/doc/crypt.tex @@ -8726,6 +8726,7 @@ pthreads based mutex locking in various routines such as the Yarrow and Fortuna \chapter{Configuring and Building the Library} \mysection{Introduction} +\index{math descriptor} \index{MPI provider} The library is fairly flexible about how it can be built, used, and generally distributed. Additions are being made with each new release that will make the library even more flexible. Each of the classes of functions can be disabled during the build process to make a smaller library. This is particularly useful for shared libraries. @@ -8738,6 +8739,13 @@ configured. Note that LibTomCrypt can be built with no internal math descriptor build, or run time for the application. LibTomCrypt comes with three math descriptors that provide a standard interface to math libraries. +Clarification regarding the wording in this area: 'MPI provider' and 'math descriptor' can be used synonymous. +Where the former usually means 'one of the entire set' and the latter means 'a specific'. +E.g. 'One can enable multiple MPI providers at build time, but has to select one of those MPI providers at run time.', +or 'The math descriptor for TomsFastMath is missing an implementation of \code{sqrtmod\_prime()}.'. + +Please check Ch. \ref{mp-init} for details on the selection of an MPI provider at build, resp. run time. + \mysection{Makefile variables} All GNU driven makefiles (including the makefile for ICC) use a set of common variables to control the build and install process. Most of the @@ -9121,6 +9129,8 @@ When this has been defined the RSA modular exponentiation will do some sanity ch This is enabled by default and can be disabled by defining \textbf{LTC\_NO\_RSA\_CRT\_HARDENING}. \subsection{Math Descriptors} +\index{math descriptor} \index{MPI provider} +\label{mp-init} The library comes with three math descriptors that allow you to interface the public key cryptography API to freely available math libraries. When \textbf{GMP\_DESC}, \textbf{LTM\_DESC}, or \textbf{TFM\_DESC} are defined descriptors for the respective library are built and included in the library as \textit{gmp\_desc}, \textit{ltm\_desc}, or \textit{tfm\_desc} respectively. @@ -10368,7 +10378,7 @@ void init_TFM(void); void init_GMP(void); \end{verbatim} -These three MPI init functions have been introduced in version 1.18.0 and have been deprecated in the same version in favor of \textit{crypt\_mp\_init()}. +These three MPI init functions have been introduced in version 1.18.0 and have been deprecated in the same version in favor of \code{crypt\_mp\_init()}, c.f. Ch. \ref{mp-init}. \clearpage \addcontentsline{toc}{chapter}{Index}