Re: [PATCH] security/keys/trusted: Allow operation without hardware TPM

From: Dan Williams
Date: Mon Mar 18 2019 - 20:30:38 EST

On Mon, Mar 18, 2019 at 5:24 PM James Bottomley <jejb@xxxxxxxxxxxxx> wrote:
> On Mon, 2019-03-18 at 16:45 -0700, Dan Williams wrote:
> > Rather than fail initialization of the trusted.ko module, arrange for
> > the module to load, but rely on trusted_instantiate() to fail
> > trusted-key operations.
> What actual problem is this fixing? To me it would seem like an
> enhancement to make the trusted module fail at load time if there's no
> TPM rather than waiting until first use to find out it can never work.
> Is there some piece of user code that depends on the successful
> insertion of trusted.ko?

The module dependency chain relies on it. If that can be broken that
would also be an acceptable fix.

I found this through the following dependency chain: libnvdimm.ko ->
encrypted_keys.ko -> trusted.ko.

"key_type_trusted" is the symbol that encrypted_keys needs regardless
of whether the tpm is present.