remsim-client: allow for local handling of APDUs
During many remote sim use cases, 99% of the SIM card related accesses could be handled locally on the client. Only communication related to cryptographic authentication as well as OTA related bits need to go to the real SIM card.
So the idea of this ticket is to implement some kind of "local proxy" that can run on the client, and which handles [possibly configurable degrees] of features locally.
For sure the entire [lengthy, time-consuming] phonebook and SMS related accesses can be handled locally in most use cases. For other files containing Kc or TMSI it is possible to handle locally. Finally, for things like the IMSI we most certainly always want to go back to the real SIM card and could [if at all] only cache it in the client.
One idea would be to use the vsmartcard framework of Frank Morgner for this. It already implements ISO7816 filesystem handling for fixed and transparent EF, DF, ADF, and the usual read/update commands. It seems to lack some kind of persistent store, and has no card profile for SIM/USIM yet.
However, thinking of it - its implemented in python which may not be available in all target platforms :/
So wee provable have to implement this based on the SIM/USIM filesystem description of libosmosim in C.