Just a followup.
I can successfully sign a message using the -m option in ~/trousers-0.3.10/src/tspi/daa/test_sign. So I do not think the problem is the structure of the TrouSerS software. I suspect something in the chip. Error code 0x58, TPM_E_BAD_HANDLE, is not mentioned in the TPM command spec. The IBM TPM emulator suggests it's a problem with the session handle. Yet the previous stages worked. Here is my Stage 10 output when signData.payload was a hash digest message. The stage completed successfully: LOG_DEBUG TSPI daa/daa_verifier/verifier_transaction.c:364 compute_sign_challenge_host[20]:07DF58CC7C9AEF3834C748C0312AC52A4058B9DC LOG_DEBUG TSPI daa/daa_platform/platform.c:167 Tcsip_TPM_DAA_Sign(tcsContext=c0000001,hDAA=c0000008,sign_session=33857c, hTPM=c0000004 stage=9) LOG_DEBUG TSPI daa/daa_platform/platform.c:169 obj_tpm_get_policy(hTPM=C0000004) LOG_DEBUG TSPI daa/daa_platform/platform.c:172 Trspi_LoadBlob_UINT32(&offset, TPM_ORD_DAA_Sign, hashblob) LOG_DEBUG TSPI daa/daa_platform/platform.c:175 Trspi_Hash(TSS_HASH_SHA1, offset, hashblob, digest.digest) LOG_DEBUG TSPI daa/daa_platform/platform.c:178 Trspi_LoadBlob_UINT32(&offset, 0, hashblob) LOG_DEBUG TSPI daa/daa_platform/platform.c:181 Trspi_LoadBlob_UINT32(&offset, inputSize0:20 LOG_DEBUG TSPI daa/daa_platform/platform.c:186 Trspi_LoadBlob_UINT32(&offset, inputSize1:0 LOG_DEBUG TSPI rpc/tcstp/rpc_auth.c:37 RPC_OIAP_TP: TCS Context: 0xa028f207 TCSD tcsd_threads.c:232 total_recv_size 33, buf_size 1024, recd_so_far 28 TCSD tcsd_threads.c:277 recv_chunk_size 5 recd_so_far 28 TCSD tcsd_threads.c:284 Rx'd packet TCSD TCS rpc/tcstp/rpc.c:581 Dispatching ordinal 23 (OIAP) TCSD TCS rpc/tcstp/rpc_auth.c:44 tcs_wrap_OIAP: thread -1228639120 context a028f207 TCSD TCS tcsi_auth.c:40 Entering TCSI_OIAP To TPM: 00 C1 00 00 00 0A 00 00 00 0A TCSD TDDL tddl.c:171 Calling write to driver >From TPM: 00 C4 00 00 00 22 00 00 00 00 00 39 8C 59 2F F6 >From TPM: 46 84 2A 95 C3 E7 2D 38 88 73 C7 98 79 38 7F 8D >From TPM: 05 BB TCSD TCS tcs_auth_mgr.c:383 added auth for TCS a028f207 TPM 398c59 TCSD tcsd_threads.c:313 Sending 0x36 bytes back LOG_DEBUG TSPI obj_policy.c:230 Got a secret: 04 0C 8B 0D B6 11 64 34 7A C1 23 FE 39 AC 17 3A 6F 2D 2F B1 LOG_DEBUG TSPI daa/daa_platform/platform.c:194 secret_PerformAuth_OIAP(hTPM, TPM_ORD_DAA_Sign ret=0 LOG_DEBUG TSPI daa/daa_platform/platform.c:201 TCSP_DAASign(c0000001,c0000004,stage=9,14,1692d88,0,0,beb3670c) LOG_DEBUG TSPI rpc/tcstp/rpc_daa.c:121 RPC_DaaSign_TP: stage=9 LOG_DEBUG TSPI rpc/tcstp/rpc_daa.c:124 RPC_DaaSign_TP: TCS Context: 0xa028f207 LOG_DEBUG TSPI rpc/tcstp/rpc_daa.c:133 RPC_DaaSign_TP: inputSize0=<network>=20 <host>=20 LOG_DEBUG TSPI rpc/tcstp/rpc_daa.c:138 RPC_DaaSign_TP: inputSize1=<network>=0 <host>=0 LOG_DEBUG TSPI rpc/tcstp/rpc_daa.c:145 RPC_DaaSign_TP: sendTCSDPacket: 0x168d2d0 TCSD tcsd_threads.c:232 total_recv_size 118, buf_size 1024, recd_so_far 28 TCSD tcsd_threads.c:277 recv_chunk_size 90 recd_so_far 28 TCSD tcsd_threads.c:284 Rx'd packet TCSD TCS rpc/tcstp/rpc.c:581 Dispatching ordinal 75 (DaaSign) TCSD TCS rpc/tcstp/rpc_daa.c:155 tcs_wrap_DaaSign: thread -1228639120 hDAA 33857c TCSD TCS rpc/tcstp/rpc_daa.c:159 tcs_wrap_DaaSign: getData 2 (stage=9) TCSD TCS rpc/tcstp/rpc_daa.c:163 getData 3 inputSize0=20 TCSD TCS rpc/tcstp/rpc_daa.c:171 getData 4 inputData0 TCSD TCS rpc/tcstp/rpc_daa.c:177 getData 5 TCSD TCS rpc/tcstp/rpc_daa.c:182 getData 5 inputSize1=0 TCSD TCS rpc/tcstp/rpc_daa.c:200 getData 7 TCSD TCS rpc/tcstp/rpc_daa.c:207 tcs_wrap_DaaSign: -> TCSP_DaaSign_internal TCSD TCS tcsi_daa.c:128 TCSP_DaaSign_internal: Enter TCSD TCS tcsi_daa.c:162 req_mgr_submit_req (oldOffset=88) To TPM: 00 C2 00 00 00 58 00 00 00 31 00 33 85 7C 09 00 To TPM: 00 00 14 07 DF 58 CC 7C 9A EF 38 34 C7 48 C0 31 To TPM: 2A C5 2A 40 58 B9 DC 00 00 00 00 00 39 8C 59 17 To TPM: 68 4B 39 D8 93 4D 71 E8 18 A7 9D 8B 24 E8 EF F0 To TPM: 5A A1 8F 00 D6 0A 1C 00 96 C3 16 98 EE 56 73 A4 To TPM: C8 41 36 F0 5C 99 39 F3 TCSD TDDL tddl.c:171 Calling write to driver >From TPM: 00 C5 00 00 00 4B 00 00 00 00 00 00 00 14 54 31 >From TPM: F5 36 12 FB A0 43 EC 89 C1 F4 85 D6 2D 18 22 03 >From TPM: EC CA D2 49 32 AF 32 F2 8D 78 E3 5F DA B6 B2 28 >From TPM: A8 8E 95 EE C8 D9 00 3C 91 D7 ED 05 B3 4B A4 3A >From TPM: 98 C4 0B 79 C0 AD 31 13 E5 E5 93 TCSD TCS tcsi_daa.c:166 UnloadBlob (paramSize=75) result=0 TCSD TCS tcsi_daa.c:188 Leaving DaaSign with result:0 To TPM: 00 C1 00 00 00 12 00 00 00 BA 00 39 8C 59 00 00 To TPM: 00 02 TCSD TDDL tddl.c:171 Calling write to driver >From TPM: 00 C4 00 00 00 0A 00 00 00 22 LOG_RETERR TPM tcsi_admin.c:464: 0x22 TCSD TCS tcs_auth_mgr.c:287 Tried to close an invalid auth handle: 398c59 TCSD TCS tcs_auth_mgr.c:118 no threads need to be signaled. TCSD TCS rpc/tcstp/rpc_daa.c:216 tcs_wrap_DaaSign: <- TCSP_DaaSign_internal TCSD tcsd_threads.c:313 Sending 0x60 bytes back LOG_DEBUG TSPI rpc/tcstp/rpc_daa.c:153 RPC_DaaSign_TP: getData outputSize LOG_DEBUG TSPI rpc/tcstp/rpc_daa.c:171 RPC_DaaSign_TP: getData outputData (outputSize=20) LOG_DEBUG TSPI rpc/tcstp/rpc_daa.c:181 RPC_DaaSign_TP: result=0 LOG_DEBUG TSPI daa/daa_platform/platform.c:221 TCSP_DAASign stage=9 outputSize=20 outputData=beb3676c RESULT=0 LOG_DEBUG TSPI daa/daa_platform/platform.c:2422 done Sign 9 - compute sign challenge host. Return nonce_tpm LOG_DEBUG TSPI daa/daa_platform/platform.c:167 Tcsip_TPM_DAA_Sign(tcsContext=c0000001,hDAA=c0000008,sign_session=33857c, hTPM=c0000004 stage=10) LOG_DEBUG TSPI daa/daa_platform/platform.c:169 obj_tpm_get_policy(hTPM=C0000004) LOG_DEBUG TSPI daa/daa_platform/platform.c:172 Trspi_LoadBlob_UINT32(&offset, TPM_ORD_DAA_Sign, hashblob) LOG_DEBUG TSPI daa/daa_platform/platform.c:175 Trspi_Hash(TSS_HASH_SHA1, offset, hashblob, digest.digest) LOG_DEBUG TSPI daa/daa_platform/platform.c:178 Trspi_LoadBlob_UINT32(&offset, 0, hashblob) LOG_DEBUG TSPI daa/daa_platform/platform.c:181 Trspi_LoadBlob_UINT32(&offset, inputSize0:1 LOG_DEBUG TSPI daa/daa_platform/platform.c:186 Trspi_LoadBlob_UINT32(&offset, inputSize1:20 LOG_DEBUG TSPI rpc/tcstp/rpc_auth.c:37 RPC_OIAP_TP: TCS Context: 0xa028f207 TCSD tcsd_threads.c:232 total_recv_size 33, buf_size 1024, recd_so_far 28 TCSD tcsd_threads.c:277 recv_chunk_size 5 recd_so_far 28 TCSD tcsd_threads.c:284 Rx'd packet TCSD TCS rpc/tcstp/rpc.c:581 Dispatching ordinal 23 (OIAP) TCSD TCS rpc/tcstp/rpc_auth.c:44 tcs_wrap_OIAP: thread -1228639120 context a028f207 TCSD TCS tcsi_auth.c:40 Entering TCSI_OIAP To TPM: 00 C1 00 00 00 0A 00 00 00 0A TCSD TDDL tddl.c:171 Calling write to driver >From TPM: 00 C4 00 00 00 22 00 00 00 00 00 6B 6C 82 ED AD >From TPM: F9 4F 18 BE E7 DA 5B 94 4A D1 29 8C EE BA A1 29 >From TPM: FB B1 TCSD TCS tcs_auth_mgr.c:383 added auth for TCS a028f207 TPM 6b6c82 TCSD tcsd_threads.c:313 Sending 0x36 bytes back LOG_DEBUG TSPI obj_policy.c:230 Got a secret: 04 0C 8B 0D B6 11 64 34 7A C1 23 FE 39 AC 17 3A 6F 2D 2F B1 LOG_DEBUG TSPI daa/daa_platform/platform.c:194 secret_PerformAuth_OIAP(hTPM, TPM_ORD_DAA_Sign ret=0 LOG_DEBUG TSPI daa/daa_platform/platform.c:201 TCSP_DAASign(c0000001,c0000004,stage=a,1,beb36773,14,168ffb0,beb3670c) LOG_DEBUG TSPI rpc/tcstp/rpc_daa.c:121 RPC_DaaSign_TP: stage=10 LOG_DEBUG TSPI rpc/tcstp/rpc_daa.c:124 RPC_DaaSign_TP: TCS Context: 0xa028f207 LOG_DEBUG TSPI rpc/tcstp/rpc_daa.c:133 RPC_DaaSign_TP: inputSize0=<network>=1 <host>=1 LOG_DEBUG TSPI rpc/tcstp/rpc_daa.c:138 RPC_DaaSign_TP: inputSize1=<network>=20 <host>=20 LOG_DEBUG TSPI rpc/tcstp/rpc_daa.c:145 RPC_DaaSign_TP: sendTCSDPacket: 0x168d2d0 TCSD tcsd_threads.c:232 total_recv_size 119, buf_size 1024, recd_so_far 28 TCSD tcsd_threads.c:277 recv_chunk_size 91 recd_so_far 28 TCSD tcsd_threads.c:284 Rx'd packet TCSD TCS rpc/tcstp/rpc.c:581 Dispatching ordinal 75 (DaaSign) TCSD TCS rpc/tcstp/rpc_daa.c:155 tcs_wrap_DaaSign: thread -1228639120 hDAA 33857c TCSD TCS rpc/tcstp/rpc_daa.c:159 tcs_wrap_DaaSign: getData 2 (stage=10) TCSD TCS rpc/tcstp/rpc_daa.c:163 getData 3 inputSize0=1 TCSD TCS rpc/tcstp/rpc_daa.c:171 getData 4 inputData0 TCSD TCS rpc/tcstp/rpc_daa.c:177 getData 5 TCSD TCS rpc/tcstp/rpc_daa.c:182 getData 5 inputSize1=20 TCSD TCS rpc/tcstp/rpc_daa.c:192 getData 6 inputData1 TCSD TCS rpc/tcstp/rpc_daa.c:200 getData 7 TCSD TCS rpc/tcstp/rpc_daa.c:207 tcs_wrap_DaaSign: -> TCSP_DaaSign_internal TCSD TCS tcsi_daa.c:128 TCSP_DaaSign_internal: Enter TCSD TCS tcsi_daa.c:162 req_mgr_submit_req (oldOffset=89) To TPM: 00 C2 00 00 00 59 00 00 00 31 00 33 85 7C 0A 00 To TPM: 00 00 01 01 00 00 00 14 E7 E8 3E 4A 52 6F 55 16 To TPM: 31 1B B4 33 66 73 86 D3 35 8E B4 6B 00 6B 6C 82 To TPM: 84 B0 A9 DE A2 85 57 F9 22 A1 8F 5B FC E5 24 19 To TPM: 43 23 88 E9 00 8C 06 B1 7C 3F 68 1D 97 3E 00 03 To TPM: 37 BC DA 1D F3 3E 7B D4 26 TCSD TDDL tddl.c:171 Calling write to driver >From TPM: 00 C5 00 00 00 4B 00 00 00 00 00 00 00 14 B0 90 >From TPM: 7A 4C 2E D7 52 D8 68 0B 93 F1 31 18 44 23 72 35 >From TPM: 2F 4F 28 4E D1 2E 43 E0 EB 1A AE 50 69 4D 3F 30 >From TPM: D1 AB F1 8E E3 AD 00 AD EF 59 6C C5 FE 5B 07 18 >From TPM: 70 8D 5A E4 7E 48 F1 1D 3D A1 76 TCSD TCS tcsi_daa.c:166 UnloadBlob (paramSize=75) result=0 TCSD TCS tcsi_daa.c:188 Leaving DaaSign with result:0 To TPM: 00 C1 00 00 00 12 00 00 00 BA 00 6B 6C 82 00 00 To TPM: 00 02 TCSD TDDL tddl.c:171 Calling write to driver >From TPM: 00 C4 00 00 00 0A 00 00 00 22 LOG_RETERR TPM tcsi_admin.c:464: 0x22 TCSD TCS tcs_auth_mgr.c:287 Tried to close an invalid auth handle: 6b6c82 TCSD TCS tcs_auth_mgr.c:118 no threads need to be signaled. TCSD TCS rpc/tcstp/rpc_daa.c:216 tcs_wrap_DaaSign: <- TCSP_DaaSign_internal TCSD tcsd_threads.c:313 Sending 0x60 bytes back LOG_DEBUG TSPI rpc/tcstp/rpc_daa.c:153 RPC_DaaSign_TP: getData outputSize LOG_DEBUG TSPI rpc/tcstp/rpc_daa.c:171 RPC_DaaSign_TP: getData outputData (outputSize=20) LOG_DEBUG TSPI rpc/tcstp/rpc_daa.c:181 RPC_DaaSign_TP: result=0 LOG_DEBUG TSPI daa/daa_platform/platform.c:221 TCSP_DAASign stage=10 outputSize=20 outputData=beb36768 RESULT=0 LOG_DEBUG TSPI daa/daa_platform/platform.c:2430 calculation of c: ch[20]07DF58CC7C9AEF3834C748C0312AC52A4058B9DC LOG_DEBUG TSPI daa/daa_platform/platform.c:2433 calculation of c: nonce_tpm[20]5431F53612FBA043EC89C1F485D62D182203ECCA LOG_DEBUG TSPI daa/daa_platform/platform.c:2436 calculation of c: sign_data.payloadFlag[1]1 LOG_DEBUG TSPI daa/daa_platform/platform.c:2439 calculation of c: signdata.payload[20]E7E83E4A526F5516311BB433667386D3358EB46B LOG_DEBUG TSPI daa/daa_platform/platform.c:2442 done Sign 10 - compute signData.payload. LOG_DEBUG TSPI daa/daa_platform/platform.c:2445 Return c_bytes[20]B0907A4C2ED752D8680B93F13118442372352F4F ?
------------------------------------------------------------------------------
_______________________________________________ TrouSerS-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/trousers-users
