The first step is the initialization of LibTMCG. The following function must be invoked early in your program, i.e., before you make use of any other capability of LibTMCG.
The function checks whether the installed third-party libraries
match their required versions. Further it initializes them
true, if everything was sound. Otherwise
false is returned and an appropriate error message
is sent to
The three optional arguments define the behaviour concerning the allocation
of secure memory (i.e. memory that is not paged out to disk and that is
overwritten by zeros before released) from libgcrypt. By default no secure
memory is used. If
force_secmem is true, than those parts of LibTMCG
that use the GNU Crypto Library will allocate and use secure memory for
private keys or other secrets. However, the most classes, algorithms, and
protocols of LibTMCG does not respect this option yet, because they store
their secrets with the GNU Multiple Precision Arithmetic Library. With the
gmp_secmem the default memory allocator of this library
is replaced to use secure memory. Unfortunately, there is no way to specify
whether a big integer needs secure memory and thus all memory is allocated
in this fashion. This may lead to out of memory aborts, because the
allocated secure memory is limited (currently 32kB). The limit of libgcrypt
can be adjusted by the third parameter
max_secmem, however, probably
there are restrictions of the operating system (cf. RLIMIT_MEMLOCK).
Additionally, the function
version_libTMCG returns a string
containing the version number of the library in a common format. It
is strongly recommended to check, whether the installed version
matches your requirements.
This function returns the version of the library in the format major.minor.revision.
Last but not least, there is a function
which returns an identifier of LibTMCG including the version,
copyright mark and license.
This function returns an identifier of the library.