Ken, I ran an automated test to perform 45,000 iterations of the following and it succeeded without issue. 1. TPM_GetRandom () 2. TPM_SealCurrPCR () 3. TPM_Unseal () 4. Compare the plain text random data against the unsealed data. Right now we can't replicate this issue in a development environment so I'm going to run some different tests, log more information in our release environment and try some of your other suggestions.
Ken, When I return next week, I'll set up a test to get a true failing percentage.
Ken and Stefan, I will look at the -v option or some other way to log more information so I can compare successful and unsuccessful operations. I don't know if we can get a true percentage of how often this is occurring. We have hundreds of engineers using our Windows 10 implementation on their target hardware and we'd need to set up some type of framework to record all operations. That's not a viable option at the moment. I don't have access to a Linux box but I can probably get a Windows environment...
All commands are working and we've only encountered this issue with sealing maybe 4 or 5 times. 99% of the time, sealing works as expected. And we haven't encountered any other issues with other commands yet. Thanks Ken, I'll investigate the -v option. Correction: We have seen this same error with unsealing as well. I wasn't able to see a TPM log for an unsealing failure until now and it's also throwing ERR_BADRESPONSETAG. 99% of the time, both sealing and unsealing are working.
All commands are working and we've only encountered this issue with sealing maybe 4 or 5 times. 99% of the time, sealing works as expected. And we haven't encountered any other issues with other commands yet. Thanks Ken, I'll investigate the -v option.
Ken, This is our environment: 1. Windows 10 IoT RS5 1809 running in an embedded environment. 2. Hardware TPM chip (SLB9670VQ1.2) with firmware 6.43. 3. Our custom TPM management code that leverages libtpm version 4769 (no TPM proxy), OpenSSL 1.0.2, Windows TBS service and the Windows TPM driver. Our TPM management code uses the RNG, sealing and unsealing functionality of the TPM. We leverage libtpm and Windows TBS like so: 1. We initialize libtpm with TPM_LOWLEVEL_TRANSPORT_TCP_SOCKET (TPM_LowLevel_Transport_Init...
Ken, This is our environment: 1. Windows 10 IoT RS5 1809 running in an embedded environment. 2. Hardware TPM chip (SLB9670VQ1.2) with firmware 6.43. 3. Our custom TPM management code that leverages libtpm version 4769 (no TPM proxy), OpenSSL 1.0.2, Windows TBS service and the Windows TPM driver. Our TPM management code uses the RNG, sealing and unsealing functionality of the TPM. We leverage libtpm and Windows TBS like so: 1. We initialize libtpm with TPM_LOWLEVEL_TRANSPORT_TCP_SOCKET (TPM_LowLevel_Transport_Init...
Ken, This is our environment: 1. Windows 10 IoT RS5 1809 running in an embedded environment. 2. Hardware TPM chip (SLB9670VQ1.2) with firmware 6.43. 3. Our custom TPM management code that leverages libtpm version 4769 (no TPM proxy), OpenSSL 1.0.2, Windows TBS service and the Windows TPM driver. Our TPM management code uses the RNG, sealing and unsealing functionality of the TPM. We leverage libtpm and Windows TBS like so: 1. We initialize libtpm with TPM_LOWLEVEL_TRANSPORT_TCP_SOCKET (TPM_LowLevel_Transport_Init...