mirror of
https://git.code.sf.net/p/linux-ima/ima-evm-utils
synced 2025-04-28 06:33:36 +02:00
ima-evm-utils: log unknown keyid's as errors
Each tima a new unknown key is encountered, emit a message of the format "key #: <keyid> (unknown keyid)". The individual files using unknown keys are then only logged in verbose mode. Also update the message emitted to be consistent with other "verification failed" messages. Signed-off-by: Mimi Zohar <zohar@linux.ibm.com> Changlog: - Incorporated Vitaly's fix to prevent a null dereference in `tail->next`
This commit is contained in:
parent
15afdbeae7
commit
3eac3710a9
@ -424,13 +424,29 @@ static struct public_key_entry *public_keys = NULL;
|
|||||||
|
|
||||||
static EVP_PKEY *find_keyid(uint32_t keyid)
|
static EVP_PKEY *find_keyid(uint32_t keyid)
|
||||||
{
|
{
|
||||||
struct public_key_entry *entry;
|
struct public_key_entry *entry, *tail = public_keys;
|
||||||
|
int i = 1;
|
||||||
|
|
||||||
for (entry = public_keys; entry != NULL; entry = entry->next) {
|
for (entry = public_keys; entry != NULL; entry = entry->next) {
|
||||||
if (entry->keyid == keyid)
|
if (entry->keyid == keyid)
|
||||||
return entry->key;
|
return entry->key;
|
||||||
|
i++;
|
||||||
|
tail = entry;
|
||||||
}
|
}
|
||||||
return NULL;
|
|
||||||
|
/* add unknown keys to list */
|
||||||
|
entry = calloc(1, sizeof(struct public_key_entry));
|
||||||
|
if (!entry) {
|
||||||
|
perror("calloc");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
entry->keyid = keyid;
|
||||||
|
if (tail)
|
||||||
|
tail->next = entry;
|
||||||
|
else
|
||||||
|
public_keys = entry;
|
||||||
|
log_err("key %d: %x (unknown keyid)\n", i, __be32_to_cpup(&keyid));
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void init_public_keys(const char *keyfiles)
|
void init_public_keys(const char *keyfiles)
|
||||||
@ -493,8 +509,8 @@ static int verify_hash_v2(const char *file, const unsigned char *hash, int size,
|
|||||||
if (!pkey) {
|
if (!pkey) {
|
||||||
uint32_t keyid = hdr->keyid;
|
uint32_t keyid = hdr->keyid;
|
||||||
|
|
||||||
log_err("%s: unknown keyid: %x\n", file,
|
log_info("%s: verification failed: unknown keyid %x\n",
|
||||||
__be32_to_cpup(&keyid));
|
file, __be32_to_cpup(&keyid));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user