estkme-group / lpac

C-based eUICC LPA
GNU Affero General Public License v3.0
246 stars 61 forks source link

Differences in the use of Confirmation Code #134

Open Beloveu opened 1 month ago

Beloveu commented 1 month ago

As an eSIM user, carriers provide confirmation code (CC) to ensure the security of addition eSIM cards. However, differences in the implementation of CC during the eSIM install process have led to varied user understanding. The download solution provided by lpac is :LPA:1$smdp$matchingId$oid$confirmationCodeFlag. In practice, Android, Windows, and Apple devices prompt users to enter the CC through a pop-up window during the eSIM install process.

Users on Android, Windows, and Apple devices may find it difficult to understand that the CC needed by lpac is the same one they entered during the eSIM install process. Due to the difference in implementation, it is easy for users to misunderstand and submit the eSIM download request without entering the CC in lpac. Additionally, lpac's simultaneous upload of activation code (AC) and CC differs from the methods used by Android, Windows, and Apple devices. If carriers later upgrade their api and declare the CC submitted along with the AC as invalid or an unknown parameter, it could also result in the eSIM failing to install.

Here is an case: Educom.at provides the QR code formatted as LPA:1$smdp$matchingId, with the CC separately provided in the text of an email, instructing users that the CC should be entered during the eSIM install process within pop-up window. Users who have not developed or read lpac documentation carefully may not realized that the CC in email is the same as LPA:1$xxxxxxxxx$confirmationCode. Using the QR image/code: LPA:1$smdp$matchingId directly for download without the CC would result in the eSIM becoming invalid.

Based on the above information, as an ordinary user, I hope the team of lpac will consider whether to change the implementation of CC to align with the native methods used by Android, Windows, and Apple devices.

septs commented 1 month ago

lpac command-line utility, non-interaction by designed.

if need to control the details, need to use FFI[^ffi] to integrate.

[^ffi]: foreign function interface

Beloveu commented 1 month ago

lpac command-line utility, non-interaction by designed.

if need to control the details, need to use FFI1 to integrate.

Footnotes

  1. foreign function interface

Maybe we are discussing different issues. The key problem I raised is that native devices, during the eSIM download request process, verify with the carrier whether a confirmation code is required from the user. In practice, when the download request reaches the carrier, the carrier's server decides if a confirmation code is needed based on its own rules. This eSIM installation process is a validation-interaction process. Currently, lpac does not seem to have such a process; it lacks a design for commands that interact with the carrier.