Closed preisacm closed 3 years ago
Hi @preisacm, sorry for the long delay on responding to this issue
To make sure I understand the issue: you're attempting to create a key in your TPM (using the ecdaa-create_tpm_key-util
utility), and use that key in the tests, correct? (I.e. you're not using some other key that was created in the TPM some other way, at another time)
Do you know what firmware version this TPM has? You can use this tool (also available here, if the instructions are more helpful there) to check the firmware version.
The reason I ask is that the failing test 15 (the signature_math_checks
in particular) looks like a failure related to Infineon SLB 9670 TPMs with firmware version < 7.63 (I think; I may have those numbers slightly wrong). See this closed issue.
Also, could you post the contents of pub_key.txt
and handle.txt
?
The ecdaa-create_tpm_key-util
utility clears the TPM before any key is installed, so: yes, there are no other keys in place
I use 3 different TPMs, all Infineon SLB9665. Here is what your tool is saying:
root@intel1:~/infineon-tpm-update# ./TPMFactoryUpd -info
**********************************************************************
* Infineon Technologies AG TPMFactoryUpd Ver 01.04.2811.00 *
**********************************************************************
TPM information:
----------------
Firmware valid : Yes
TPM family : 2.0
TPM firmware version : 5.61.2785.0
TPM platformAuth : Not Empty Buffer
Remaining updates : 63
root@amd1:~/infineon-tpm-update# ./TPMFactoryUpd -info
**********************************************************************
* Infineon Technologies AG TPMFactoryUpd Ver 01.04.2811.00 *
**********************************************************************
TPM information:
----------------
Firmware valid : Yes
TPM family : 2.0
TPM firmware version : 5.63.3353.0
TPM platformAuth : Not Empty Buffer
Remaining updates : 64
And I see that the older firmware version fails, while the newer one works perfectly fine. I did obviously test only the old machine. Thanks for bringing that up!
I assume that i can use the key created with the util (pubkey.txt and handle.txt) also for testing the member_tpm functions of your library? Basically by creating a file-based DAA protocol similar to the demo in zour repo.
Your tool can upgrade a firmware, but do you know where I get the firmware binary (the TPM is detachable and was bought separately from the computer). I didn't find an Infineon binary Repo at all and the board vendor (Gigabyte) does not seem to provide anything either.
the older firmware version fails, while the newer one works perfectly fine
Ah, OK, I'm glad this at least makes sense.
I should explain this in the docs, if it's not there (and perhaps have the test I noticed explicitly scream something about "this TPM may be too old". Ha)
I assume that i can use the key created with the util (pubkey.txt and handle.txt) also for testing the member_tpm functions of your library? Basically by creating a file-based DAA protocol similar to the demo in zour repo.
Yes (assuming you're using a new-enough TPM, of course). Apologies that I still haven't updated those demo examples to use a TPM
do you know where I get the firmware binary
Hmm, no, not really, sorry. Perhaps you can reach out to Infineon?
Thanks for your help. I'm asking for support at Infineon to get the FW updates. Regarding the DAA Example with TPM: I still fail there to get it run, but i will file a new issue for that when I have a proper demo code showing my problem.
I'm asking for support at Infineon to get the FW updates.
Ok, good luck! Sorry I couldn't help more.
i will file a new issue for that when I have a proper demo
Sounds good. Thanks for doing that.
Problem
The CTests which use a key in a present TPM fail in different setups (Tests #13-16). Generating a key inside the TPM with resulting
pub_key.txt
andhandle.txt
works withecdaa-create_tpm_key-util
Expected behaviour
Given the a working TPM holding the correct key, the TPM tests pass.
How is the problem reproduced
libtss2
built from source and withlibtss2-dev
package from Debian/UbuntuGiven a minimal installation, I did the following on Debian 10:
Instead of using
libtss2-dev
you provide an install script which buildslibtss2
from source. I tried that as well.Result
I cannot get these test to pass. It seems to be a problem with the file format of
pub_key.txt
When playing around with the provided functions to parse the public key I ended up with the error message that the pubkey does not lie on the ECC curve (probably a file encoding problem?).Best regards, Michael Preisach