[ima-evm-utils PATCH 00/12] Address non concurrency-safe libimaevm global variables

Mimi Zohar
2023-11-19T16:51:18Z

The libimaevm global variables are not concurrency-safe. Instead of
relying on global variables, define new functions with these variables
as parameters, update static functions definitions with these variables,
and deprecate existing functions. Limit change to public keys, hash
algorithm, and key password.

To avoid library incompatability, make the existing functions wrappers
for the new function versions.

Mimi Zohar (12):
Rename "public_keys" to "g_public_keys"
Free public keys list
Update library function definitions to include a "public_keys"
parameter
Update a library function definition to include a "hash_algo"
parameter
Update cmd_verify_ima() to define and use a local list of public keys
Update cmd_verify_evm to define and use a local list of public keys
Update ima_measurements to define and use a local list of public keys
Define library ima_calc_hash2() function with a hash algorithm
parameter
Use a local hash algorithm variable when verifying file signatures
Update EVM signature verification to use a local hash algorithm
variable
Use a file specific hash algorithm variable for signing files
Define and use a file specific "keypass" variable

src/evmctl.c | 99 +++++++++++++++++-------------
src/imaevm.h | 5 ++
src/libimaevm.c | 159 ++++++++++++++++++++++++++++++++++++------------
3 files changed, 181 insertions(+), 82 deletions(-)

--
2.39.3