mbox series

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

Message ID 20231119165043.46960-1-zohar@linux.ibm.com (mailing list archive)
Headers show
Series Address non concurrency-safe libimaevm global variables | expand

Message

Mimi Zohar Nov. 19, 2023, 4:50 p.m. UTC
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(-)