Feature #5481


SIM card interface for doubango

Added by laforge almost 2 years ago. Updated almost 2 years ago.

Target version:
Start date:
Due date:
% Done:



The pre-existing doubango library code assumes that the IMS client has knowledge of the secret key material (K + OP/OPc) in order to perform the authentication and IPsec key establoshment to the P-CSCF.

This may be the case in some testing/lab setups, but in general this key material is stored on the ISIM or USIM application of a SIM card.

If we want to use doubango with such standard cards, we need some kind of interface how doubango can perform authentication via ISIM/USIM.

The interface should be rather generic, as the detailed interface for SIM access will be highly platform specific:
  • For development on a normal Linux laptop, a pcsc-lite based interface to a smart card reader will be used.
  • For execution inside a specific phone, phone specific interfaces for SIM card access may be used (QMI, AT+CSIM, ...)


  • generic interface for SIM based authentication in doubango
  • reference implementation for accessing a SIM in pcsc-lite compatible reader

Related issues

Related to Open Source IMS Client - Feature #5482: VoWiFi client for creating [outer] IPsec tunnel to ePDG New03/07/2022

Actions #1

Updated by laforge almost 2 years ago

  • Related to Feature #5482: VoWiFi client for creating [outer] IPsec tunnel to ePDG added
Actions #2

Updated by laforge almost 2 years ago

So doubango has what it calls tinyHTTP for HTTP server and client mode. Maybe this is an option for adding an HTTP/REST style interface to perform the AKA via an external "SIM interface provider".

Actions #3

Updated by laforge almost 2 years ago

  • Priority changed from High to Urgent
  • % Done changed from 0 to 20

I've been slow in making progress, too many distractions in other projects.

There is a bunch of incomplete code that's too early to commit anywhere, both on the SIM server side (will be part of pySim) and also a bit on the user side.

The protocol currently looks like this over a unix domain socket.

I've documented it at AKA_socket_SIM_interface


Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)