xense-devel
Re: [Xense-devel] vtpm_managerd problem with Infineon TPM 1.2
I
forget ot note that when Manager takes ownership it uses all FF's as the SRK
auth (I'll fix that too). So if that's not what you specifed when you
manually took ownership, then you shoudl clear it and let the Manager take
ownership.
That solved the problem!
As far as i can see, vtpm_manager is functioning right now (waits for
messages and creates a new tpm when i start a domU with vtpm).
Thanks a lot!
Max
vTPM
Manager will take ownership if the TPM is not already owned; it also works
fine it is owned. Either way, make sure to delete /var/vtpm/VTPM before
running Manager so that it doesn't try to use an old
state.
Joe
Unless you reboot
your machine and do a modprobe tpmbk again you will need to do
mknod /dev/vtpm c 10 225
to get that device entry. The TPM
backend device is a 'permanent' device and cannot be 'rmmod'ed.
I don't get the entry even when i reboot and modprobe tpmbk.
So i made the entry manually. Now I was tried two
things:
With a cleaned and activated TPM i get the following
output: # vtpm_managerd INFO[VTPM]: Starting VTPM. INFO[TCS]:
Constructing new TCS: INFO[TCS]: Calling TCS_OpenContext: INFO[VTSP]:
OIAP. INFO[VTSP]: Loading Key into TPM. ERROR[TCS]: TCSP_LoadKeyByBlob
Failed with return code TPM_NOSRK ERROR in VTSP_LoadKey at vtsp.c:634
code: TPM_NOSRK. ERROR in VTPM_LoadManagerData at securestorage.c:453
code: TPM_NOSRK. ERROR[VTPM]: Failed to load service data with error =
TPM_NOSRK ERROR[VTPM]: Failed to read existing manager file
After
taking ownership (and stopping tcsd again) i get: # vtpm_managerd
INFO[VTPM]: Starting VTPM. INFO[TCS]: Constructing new
TCS: INFO[TCS]: Calling TCS_OpenContext: INFO[VTSP]:
OIAP. INFO[VTSP]: Loading Key into TPM. ERROR[TCS]: TCSP_LoadKeyByBlob
Failed with return code TPM_AUTHFAIL ERROR in VTSP_LoadKey at vtsp.c:634
code: TPM_AUTHFAIL. ERROR in VTPM_LoadManagerData at securestorage.c:453
code: TPM_AUTHFAIL. ERROR[VTPM]: Failed to load service data with error =
TPM_AUTHFAIL ERROR[VTPM]: Failed to read existing manager file
I
am not shure if i have to take ownership or
not?!
Thanks, Max
> 2007/4/6, Cihula, Joseph < joseph.cihula@xxxxxxxxx>:
> Hopefully if you unload tpmbk, delete your current /dev/vtpm
entry, > and then re- modprobe tpmbk it will create the proper
entry for you. >
> It also looks like there is one more v1.1b
command in the code > (TPM_EvictKey). Since the basic v1.2
patch worked for you, I will > generate a patch that can handle
both versions and fix the > TPM_EvictKey usage in the v1.2 path of
this new patch (rather than > sending out another v1.2 only
patch). >
> Joe >
> From: xense-devel-bounces@xxxxxxxxxxxxxxxxxxx [mailto:
xense-devel- > bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of Stefan
Berger > Sent: Friday, April 06, 2007 12:07 PM > To:
Maximilian Loy > Cc: xense-devel-bounces@xxxxxxxxxxxxxxxxxxx;
xense-devel@xxxxxxxxxxxxxxxxxxx > Subject: Re:
[Xense-devel] vtpm_managerd problem with Infineon TPM
1.2
> > xense-devel-bounces@xxxxxxxxxxxxxxxxxxx
wrote on
04/06/2007 02:53:48 PM: > > > > > > So, the
patch solves the earlier problem, but another one surfaced. > >
> When i start vtpm_manager i get this output after it has >
> > loaded/created the keys: > > > > > >
ERROR[VTPM]: VTPM ERROR: Can't open /dev/vtpm for reading. > >
> ERROR[VTPM]: [Backend Listener]: Backend Listener can't read from
> > > ipc. Aborting... > > > .... > >
> > Did you do 'modprobe tpmbk'? That should make /dev/vtpm
available. > > > > I did, and lsmod shows me tpmbk
running, as well as the tpm drivers: > > tpmbk
17724 0 [permanent]
> > tpm_tis
14592 0 > > tpm_infineon
12312 0 > > tpm
18848 2
tpm_tis,tpm_infineon > > tpm_bios
10368 1 tpm > > > > Although
the /dev/vtpm directory exists, it is completly empty. Is > >
this normal? > > /dev/vtpm is a character device, not a
directory. > > 'ls /dev/vtpm' should show something like
this: > > crw------- 1 root root 10, 225 Apr 6 11:50
/dev/vtpm > > > Stefan > >
> > > Regards, > > Max > > >
> > > > > > > > I get this message
again and again till i abort it: > > > > > >
INFO[VTPM]: [BINFO[VTPM]: Child shutting down > > >
INFO[VTPM]: VTPM Manager shutting down for signal 2. > > >
INFO[VTPM]: Enveloping Input[624]: 0x2 c5 94 f9 e4 fa 88 e0 a4 8d
43 > > > a3 b1 35 ee 43 3d 5e 5e f 50 e1 51 7a 59 9f cb 70 a4
fb 3c b5 41 56 > > > ad 5d e2 37 3b a5 > > >
........ > > > 6a 96 5b 1e 6b da a5 f4 ea 22 98 10 b0 b1
c8 b2 7c 27 10 51 a3 da 0 > > > 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 > > > INFO[VTSP]: Binding 16 bytes of data. >
> > INFO[VTPM]: Saved 256 bytes of E(symkey) + 656 bytes of E(data)
> > > INFO[VTPM]: Enveloping Output[920]: 0x0 0 1 0 3a 85 a0
a2 7f cb 9a > > > 1c 85 2b 6c ec 76 5c 2f 59 57 fd 16 94 1c
c2 e a3 9b d1 b4 25 ca 4a > > > f 5f 21 f2 2e 1f f4
...... > > > 88 1c 13 35 47 d8 e b0 93 1a b5 d2 d f1 5e
ed ea 7e 69 2e b4 c2 21 > > > f2 da 34 5c ea a5 6d f6
> > > INFO[VTPM]: Child shutting down > > >
INFO[VTPM]: Saved VTPM Manager state (status = 0, dmis = -1) > >
> INFO[TCS]: Calling TCS_CloseContext. > > > INFO[VTPM]:
Child shutting down > > > ERROR[TCS]: TCSP_EvictKey Failed
with return code TPM_BAD_ORDINAL > > > ERROR[TCS]: Not all
handles evicted from TPM. > > > INFO[TCS]: Destructing
TCS: > > > INFO[TCS]: Calling TCS_CloseContext. > >
> INFO[VTPM]: VTPM Manager stopped. > > > > >
> > > > So i tried to solve the problem by clearing the
ownership and > > > deleting /var/vtpm/VTPM, but with the
same result. > > > > > > The /dev/vtpm directory
is empty now with the following access rights: > > >
drwxrwxr-x 2 root root 4096 Apr 5
22:15 vtpm > > > > > > lsmod shows me tpmbk
running, as well as the tpm drivers: > > > tpmbk
17724 0 [permanent]
> > > tpm_tis
14592 0 > > > tpm_infineon
12312 0 > > > tpm
18848 2
tpm_tis,tpm_infineon > > > tpm_bios
10368 1 tpm > > > >
> > > > > Maybe that helps. > > > >
> > Regards, > > > Max > > > > >
> > > 2007/4/5, Cihula, Joseph <joseph.cihula@xxxxxxxxx>: > > > Max and
Burak, > > > > > > Sorry for the delay in
responding (especially to Burak whose much > > > earlier
posting we missed). We don't have an Infineon TPM here to
test > > > with, but the root cause of this error isn't
specific to the TPM mfgr. > > > and we did verify it on our
v1.2 TPMs. Attached and inline is a patch > > >
(including Vinnie's existing one) that should fix this problem.
You > > > should delete your /var/vtpm/VTPM file before
re-running, but you don't > > > need to reset your
owner. > > > > > > Let me know how it works.
If this solves your problem then I will work > > > up an
official patch that can support both v1.1b and v1.2 TPMs (this >
> > patch will only work with v1.2 TPMs). > > >
> > > Vinnie Scarlata deserves all of the credit for root
causing this and > > > providing the fix. > > >
> > > Joe > > > > > > Patch: >
> > > > > diff -r 15ff55aab051
tools/vtpm_manager/manager/vtpm_manager.c > > > ---
a/tools/vtpm_manager/manager/vtpm_manager.c Mon Mar 05 15:15:03 2007
> > > -0800 > > > +++
b/tools/vtpm_manager/manager/vtpm_manager.c Thu Apr 05 10:23:46
2007 > > > -0700 > > > @@ -90,22 +90,19 @@
TPM_RESULT VTPM_Create_Manager(){ > > >
CRYPTO_INFO ek_cryptoInfo; > > > > > >
status = VTSP_ReadPubek(vtpm_globals->manager_tcs_handle,
> > > &ek_cryptoInfo); > > > - > >
> + > > > // If we can read PubEK then there
is no owner and we should take it. > > > // We
use the abilty to read the pubEK to flag that the TPM is owned. >
> > // FIXME: Change to just trying to take ownership
and react to the > > > status > > >
if (status == TPM_SUCCESS) { > > > -
TPMTRYRETURN(VTSP_TakeOwnership(vtpm_globals->manager_tcs_handle, >
> > -
(const >
> > TPM_AUTHDATA*)&vtpm_globals->owner_usage_auth, >
> > -
&SRK_AUTH, > > > -
&ek_cryptoInfo, > > > -
&vtpm_globals->keyAuth)); > >
> - > > > - > > >
TPMTRYRETURN(VTSP_DisablePubekRead(vtpm_globals->manager_tcs_handle,
> > > -
(const > > >
TPM_AUTHDATA*)&vtpm_globals->owner_usage_auth, > > > -
&vtpm_globals->keyAuth)); > > > - } else
{ > > > - vtpmloginfo(VTPM_LOG_VTPM, "Failed to
readEK meaning TPM has an > > > owner. Creating Keys off
existing SRK.\n"); > > > + status =
VTSP_TakeOwnership(vtpm_globals->manager_tcs_handle, > > >
+
(const > > >
TPM_AUTHDATA*)&vtpm_globals->owner_usage_auth, > > > +
&SRK_AUTH, > > > +
&ek_cryptoInfo, > > > +
&vtpm_globals->keyAuth); >
> > + } > > > + if (status != TPM_SUCCESS)
{ > > > + vtpmloginfo(VTPM_LOG_VTPM, "TPM has an
owner. Creating Keys off > > > existing SRK.\n"); >
> > } > > > > > >
// Generate storage key's auth > > > diff -r
15ff55aab051 tools/vtpm_manager/manager/vtsp.c > > > ---
a/tools/vtpm_manager/manager/vtsp.c Mon Mar 05 15:15:03 2007 -0800 >
> > +++ b/tools/vtpm_manager/manager/vtsp.c Thu Apr 05 10:24:01 2007
-0700 > > > @@ -596,7 +596,7 @@ TPM_RESULT VTSP_LoadKey(const
TCS_CONTEX > > > vtpmloginfo(VTPM_LOG_VTSP,
"Loading Key %s.\n", (!skipTPMLoad ? "into > > > TPM" : "only
into memory")); > > > > > >
TPM_RESULT status = TPM_SUCCESS; > > > -
TPM_COMMAND_CODE command = TPM_ORD_LoadKey; > > > +
TPM_COMMAND_CODE command = TPM_ORD_LoadKey2; > > >
> > > BYTE *paramText=NULL;
// Digest to make Auth. > > > UINT32
paramTextSize; > > > @@ -634,10 +634,9 @@ TPM_RESULT
VTSP_LoadKey(const TCS_CONTEX > > >
&phKeyHMAC) ); >
> > > > > // Verify Auth >
> > - paramTextSize = BSG_PackList(paramText,
3, > > > + paramTextSize =
BSG_PackList(paramText, 2, > > >
BSG_TPM_RESULT, &status, > > > -
BSG_TPM_COMMAND_CODE,
&command, > > > -
BSG_TPM_HANDLE, newKeyHandle); > > > +
BSG_TPM_COMMAND_CODE, &command); >
> > > > > TPMTRYRETURN( VerifyAuth(
paramText, paramTextSize, > > >
parentAuth, auth, > > > diff -r 15ff55aab051
tools/vtpm_manager/tcs/tcs.c > > > ---
a/tools/vtpm_manager/tcs/tcs.c Mon Mar 05 15:15:03
2007 -0800 > > > +++ b/tools/vtpm_manager/tcs/tcs.c
Thu Apr 05 10:24:12 2007 -0700 > > > @@ -901,7
+901,7 @@ TPM_RESULT TCSP_LoadKeyByBlob(TCS_CONTEX > > >
// setup input/output parameters block > > >
TPM_TAG tag = TPM_TAG_RQU_AUTH1_COMMAND; > > >
UINT32 paramSize = 0; > > > -
TPM_COMMAND_CODE ordinal = TPM_ORD_LoadKey; > > > +
TPM_COMMAND_CODE ordinal = TPM_ORD_LoadKey2; > > >
TPM_RESULT returnCode = TPM_SUCCESS; > > >
> > > // setup the TPM driver input and output
buffers > > > diff -r 15ff55aab051
tools/vtpm_manager/util/tcg.h > > > ---
a/tools/vtpm_manager/util/tcg.h Mon Mar 05 15:15:03 2007
-0800 > > > +++ b/tools/vtpm_manager/util/tcg.h
Thu Apr 05 10:24:24 2007 -0700 > > > @@ -250,6 +250,7 @@
typedef struct pack_constbuf_t { > > > #define
TPM_ORD_ReadManuMaintPub (48UL +
TPM_PROTECTED_ORDINAL) > > > #define TPM_ORD_CertifyKey
(50UL + TPM_PROTECTED_ORDINAL)
> > > #define TPM_ORD_Sign
(60UL + TPM_PROTECTED_ORDINAL) >
> > +#define TPM_ORD_LoadKey2
(65UL + TPM_PROTECTED_ORDINAL) > > >
#define TPM_ORD_GetRandom
(70UL + TPM_PROTECTED_ORDINAL) > > > #define
TPM_ORD_StirRandom (71UL
+ TPM_PROTECTED_ORDINAL) > > > #define TPM_ORD_SelfTestFull
(80UL +
TPM_PROTECTED_ORDINAL) > > > > > > > >
> ________________________________ > > > > > >
From: xense-devel-bounces@xxxxxxxxxxxxxxxxxxx > >
> [mailto:xense-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of
Maximilian > > > Loy > > >
Sent: Monday, March 26, 2007 4:40 AM > > >
To: xense-devel@xxxxxxxxxxxxxxxxxxx > > >
Subject: [Xense-devel] vtpm_managerd problem with
Infineon TPM > > > 1.2 > > > > > >
> > > Hi everybody, > >
> > > > i am having problems
to get the vtpm_managerd (Xen 3.0.4.1) to > > > work
with the Infineon TPM 1.2 (platform is a HP nx6325). > > >
> > > I was having the
BAD_ORDINAL problems like discussed earlier on > > > this
list, but i could solve them with applying the patch from: > >
> > > > http://lists.xensource.com/archives/html/xense-devel/2006-12/msg00020.ht
> > > ml > > > > > >
This resulted in TPM_AUTHFAIL like in > >
> > > > http://lists.xensource.com/archives/html/xense-devel/2006-12/msg00024.ht
> > > ml > > >
giving me the following output after taking the ownership: > >
> ... > > >
INFO[VTSP]: Loading Key into TPM. > > >
ERROR[TCS]: TCSP_LoadKeyByBlob Failed with return
code > > > TPM_AUTHFAIL > > >
ERROR in VTSP_LoadKey at vtsp.c:634 code:
TPM_AUTHFAIL. > > > ERROR in
VTPM_Init_Manager at vtpm_manager.c:240 code: > > >
TPM_AUTHFAIL. > > > ERROR[VTPM]:
Closing vtpmd due to error during startup. > > > > >
> Maybe it has something to do with the
patch, as the line 634 in > > > vtsp.c has been modified by
it. > > > > > > Any
help would be very appreciated! > > > > > >
Best regards, Max > > > >
> > > _______________________________________________ >
> > Xense-devel mailing list > > > Xense-devel@xxxxxxxxxxxxxxxxxxx > > >
http://lists.xensource.com/xense-devel > >
_______________________________________________ > > Xense-devel
mailing list > > Xense-devel@xxxxxxxxxxxxxxxxxxx > >
http://lists.xensource.com/xense-devel
>
_______________________________________________ > Xense-devel
mailing list > Xense-devel@xxxxxxxxxxxxxxxxxxx >
http://lists.xensource.com/xense-devel
_______________________________________________
Xense-devel mailing list
Xense-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xense-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- Re: [Xense-devel] vtpm_managerd problem with Infineon TPM 1.2, (continued)
- Re: [Xense-devel] vtpm_managerd problem with Infineon TPM 1.2, Stefan Berger
- Re: [Xense-devel] vtpm_managerd problem with Infineon TPM 1.2, Maximilian Loy
- Re: [Xense-devel] vtpm_managerd problem with Infineon TPM 1.2, Stefan Berger
- RE: [Xense-devel] vtpm_managerd problem with Infineon TPM 1.2, Cihula, Joseph
- Re: [Xense-devel] vtpm_managerd problem with Infineon TPM 1.2, Maximilian Loy
- Re: [Xense-devel] vtpm_managerd problem with Infineon TPM 1.2, Stefan Berger
- Re: [Xense-devel] vtpm_managerd problem with Infineon TPM 1.2, Maximilian Loy
- RE: [Xense-devel] vtpm_managerd problem with Infineon TPM 1.2, Cihula, Joseph
- Re: [Xense-devel] vtpm_managerd problem with Infineon TPM 1.2, Maximilian Loy
- RE: [Xense-devel] vtpm_managerd problem with Infineon TPM 1.2, Cihula, Joseph
- Re: [Xense-devel] vtpm_managerd problem with Infineon TPM 1.2,
Maximilian Loy <=
|
|
|