From c499dc79a84a3bc31bb65f44684363f2b910d09f Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Sun, 7 Jan 2024 18:59:36 +0100 Subject: [PATCH] euicc: Fix eUICC list_notifications command Prior to this patch, the command would always raise exceptions. Change-Id: I75a7840c3f4b68bfc164a43908b100dd6e41e575 --- pySim/euicc.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pySim/euicc.py b/pySim/euicc.py index e45476fb..e405f307 100644 --- a/pySim/euicc.py +++ b/pySim/euicc.py @@ -141,12 +141,13 @@ class EuiccInfo2(BER_TLV_IE, tag=0xbf22, nested=[ProfileVersion, SVN, EuiccFirmw # SGP.22 Section 5.7.9: ListNotification class ProfileMgmtOperation(BER_TLV_IE, tag=0x81): - _construct = FlagsEnum(Byte, install=1, enable=2, disable=4, delete=8) + # we have to ignore the first byte which tells us how many padding bits are used in the last octet + _construct = Struct(Byte, "pmo"/FlagsEnum(Byte, install=0x80, enable=0x40, disable=0x20, delete=0x10)) class ListNotificationReq(BER_TLV_IE, tag=0xbf28, nested=[ProfileMgmtOperation]): pass class SeqNumber(BER_TLV_IE, tag=0x80): - _construct = GreedyInteger -class NotificationAddress(BER_TLV_IE, tag=0x82): + _construct = GreedyInteger() +class NotificationAddress(BER_TLV_IE, tag=0x0c): _construct = Utf8Adapter(GreedyBytes) class Iccid(BER_TLV_IE, tag=0x5a): _construct = BcdAdapter(GreedyBytes)