tpm2-pytss
tpm2-pytss copied to clipboard
flush parent handle durint create and load
the parent context isn't flushed during a create and load commands cleanly which causes issues in using pytss with a swtpm (no resource mgr, etc).
suggestion is to add in the flush commands shown below to tpm2_pytss/tsskey.py
.
i can submit a small pr if needed
def load(self, ectx, password=None):
if not password and not self.empty_auth:
raise RuntimeError("no password specified but it is required")
elif password and self.empty_auth:
warnings.warn("password specified but empty_auth is true")
phandle = self._getparent(ectx, self.public.publicArea.type, self.parent)
handle = ectx.load(phandle, self.private, self.public)
ectx.tr_set_auth(handle, password)
ectx.flush_context(phandle) # <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
return handle
@classmethod
def create(cls, ectx, template, parent=lib.TPM2_RH_OWNER, password=None):
insens = TPM2B_SENSITIVE_CREATE()
emptyauth = True
if password:
insens.sensitive.userAuth = password
emptyauth = False
phandle = cls._getparent(ectx, template.type, parent)
private, public, _, _, _ = ectx.create(
parent_handle=phandle,
in_sensitive=insens,
in_public=TPM2B_PUBLIC(publicArea=template),
outside_info=TPM2B_DATA(),
creation_pcr=TPML_PCR_SELECTION(),
)
ectx.flush_context(phandle) # <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
return cls(private, public, emptyauth, parent)