
    i                        d Z ddlmZmZmZmZmZmZmZ ddl	m
Z
mZ ddlmZmZmZ ddlT  G d de          Z G d d	e          Z G d
 de          Z G d de          Z G d de          Z G d de          Z G d de          ZdS )z
Definitions from 3GPP TS 31.103 V18.1.0 which are shared by both USIM (31.102) and ISIM (31.103) and
hence need to be in a separate python module to avoid circular dependencies.
    )StructSwitchGreedyStringInt8ubPrefixedEnumByte)
BER_TLV_IETLV_IE_Collection)BytesUtf8AdapterGreedyBytes)*c                   @     e Zd Z G d ded          Zd
 fd		Z xZS )EF_UICCIARIc                   $    e Zd Z ee          ZdS )EF_UICCIARI.iariN__name__
__module____qualname__r   r   
_construct     D/home/jenkins/workspace/simtester-sanitize/pySim/ts_31_103_shared.pyiarir               [--


r   r      tag6fe7NEF.UICCIARI	UICC IARIc                 f     t                      j        d||||d| t          j        | _        d S Nfidsfidnamedescr   )super__init__r   r   _tlvselfr'   r(   r)   r*   kwargs	__class__s         r   r,   zEF_UICCIARI.__init__    s9    LSt$TLLVLLL$			r   )r!   Nr"   r#   )r   r   r   r
   r   r,   __classcell__r1   s   @r   r   r      sn        . . . . .zt . . . .% % % % % % % % % %r   r   c                        e Zd Z G d ded          Z G d ded          Z G d d	eeeg
          Zd fd	Z xZ	S )EF_IMSConfigDatac                   $    e Zd Z ed          ZdS )&EF_IMSConfigData.ImsConfigDataEncoding   Nr   r   r   r   r   r   r   r   ImsConfigDataEncodingr7   &           U1XX


r   r:   r   r   c                       e Zd ZeZdS )EF_IMSConfigData.ImsConfigDataNr   r   r   r   r   r   r   r   ImsConfigDatar=   (           !


r   r?      c                       e Zd ZdS )(EF_IMSConfigData.ImsConfigDataCollectionNr   r   r   r   r   r   ImsConfigDataCollectionrC   +           r   rE   nested6ff8NEF.IMSConfigDataIMS Configuration Datac                 f     t                      j        d||||d| t          j        | _        d S r%   )r+   r,   r5   rE   r-   r.   s         r   r,   zEF_IMSConfigData.__init__-   s9    LSt$TLLVLLL$<			r   )rI   NrJ   rK   )
r   r   r   r
   r:   r?   r   rE   r,   r2   r3   s   @r   r5   r5   %   s            
    " " " " "
 " " " "    "3=RTa<b    = = = = = = = = = =r   r5   c                   f    e Zd Z G d ded          Z G d ded          Z G d d	ed
          Z G d ded          Z G d ded          Z G d ded          Z	 G d ded          Z
 G d ded          Z G d ded          Z G d ded          Z G d  d!ed"          Z G d# d$ed%          Z G d& d'ed          Z G d( d)ed          Z G d* d+ed,eeeeee	e
