mirror of
https://git.code.sf.net/p/linux-ima/ima-evm-utils
synced 2025-04-28 14:43:37 +02:00
ima-evm-utils: Convert read_priv_key to EVP_PKEY API
Introduce read_priv_pkey() to read keys using EVP_PKEY, and change read_priv_key() to be wrapper for it. 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:
parent
71c1be47e7
commit
3df7b5d779
@ -753,10 +753,10 @@ void calc_keyid_v2(uint32_t *keyid, char *str, RSA *key)
|
||||
free(pkey);
|
||||
}
|
||||
|
||||
static RSA *read_priv_key(const char *keyfile, const char *keypass)
|
||||
static EVP_PKEY *read_priv_pkey(const char *keyfile, const char *keypass)
|
||||
{
|
||||
FILE *fp;
|
||||
RSA *key;
|
||||
EVP_PKEY *pkey;
|
||||
|
||||
fp = fopen(keyfile, "r");
|
||||
if (!fp) {
|
||||
@ -764,15 +764,32 @@ static RSA *read_priv_key(const char *keyfile, const char *keypass)
|
||||
return NULL;
|
||||
}
|
||||
ERR_load_crypto_strings();
|
||||
key = PEM_read_RSAPrivateKey(fp, NULL, NULL, (void *)keypass);
|
||||
if (!key) {
|
||||
pkey = PEM_read_PrivateKey(fp, NULL, NULL, (void *)keypass);
|
||||
if (!pkey) {
|
||||
char str[256];
|
||||
|
||||
ERR_error_string(ERR_get_error(), str);
|
||||
log_err("PEM_read_RSAPrivateKey() failed: %s\n", str);
|
||||
log_err("PEM_read_PrivateKey() failed: %s\n", str);
|
||||
}
|
||||
|
||||
fclose(fp);
|
||||
return pkey;
|
||||
}
|
||||
|
||||
static RSA *read_priv_key(const char *keyfile, const char *keypass)
|
||||
{
|
||||
EVP_PKEY *pkey;
|
||||
RSA *key;
|
||||
|
||||
pkey = read_priv_pkey(keyfile, keypass);
|
||||
if (!pkey)
|
||||
return NULL;
|
||||
key = EVP_PKEY_get1_RSA(pkey);
|
||||
EVP_PKEY_free(pkey);
|
||||
if (!key) {
|
||||
log_err("read_priv_key: unsupported key type\n");
|
||||
return NULL;
|
||||
}
|
||||
return key;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user