Reduce code duplication in kernel keyring utilities.

This commit is contained in:
Ondrej Kozina
2023-09-08 11:44:30 +02:00
committed by Milan Broz
parent c497d8baa9
commit f147c823ea
5 changed files with 13 additions and 30 deletions

View File

@@ -328,7 +328,7 @@ static int get_passphrase_by_keyring(struct crypt_device *cd,
assert(r_passphrase_size);
if (!kc->i_passphrase) {
r = keyring_get_passphrase(kc->u.kr.key_description, &kc->i_passphrase, &kc->i_passphrase_size);
r = keyring_get_user_key(kc->u.kr.key_description, &kc->i_passphrase, &kc->i_passphrase_size);
if (r < 0) {
log_err(cd, _("Failed to read passphrase from keyring."));
kc->error = -EINVAL;

View File

@@ -3873,7 +3873,7 @@ int crypt_reencrypt_init_by_keyring(struct crypt_device *cd,
return -EINVAL;
}
r = keyring_get_passphrase(passphrase_description, &passphrase, &passphrase_size);
r = keyring_get_user_key(passphrase_description, &passphrase, &passphrase_size);
if (r < 0) {
log_err(cd, _("Failed to read passphrase from keyring (error %d)."), r);
return -EINVAL;

View File

@@ -40,12 +40,12 @@ int keyring_open(struct crypt_device *cd,
json_object_object_get_ex(jobj_token, "key_description", &jobj_key);
r = keyring_get_passphrase(json_object_get_string(jobj_key), buffer, buffer_len);
r = keyring_get_user_key(json_object_get_string(jobj_key), buffer, buffer_len);
if (r == -ENOTSUP) {
log_dbg(cd, "Kernel keyring features disabled.");
return -ENOENT;
} else if (r < 0) {
log_dbg(cd, "keyring_get_passphrase failed (error %d)", r);
log_dbg(cd, "keyring_get_user_key failed (error %d)", r);
return -EPERM;
}

View File

@@ -244,14 +244,6 @@ int keyring_add_key_in_user_keyring(key_type_t ktype, const char *key_desc, cons
return 0;
}
/* alias for the same code */
int keyring_get_key(const char *key_desc,
char **key,
size_t *key_size)
{
return keyring_get_passphrase(key_desc, key, key_size);
}
int keyring_read_by_id(const char *key_desc,
char **passphrase,
size_t *passphrase_len)
@@ -292,9 +284,9 @@ int keyring_read_by_id(const char *key_desc,
return 0;
}
int keyring_get_passphrase(const char *key_desc,
char **passphrase,
size_t *passphrase_len)
int keyring_get_user_key(const char *key_desc,
char **key,
size_t *key_size)
{
int err;
key_serial_t kid;
@@ -327,8 +319,8 @@ int keyring_get_passphrase(const char *key_desc,
return -err;
}
*passphrase = buf;
*passphrase_len = len;
*key = buf;
*key_size = len;
return 0;
}
@@ -494,12 +486,7 @@ int keyring_read_by_id(const char *key_desc, char **passphrase, size_t *passphra
return -ENOTSUP;
}
int keyring_get_passphrase(const char *key_desc, char **passphrase, size_t *passphrase_len)
{
return -ENOTSUP;
}
int keyring_get_key(const char *key_desc, char **key, size_t *key_size)
int keyring_get_user_key(const char *key_desc, char **key, size_t *key_size)
{
return -ENOTSUP;
}

View File

@@ -33,17 +33,13 @@ int32_t keyring_by_name(const char *name);
int keyring_check(void);
int keyring_get_key(const char *key_desc,
int keyring_get_user_key(const char *key_desc,
char **key,
size_t *key_size);
int keyring_read_by_id(const char *key_desc,
char **passphrase,
size_t *passphrase_len);
int keyring_get_passphrase(const char *key_desc,
char **passphrase,
size_t *passphrase_len);
char **passphrase,
size_t *passphrase_len);
int keyring_add_key_in_thread_keyring(
key_type_t ktype,