It is obviously a must that any SIM card works in any cellular mobile device. By and large that works pretty smooth today. There is rigorous testing in place and I only know a few cases where SIM cards and devices did not harmonize and software updates were required to fix the issue. In the eSIM world where the user can’t remove the SIM card anymore but downloads a virtual SIM (a Profile) to a mobile device, interoperability is just as important. So how is this done in practice?
Interoperability in the context of this blog post means than any eUICC soldered into any device will be able to receive a virtual SIM card (a Profile) from any network operator in the world. In practice this means that any eUICC must be able to interoperate with any SM-DP+ on the Internet. In between, any LPA (Local Profile Assistant) app that sits between the eUICC chip and the SM-DP+ servers in the network must also be able to communicate to any SM-DP+.
For interoperability, all interfaces between the eUICC, LPA and SM-DP+ have been standardized and test specifications have been written by the GSMA. The SGP.23 test specification is publicly available and can be downloaded from the GSMA website. Here’s a link to a search that should lead to the latest version of the document.
While the GSMA has published architecture, implementation and test documents for eUICC remote service provisioning, one thing that was done elsewhere is the definition of the data format that describes the content of a virtual SIM card (a Profile) that can be downloaded to an eUICC over the Internet. The definition of this format was done by the SIMalliance in the ‘eUICC Profile Package: Interoperable Format Technical Specification’ that can be downloaded from their webpage.
If you’ve ever had a look into ETSI’s traditional SIM card specification you will immediately feel at home in this document. Basically it specifies a description language to encode ‘Profile Elements’ (PEs) that hold all information that can be downloaded into a SIM card. PEs contain things such as the directory and file structure, the PIN and PUK and many other things and are described in ASN.1 notation in the document. The ASN.1 notation is then converted into TLV (Type, Length, Value) format. Thankfully, Annex C of the document contains an example of the content of a typical SIM card encoded in ASN.1 and then converted to TLV format.
In other words, to be compatible, the SM-DP+ creates a Profile for download to the eUICC in the language laid out by the SIMalliance. It then downloads the resulting byte stream to the eUICC where a ‘Profile Package Interpreter’ looks at the data and creates the data structures described in there in its non-volatile memory. Obviously, the SIMalliance also has a test specification to ensure the profile generator the SM-DP+ and the profile interpreter on the eUICC can be tested by the manufacturers for their compatibility.