Messages in this thread | | | From | David Howells <> | Subject | Re: [PATCH v1.3 4/4] keys: add new key-type encrypted | Date | Mon, 15 Nov 2010 16:18:54 +0000 |
| |
Mimi Zohar <zohar@linux.vnet.ibm.com> wrote:
> > I thought that might be the case. In which case, it might be better to > > allow someone to add a trusted key, supplying both encrypted and > > unencrypted versions of the data so that the TPM need not be consulted. > > You might want to mark such a key so that it can be seen when it is > > dumped. > > At least to me, the name 'trusted' implies some form of HW.
In many ways, I think that the type and description describe the purpose of the key, not its source or derivation.
> > But if you're going to use a user-defined key, you really need to prefix > > the description with something suitable. > > Agreed. So instead of: > keyctl add encrypted name "new master-key-name keylen" ring > > the description would be prefixed with the key type like: > keyctl add encrypted name "new trusted|user master-key-name keylen" ring
I don't think you understood what I meant. If you look at the following function:
+static struct key *request_master_key(struct encrypted_key_payload *epayload, + void **master_key, + unsigned int *master_keylen) +{ + struct key *mkey; + + mkey = request_trusted_key(epayload->master_desc, + master_key, master_keylen); + if (IS_ERR(mkey)) { + mkey = request_user_key(epayload->master_desc, + master_key, master_keylen); + if (IS_ERR(mkey)) { + pr_info("encrypted_key: trusted/user key %s not found", + epayload->master_desc); + return mkey; + } + } + dump_master_key(*master_key, *master_keylen); + return mkey; +}
In the bit where you go for a user key (having failed to get a trusted key), you should prefix the description here (or in request_user_key()) with something like "trusted:". Then you don't need to change the user interface.
David
| |