Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751897AbdCCPT4 (ORCPT ); Fri, 3 Mar 2017 10:19:56 -0500 Received: from mga11.intel.com ([192.55.52.93]:30105 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751578AbdCCPTw (ORCPT ); Fri, 3 Mar 2017 10:19:52 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.35,237,1484035200"; d="scan'208";a="63943418" From: Jarkko Sakkinen To: tpmdd-devel@lists.sourceforge.net Cc: linux-security-module@vger.kernel.org, James.Bottomley@HansenPartnership.com, dhowells@redhat.com, Jarkko Sakkinen , Jason Gunthorpe , linux-kernel@vger.kernel.org (open list) Subject: [PATCH v3 0/7] in-kernel resource manager Date: Fri, 3 Mar 2017 17:19:01 +0200 Message-Id: <20170303151912.14752-1-jarkko.sakkinen@linux.intel.com> X-Mailer: git-send-email 2.9.3 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2042 Lines: 56 This patch set adds support for TPM spaces that provide an isolated execution context for transient objects and HMAC and policy sessions. A space is swapped into TPM volatile memory only when it is used and swapped out after the use. There's a test script for trying out TPM spaces in git://git.infradead.org/users/jjs/tpm2-scripts.git A simple smoke test suite can be run by sudo python -m unittest -v tpm2_smoke.SpaceTest v3: * Reverted back to /dev/tpmrm0 that was actually James' original proposal. It's the most pragmatic choice as it cannot be mixed with other TPM 2.0 and kernel idioms easily. v2: * Substitute virtual handle in ContextSave. * Substitute virtual handles in GetCapability. * Validate that the real response length and the one reported in the header match in tpm_transmit(). James Bottomley (3): tpm: split out tpm-dev.c into tpm-dev.c and tpm-common-dev.c tpm: expose spaces via a device link /dev/tpmrm tpm2: add session handle context saving and restoring to the space code Jarkko Sakkinen (4): tpm: move length validation to tpm_transmit() tpm: validate TPM 2.0 commands tpm: export tpm2_flush_context_cmd tpm: infrastructure for TPM spaces drivers/char/tpm/Makefile | 3 +- drivers/char/tpm/tpm-chip.c | 71 ++++- drivers/char/tpm/tpm-dev-common.c | 148 +++++++++++ drivers/char/tpm/tpm-dev.c | 143 +--------- drivers/char/tpm/tpm-dev.h | 27 ++ drivers/char/tpm/tpm-interface.c | 131 +++++++--- drivers/char/tpm/tpm-sysfs.c | 2 +- drivers/char/tpm/tpm.h | 49 +++- drivers/char/tpm/tpm2-cmd.c | 173 +++++++++---- drivers/char/tpm/tpm2-space.c | 532 ++++++++++++++++++++++++++++++++++++++ drivers/char/tpm/tpmrm-dev.c | 65 +++++ 11 files changed, 1123 insertions(+), 221 deletions(-) create mode 100644 drivers/char/tpm/tpm-dev-common.c create mode 100644 drivers/char/tpm/tpm-dev.h create mode 100644 drivers/char/tpm/tpm2-space.c create mode 100644 drivers/char/tpm/tpmrm-dev.c -- 2.9.3