Hi,
I'm working on an application that is supposed to retrieve the OEF ID before interacting with the SEMS Lite and IoT applets.
I am using T1oI2C, SCP is mandatory and the communication with the IoT applet is using an ECKey session. That part works just fine, i.e. I can open up a platform session with SCP03 and use another session on top for ECKey and interact with the IoT applet. The problem is that these sessions get invalidated once I am issuing GP_Select calls as expected/documented (i.e., the session is closed implicitly when selecting another applet) to retrieve the OEF ID. The se05x_GetInfo demo elegantly works around this issue by simply ignoring it
I am wondering if there is a better way to re-establish a session than tearing it down completely including all allocations etc. and basically starting all over. I have tried a few things but ran into various issues, for example, re-creating the ECKey session via sss_session_open/sss_session_auth_open/se05x_CreateECKeySession/nxECKey_ReadEckaPublicKey/nxECKey_StoreAttestationPublicKey/sss_openssl_key_object_allocate_handle eventually fails because it tries to add the ec pubkey to the openssl keystore again with the same ID as before and ks_common_update_fat bails out because of the collission.
So basically my main question is: What is the best way to switch between the various applets? Additionally, I'd be interested if there is a way to retrieve the OEF ID by some other means than GP_Select + GP INS 'CA' GET DATA(IDENTIFY) maybe directly from the IoT applet?
KR