diff options
Diffstat (limited to 'security/keys/encrypted-keys/encrypted.c')
-rw-r--r-- | security/keys/encrypted-keys/encrypted.c | 35 |
1 files changed, 8 insertions, 27 deletions
diff --git a/security/keys/encrypted-keys/encrypted.c b/security/keys/encrypted-keys/encrypted.c index e7eca9ec4c65..3f577954b85a 100644 --- a/security/keys/encrypted-keys/encrypted.c +++ b/security/keys/encrypted-keys/encrypted.c | |||
@@ -299,31 +299,6 @@ out: | |||
299 | } | 299 | } |
300 | 300 | ||
301 | /* | 301 | /* |
302 | * request_trusted_key - request the trusted key | ||
303 | * | ||
304 | * Trusted keys are sealed to PCRs and other metadata. Although userspace | ||
305 | * manages both trusted/encrypted key-types, like the encrypted key type | ||
306 | * data, trusted key type data is not visible decrypted from userspace. | ||
307 | */ | ||
308 | static struct key *request_trusted_key(const char *trusted_desc, | ||
309 | u8 **master_key, size_t *master_keylen) | ||
310 | { | ||
311 | struct trusted_key_payload *tpayload; | ||
312 | struct key *tkey; | ||
313 | |||
314 | tkey = request_key(&key_type_trusted, trusted_desc, NULL); | ||
315 | if (IS_ERR(tkey)) | ||
316 | goto error; | ||
317 | |||
318 | down_read(&tkey->sem); | ||
319 | tpayload = rcu_dereference(tkey->payload.data); | ||
320 | *master_key = tpayload->key; | ||
321 | *master_keylen = tpayload->key_len; | ||
322 | error: | ||
323 | return tkey; | ||
324 | } | ||
325 | |||
326 | /* | ||
327 | * request_user_key - request the user key | 302 | * request_user_key - request the user key |
328 | * | 303 | * |
329 | * Use a user provided key to encrypt/decrypt an encrypted-key. | 304 | * Use a user provided key to encrypt/decrypt an encrypted-key. |
@@ -469,8 +444,14 @@ static struct key *request_master_key(struct encrypted_key_payload *epayload, | |||
469 | goto out; | 444 | goto out; |
470 | 445 | ||
471 | if (IS_ERR(mkey)) { | 446 | if (IS_ERR(mkey)) { |
472 | pr_info("encrypted_key: key %s not found", | 447 | int ret = PTR_ERR(epayload); |
473 | epayload->master_desc); | 448 | |
449 | if (ret == -ENOTSUPP) | ||
450 | pr_info("encrypted_key: key %s not supported", | ||
451 | epayload->master_desc); | ||
452 | else | ||
453 | pr_info("encrypted_key: key %s not found", | ||
454 | epayload->master_desc); | ||
474 | goto out; | 455 | goto out; |
475 | } | 456 | } |
476 | 457 | ||