Mimi Zohar <zo...@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
--
To unsubscribe from this list: send the line "unsubscribe linux-crypto" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to