mirror of
https://git.code.sf.net/p/linux-ima/ima-evm-utils
synced 2025-07-09 08:40:43 +02:00
ima-evm-utils: Convert cmd_import and calc keyid v2 to EVP_PKEY API
Introduce calc_pkeyid_v2() (which accepts EVP_PKEY) to replace calc_keyid_v2() (which accepts RSA) in the future and use it in cmd_import(). Signed-off-by: Vitaly Chikunov <vt@altlinux.org> Acked-by: Dmitry Kasatkin <dmitry.kasatkin@gmail.com> Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
This commit is contained in:

committed by
Mimi Zohar

parent
3df7b5d779
commit
af4e3c06bb
25
src/evmctl.c
25
src/evmctl.c
@ -891,7 +891,6 @@ static int cmd_import(struct command *cmd)
|
||||
int id, len, err = 0;
|
||||
char name[20];
|
||||
uint8_t keyid[8];
|
||||
RSA *key;
|
||||
|
||||
inkey = g_argv[optind++];
|
||||
if (!inkey) {
|
||||
@ -925,18 +924,26 @@ static int cmd_import(struct command *cmd)
|
||||
}
|
||||
}
|
||||
|
||||
key = read_pub_key(inkey, params.x509);
|
||||
if (!key)
|
||||
return 1;
|
||||
|
||||
if (params.x509) {
|
||||
EVP_PKEY *pkey = read_pub_pkey(inkey, params.x509);
|
||||
|
||||
if (!pkey)
|
||||
return 1;
|
||||
pub = file2bin(inkey, NULL, &len);
|
||||
if (!pub)
|
||||
goto out;
|
||||
calc_keyid_v2((uint32_t *)keyid, name, key);
|
||||
if (!pub) {
|
||||
EVP_PKEY_free(pkey);
|
||||
return 1;
|
||||
}
|
||||
calc_pkeyid_v2((uint32_t *)keyid, name, pkey);
|
||||
EVP_PKEY_free(pkey);
|
||||
} else {
|
||||
RSA *key = read_pub_key(inkey, params.x509);
|
||||
|
||||
if (!key)
|
||||
return 1;
|
||||
len = key2bin(key, pub);
|
||||
calc_keyid_v1(keyid, name, pub, len);
|
||||
RSA_free(key);
|
||||
}
|
||||
|
||||
log_info("Importing public key %s from file %s into keyring %d\n", name, inkey, id);
|
||||
@ -951,8 +958,6 @@ static int cmd_import(struct command *cmd)
|
||||
}
|
||||
if (params.x509)
|
||||
free(pub);
|
||||
out:
|
||||
RSA_free(key);
|
||||
return err;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user