From: Kent Y. <shp...@gm...> - 2006-08-22 13:56:44
|
Hi Norman, The TCS_* functions aren't meant to be called directly, you should use only Tspi_* API functions in your code. The TCS interface is only there to facilitate the calls from the Tspi down to the TPM. Kent On 8/21/06, N N <nor...@gm...> wrote: > Hi Kent & all, > > When calling TCS_EnumRegisteredKeys() and TCS_GetRegisteredKey(), I got the > "Core Service Connection doesn't exist" error message, while calling > Tspi_Context_GetRegisteredKeysByUUID() succeeds. Here is > the calling sequence: > > 1. Tspi_Context_Create() > > 2. Tspi_Context_Connect() > > 3. TCS_EnumRegisteredKeys() --> "Error: Core Service Connection doesn't > exist" > > 4. TCS_GetRegisteredKey() --> "Error: Core Service Connection doesn't exist" > > 5. Tspi_Context_GetRegisteredKeysByUUID() --> success > > > Using a debugger, I was able to see that inside TCS_EnumRegisteredKeys(), it > calls get_table_entry() to compare the address of the hContext parameter > against a gloabl struct ht's field entries->tcsContext. If there is no > match, it returns an error saying "Core Service Connection doesn't exist". > > Any clues why the error is happening for TCS_EnumRegisteredKeys() and > TCS_GetRegisteredKey(), and not > Tspi_Context_GetRegisteredKeysByUUID()? > > Thanks, > > Norman > > > P.S. here is the code: > > void test3() > { > TSS_RESULT tResult; > TSS_HCONTEXT hContext; > UINT32 numChildren = 0; > TSS_KM_KEYINFO *p_KeyHierarchy, *p_Key; > > // create context > tResult = Tspi_Context_Create(&hContext); > if (tResult != TSS_SUCCESS) { > fprintf(stderr, "Tspi_Context_Create failed. Error: %s\n", > Trspi_Error_String(tResult)); > } > > // connect to TCSD > tResult = Tspi_Context_Connect(hContext, NULL); > if (tResult != TSS_SUCCESS) { > fprintf(stderr, "Tspi_Context_Connect failed. Error: %s\n", > Trspi_Error_String(tResult)); > } > > > // get the key hiarchy under ancestorUUID > tResult = TCS_EnumRegisteredKeys(hContext, SRK_UUID, > &numChildren, > &p_KeyHierarchy); > if (tResult != TSS_SUCCESS) { > printf("TCS_EnumRegisteredKeys failed. Error: %s\n", > Trspi_Error_String(tResult)); > } > > > tResult = TCS_GetRegisteredKey(hContext, SRK_UUID, > &p_Key); > if (tResult != TSS_SUCCESS) { > printf("TCS_GetRegisteredKeys failed. Error: %s\n", > Trspi_Error_String(tResult)); > } > > > // get the key hiarchy > tResult = Tspi_Context_GetRegisteredKeysByUUID(hContext, > TSS_PS_TYPE_SYSTEM, > NULL, &numChildren, > &p_KeyHierarchy); > if (tResult != TSS_SUCCESS) { > printf("Tspi_Context_GetRegisteredKeysByUUID failed. > Error: %s\n", > Trspi_Error_String(tResult)); > } > > } > > ------------------------------------------------------------------------- > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job > easier > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > > _______________________________________________ > TrouSerS-users mailing list > Tro...@li... > https://lists.sourceforge.net/lists/listinfo/trousers-users > > > -- Kent Yoder IBM LTC Security Dev. |