eeeeeg-          Z G d. d/ed0eeeg-          Z G d1 d2ed3eg-          Zd9 fd8	Z xZS ):EF_XCAPConfigDatac                       e Zd ZdS )EF_XCAPConfigData.AccessNrD   r   r   r   AccessrP   3   rF   r   rQ   rA   r   c                       e Zd ZdS )!EF_XCAPConfigData.ApplicationNameNrD   r   r   r   ApplicationNamerS   5   rF   r   rT      c                       e Zd ZdS )EF_XCAPConfigData.ProviderIDNrD   r   r   r   
ProviderIDrW   7   rF   r   rX      c                       e Zd ZdS )EF_XCAPConfigData.URINrD   r   r   r   URIr[   9   rF   r   r\      c                       e Zd ZdS ),EF_XCAPConfigData.XcapAuthenticationUserNameNrD   r   r   r   XcapAuthenticationUserNamer_   ;   rF   r   r`      c                       e Zd ZdS ),EF_XCAPConfigData.XcapAuthenticationPasswordNrD   r   r   r   XcapAuthenticationPasswordrc   =   rF   r   rd      c                       e Zd ZdS )(EF_XCAPConfigData.XcapAuthenticationTypeNrD   r   r   r   XcapAuthenticationTyperg   ?   rF   r   rh      c                       e Zd ZdS )EF_XCAPConfigData.AddressTypeNrD   r   r   r   AddressTyperk   A   rF   r   rl      c                       e Zd ZdS )EF_XCAPConfigData.AddressNrD   r   r   r   Addressro   C   rF   r   rp      c                       e Zd ZdS )'EF_XCAPConfigData.PDPAuthenticationTypeNrD   r   r   r   PDPAuthenticationTypers   E   rF   r   rt      c                       e Zd ZdS )'EF_XCAPConfigData.PDPAuthenticationNameNrD   r   r   r   PDPAuthenticationNamerw   G   rF   r   rx      c                       e Zd ZdS ))EF_XCAPConfigData.PDPAuthenticationSecretNrD   r   r   r   PDPAuthenticationSecretr{   I   rF   r   r|      c                       e Zd ZdS )EF_XCAPConfigData.AccessForXCAPNrD   r   r   r   AccessForXCAPr   L   rF   r   r   c                       e Zd ZeZdS )+EF_XCAPConfigData.NumberOfXcapConnParPolicyN)r   r   r   r   r   r   r   r   NumberOfXcapConnParPolicyr   N   s        


r   r   c                       e Zd ZdS )*EF_XCAPConfigData.XcapConnParamsPolicyPartNrD   r   r   r   XcapConnParamsPolicyPartr   Q   s         	r   r      )r    rH   c                       e Zd ZdS )&EF_XCAPConfigData.XcapConnParamsPolicyNrD   r   r   r   XcapConnParamsPolicyr   V   rF   r   r      c                       e Zd ZdS )(EF_XCAPConfigData.XcapConnParamsPolicyDONrD   r   r   r   XcapConnParamsPolicyDOr   X   rF   r   r   r   6ffcNEF.XCAPConfigDataXCAP Configuration Datac                 f     t                      j        d||||d| t          j        | _        d S r%   )r+   r,   rN   r   r-   r.   s         r   r,   zEF_XCAPConfigData.__init__Z   s9    LSt$TLLVLLL%:			r   )r   Nr   r   )r   r   r   r
   rQ   rT   rX   r\   r`   rd   rh   rl   rp   rt   rx   r|   r   r   r   r   r   r,   r2   r3   s   @r   rN   rN   2   s                   *$        ZT        jd        ZT        ZT                jd        *$        
        
        *$        
        JD        :4Zdfi!;=W!7gOd!68OAQ    
    zt]Leg  =A        ?S>T    ; ; ; ; ; ; ; ; ; ;r   rN   c                   @     e Zd Z G d ded          Zd
 fd		Z xZS )EF_WebRTCURIc                   $    e Zd Z ee          ZdS )EF_WebRTCURI.uriNr   r   r   r   urir   `   r   r   r   r   r   6ffaNEF.WebRTCURI
WebRTC URIc                 f     t                      j        d||||d| t          j        | _        d S r%   )r+   r,   r   r   r-   r.   s         r   r,   zEF_WebRTCURI.__init__c   s9    LSt$TLLVLLL $			r   )r   Nr   r   )r   r   r   r
   r   r,   r2   r3   s   @r   r   r   _   sn        . . . . .jd . . . .% % % % % % % % % %r   r   c                        e Zd Z G d ded          Z G d ded          Z G d d	eeeg
          Z	 	 d fd	Z xZ	S )EF_MuDMiDConfigDatac                   $    e Zd Z ed          ZdS ),EF_MuDMiDConfigData.MudMidConfigDataEncodingr8   Nr9   r   r   r   MudMidConfigDataEncodingr   i   r;   r   r   r   r   c                       e Zd ZeZdS )$EF_MuDMiDConfigData.MudMidConfigDataNr>   r   r   r   MudMidConfigDatar   k   r@   r   r   rA   c                       e Zd ZdS ).EF_MuDMiDConfigData.MudMidConfigDataCollectionNrD   r   r   r   MudMidConfigDataCollectionr   n   rF   r   r   rG   6ffeNEF.MuDMiDConfigDataMuD and MiD Configuration Datac                 f     t                      j        d||||d| t          j        | _        d S r%   )r+   r,   r   r   r-   r.   s         r   r,   zEF_MuDMiDConfigData.__init__p   s9    LSt$TLLVLLL'B			r   )r   Nr   r   )
r   r   r   r
   r   r   r   r   r,   r2   r3   s   @r   r   r   h   s            :4    " " " " ":4 " " " "    %6@XZj?k    3H6C C C C C C C C C Cr   r   c                   H     e Zd ZdZ G d ded          Z	 	 d fd
	Z xZS )EF_AC_GBAUAPIz1The use of this EF is eescribed in 3GPP TS 31.130c                   Z    e Zd Z ed eee          z  d eee          z            ZdS )$EF_AC_GBAUAPI.AppletNafAccessControlaidnaf_idN)r   r   r   r   r   r   r   r   r   r   r   AppletNafAccessControlr   x   sJ         VE((6;"?"??$XXfk%B%BBD D


r   r   r   r   6f0aN
EF.GBAUAPIAccess Control to GBA_U_APIc                 f     t                      j        d||||d| t          j        | _        d S r%   )r+   r,   r   r   r-   r.   s         r   r,   zEF_AC_GBAUAPI.__init__~   s9    LSt$TLLVLLL!8			r   )r   Nr   r   )r   r   r   __doc__r
   r   r,   r2   r3   s   @r   r   r   v   s        ;;D D D D D D D D D 4@39 9 9 9 9 9 9 9 9 9r   r   c                   $     e Zd ZdZd fd	Z xZS )	EF_IMSDCIz3See Management object as defined in 3GPP TS 24.275.6f0bN	EF.IMSDCIIMS Data Channel Indicationc                 ~     t                      j        d||||d| t          t          ddd          | _        d S )Nr&   r   r8      )ims_dc_not_allowed ims_dc_allowed_after_ims_session'ims_dc_allowed_simultaneous_ims_sessionr   )r+   r,   r   r	   r   r.   s         r   r,   zEF_IMSDCI.__init__   sR    LSt$TLLVLLLtFJMQS S Sr   )r   Nr   r   )r   r   r   r   r,   r2   r3   s   @r   r   r      sM        ==S S S S S S S S S Sr   r   N)r   	constructr   r   r   r   r   r   r	   osmocom.tlvr
   r   osmocom.constructr   r   r   pySim.filesystem
LinFixedEFr   BerTlvEFr5   rN   r   r   r   TransparentEFr   r   r   r   <module>r      s   * Q P P P P P P P P P P P P P P P P P 5 5 5 5 5 5 5 5 = = = = = = = = = =    % % % % %* % % %
= 
= 
= 
= 
=x 
= 
= 
=*; *; *; *; *; *; *; *;Z% % % % %: % % %C C C C C( C C C9 9 9 9 9J 9 9 9S S S S S S S S S Sr   