mirror of
https://git.code.sf.net/p/linux-ima/ima-evm-utils
synced 2025-04-28 22:53: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);
|
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;
|
FILE *fp;
|
||||||
RSA *key;
|
EVP_PKEY *pkey;
|
||||||
|
|
||||||
fp = fopen(keyfile, "r");
|
fp = fopen(keyfile, "r");
|
||||||
if (!fp) {
|
if (!fp) {
|
||||||
@ -764,15 +764,32 @@ static RSA *read_priv_key(const char *keyfile, const char *keypass)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
ERR_load_crypto_strings();
|
ERR_load_crypto_strings();
|
||||||
key = PEM_read_RSAPrivateKey(fp, NULL, NULL, (void *)keypass);
|
pkey = PEM_read_PrivateKey(fp, NULL, NULL, (void *)keypass);
|
||||||
if (!key) {
|
if (!pkey) {
|
||||||
char str[256];
|
char str[256];
|
||||||
|
|
||||||
ERR_error_string(ERR_get_error(), str);
|
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);
|
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;
|
return key;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user