diff --git a/pySim/ts_31_102.py b/pySim/ts_31_102.py index f347f67a..faf0f38d 100644 --- a/pySim/ts_31_102.py +++ b/pySim/ts_31_102.py @@ -1089,6 +1089,20 @@ class ADF_USIM(CardADF): (data, sw) = self._cmd.card._scc.terminal_profile(arg) self._cmd.poutput('SW: %s, data: %s' % (sw, data)) + def do_envelope(self, arg): + """Send an ENVELOPE command to the card.""" + (data, sw) = self._cmd.card._scc.envelope(arg) + self._cmd.poutput('SW: %s, data: %s' % (sw, data)) + + def do_envelope_sms(self, arg): + """Send an ENVELOPE command to the card.""" + tpdu_ie = SMS_TPDU() + tpdu_ie.from_bytes(h2b(arg)) + dev_ids = DeviceIdentities(decoded={'source_dev_id':'network','dest_dev_id':'uicc'}) + sms_dl = SMSPPDownload(children=[dev_ids, tpdu_ie]) + (data, sw) = self._cmd.card._scc.envelope(b2h(sms_dl.to_tlv())) + self._cmd.poutput('SW: %s, data: %s' % (sw, data)) + # TS 31.102 Section 7.3 sw_usim = {