
    ixZ                        S SK r S SKJrJrJrJrJrJrJrJ	r	J
r
JrJr  S\ R                  \\4   S\S\S\S\ R                   \   S\ R                   \   4S	 jrS
\ R$                  \\4   S\ R                  \\4   4S jr " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      rg)    N)	ASN1ValueTagClassget_sequence_value	pack_asn1pack_asn1_integerpack_asn1_octet_stringpack_asn1_sequenceunpack_asn1unpack_asn1_integerunpack_asn1_octet_stringunpack_asn1_tagged_sequencesequenceidx	structurenamekwargsreturnc                     [        XX#[        5      nUc  SU;  a  [        SU< SU< S35      eUS   $ UR                  S5      $ )z3Extracts a text field from a tagged ASN.1 sequence.defaultzMissing mandatory text field 'z' in ''	utf-16-le)r   r   
ValueErrordecode)r   r   r   r   r   	raw_values         T/home/james-whalen/.local/lib/python3.13/site-packages/spnego/_credssp_structures.pyunpack_text_fieldr      sN     #8)C[\IF"DR[\]]i  K((    datac                 ^    [        U [        5      (       d  [        U 5      S   n [        U 5      $ )zhHelper function that can unpack a sequence as either it's raw bytes or the already unpacked ASN.1 tuple.r   )
isinstancer   r
   r   )r   s    r   unpack_sequencer!   '   s)    dI&&4 #&t,,r   c                   r    \ rS rSrSrS\SS4S jrS\4S jr\S\	R                  \\4   SS 4S	 j5       rS
rg)NegoData/   a  CredSSP NegoData structure.

The NegoData structure contains the SPNEGO tokens, the Kerberos messages, or the NTLM messages. While the
structure is a SEQUENCE OF SEQUENCE this class just represents an individual SEQUENCE entry.

The ASN.1 definition for the NegoData structure is defined in `MS-CSSP 2.2.1.1 NegoData`_::

    NegoData ::= SEQUENCE OF SEQUENCE {
            negoToken [0] OCTET STRING
    }

Args:
    nego_token: One or more SPNEGO tokens and all Kerberos or NTLM messages, as negotiated by SPNEGO.

Attributes:
    nego_token (bytes): See args.

.. _MS-CSSP 2.2.1.1 NegoData:
    https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-cssp/9664994d-0784-4659-b85b-83b8d54c2336

nego_tokenr   Nc                     Xl         g Nr%   )selfr%   s     r   __init__NegoData.__init__E   s    $r   c           
      t    [        [        [        R                  SS[	        U R
                  5      5      /5      $ )z$Packs the NegoData as a byte string.Tr   )r	   r   r   context_specificr   r%   r)   s    r   packNegoData.packH   s5    !(33T1>TUYUdUd>ef
 	
r   b_datac                 T    [        U 5      n[        USSS[        5      n[        U5      $ )zUnpacks the NegoData TLV value.r   r#   	negoToken)r!   r   r   r#   )r1   	nego_datar%   s      r   unpackNegoData.unpackP   s,     $F+	'	1j+Ogh

##r   r(   )__name__
__module____qualname____firstlineno____doc__bytesr*   r/   staticmethodtypingUnionr   r5   __static_attributes__ r   r   r#   r#   /   sV    *%5 %T %
e 
 $v||Iu$45 $* $ $r   r#   c                   N   \ rS rSrSr     SS\S\R                  \R                  \	\R                  \	   4      S\R                  \   S\R                  \   S\R                  \   S	\R                  \   S
S4S jjrS
\4S jr\S\R                  \\4   S
S 4S j5       rSrg)	TSRequestY   ab  CredSSP TSRequest structure.

The TSRequest structure is the top-most structure used by the CredSSP client and CredSSP server. The TSRequest
message is always sent over the TLS-encrypted channel between the client and server in a CredSSP protocol exchange.

The ASN.1 definition for the TSRequest structure is defined in `MS-CSSP 2.2.1 TSRequest`_::

    TSRequest ::= SEQUENCE {
            version    [0] INTEGER,
            negoTokens [1] NegoData  OPTIONAL,
            authInfo   [2] OCTET STRING OPTIONAL,
            pubKeyAuth [3] OCTET STRING OPTIONAL,
            errorCode  [4] INTEGER OPTIONAL,
            clientNonce [5] OCTET STRING OPTIONAL
    }

Args:
    version: THe supported version of the CredSSP protocol.
    nego_tokens: A list of NegoData structures that contains te SPNEGO tokens.
    auth_info: The encrypted TSCredentials structure that contains the user's credentials to be delegated to the
        server.
    pub_key_auth: The encrypted public key used in the TLS handshake between the client and the server.
    error_code: The error code that represents the NTSTATUS failure code from the server.
    client_nonce: A 32-byte array of cryptograpically random bytes for the pub_key_auth hash computation (version
        or above).

Attributes:
    version (int): See args.
    nego_tokens (Optional[List[int]]): See args.
    auth_info (bytes): See args.
    pub_key_auth (bytes): See args.
    error_code (int): See args.
    client_nonce (bytes): See args.

.. _MS-CSSP 2.2.1 TSRequest:
    https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-cssp/9664994d-0784-4659-b85b-83b8d54c2336
Nversionnego_tokens	auth_infopub_key_auth
error_codeclient_noncer   c                     Xl         Ub  [        U[        5      (       d  U/nX l        X0l        X@l        XPl        X`l        g r'   )rE   r    listrF   rG   rH   rI   rJ   )r)   rE   rF   rG   rH   rI   rJ   s          r   r*   TSRequest.__init__   s>     ":k4+H+H&-K&"($(r   c                 t   [        [        R                  SS[        U R                  5      5      /nU R
                  (       a]  U R
                   Vs/ s H  o"R                  5       PM     nnUR                  [        [        R                  SS[        U5      5      5        SU R                  [        4SU R                  [        4SU R                  [        4SU R                  [        4/nU H;  u  pVnUc  M  UR                  [        [        R                  SXW" U5      5      5        M=     [        U5      $ s  snf )z%Packs the TSRequest as a byte string.Tr                  )r   r   r-   r   rE   rF   r/   appendr	   rG   r   rH   rI   rJ   )r)   elementstokenrF   	value_maptagvalue	pack_funcs           r   r/   TSRequest.pack   s   h77qBSTXT`T`Babc595E5EF5EE::<5EKFOOIh&?&?qJ\]hJijk  67!!#9:!23!!#9:	R
	 &/!C	 	(*C*CT3PYZ_P` ab &/ "(++ Gs   D5r1   c           	         [        U 5      n[        USSS[        5      n[        USSS5      nUbP  UR                  n/ nU(       a;  UR	                  [
        R                  U5      5        [        U5      S   nU(       a  M;  [        USSS[        5      n[        USSS	[        5      n[        US
SS[        5      n[        USSS[        5      n[        UUUUUUS9$ )z Unpacks the TSRequest TLV value.r   rC   rE   rO   
negoTokensrP   authInforQ   
pubKeyAuthrR   	errorCoderS   clientNonce)rF   rG   rH   rI   rJ   )
r!   r   r   r1   rT   r#   r5   r
   r   rC   )	r1   requestrE   rF   remaining_bytesrG   rH   rI   rJ   s	            r   r5   TSRequest.unpack   s     "&)$WaiI\](![,O")00OK!""8???#CD"-o">q"A "/ 'w;
Lde	)'1k<Qij'KNab
)'1k=Rjk#%!%
 	
r   )rG   rJ   rI   rF   rH   rE   )NNNNN)r7   r8   r9   r:   r;   intr>   Optionalr?   r#   Listr<   r*   r/   r=   r   r5   r@   rA   r   r   rC   rC   Y   s    $R W[,0/3+//3)) __V\\(FKK<Q2Q%RS) ??5)	)
 ooe,) OOC() ooe,) 
)(,e ,& 
v||Iu$45 
+ 
 
r   rC   c                       \ rS rSrSrS\R                  S   SS4S jr\S\	4S j5       r
S\4S	 jr\S
\R                  \\4   SS 4S j5       rSrg)TSCredentials   a  CredSSP TSCredentials structure.

The TSCredentials structure contains both the user's credentials that are delegated to the server and their type.

The ASN.1 definition for the TSCredentials structure is defined in `MS-CSSP 2.2.1.2 TSCredentials`_::

    TSCredentials ::= SEQUENCE {
            credType    [0] INTEGER,
            credentials [1] OCTET STRING
    }

Args:
    credentials: The credential structure; TSPasswordCreds, TSSmartCardCreds, TSRemoteGuardCreds.

Attributes:
    credentials (Union[TSPasswordCreds, TSSmartCardCreds, TSRemoteGuardCreds]): See args.

.. _MS-CSSP 2.2.1.2 TSCredentials:
    https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-cssp/94a1ab00-5500-42fd-8d3d-7a84e6c2cf03
credentials)TSPasswordCredsTSSmartCardCredsTSRemoteGuardCredsr   Nc                     Xl         g r'   rk   )r)   rk   s     r   r*   TSCredentials.__init__   s    &r   c                     [        U R                  [        5      (       a  g[        U R                  [        5      (       a  g[        U R                  [        5      (       a  g[        S5      e)z1The credential type of credentials as an integer.rO   rP      zInvalid credential type set)r    rk   rl   rm   rn   r   r.   s    r   	cred_typeTSCredentials.cred_type   sV     d&&88((*:;;((*<== :;;r   c                     U R                   nU R                  R                  5       n[        [	        [
        R                  SS[        U5      5      [	        [
        R                  SS[        U5      5      /5      $ )z)Packs the TSCredentials as a byte string.Tr   rO   )	rt   rk   r/   r	   r   r   r-   r   r   )r)   rt   rk   s      r   r/   TSCredentials.pack   sg    NN	&&++-!(33T1>OPY>Z[(33T1>TU`>ab
 	
r   r1   c                    [        U 5      n[        USSS[        5      n[        USSS[        5      n[        [
        [        S.R                  U5      nU(       d  [        SU-  5      eUR                  U5      n[        U5      $ )z$Unpacks the TSCredentials TLV value.r   ri   credTyperO   rk   )rO   rP   rs   z3Unknown credType %s in TSCredentials, cannot unpack)r!   r   r   r   rl   rm   rn   getr   r5   ri   )r1   
credentialrt   credentials_raw
cred_classrk   s         r   r5   TSCredentials.unpack   s     %V,
&z1ozSfg	,ZO]\tu
 !
 #
 	 RU^^__ ''8[))r   rp   )r7   r8   r9   r:   r;   r>   r?   r*   propertyre   rt   r<   r/   r=   r   r5   r@   rA   r   r   ri   ri      s|    *'FLL1l$m 'rv ' <3 < <

e 

 *v||Iu$45 */ * *r   ri   c                   z    \ rS rSrSrS\S\S\SS4S jrS\4S	 jr\	S
\
R                  \\4   SS 4S j5       rSrg)rl   i  a2  CredSSP TSPasswordCreds structure.

The TSPasswordCreds structure contains the user's password credentials that are delegated to the server.

The ASN.1 definition for the TSPasswordCreds structure is defined in `MS-CSSP 2.2.1.2.1 TSPasswordCreds`_::

    TSPasswordCreds ::= SEQUENCE {
            domainName  [0] OCTET STRING,
            userName    [1] OCTET STRING,
            password    [2] OCTET STRING
    }

Args:
    domain_name: The name of the user's account domain.
    username: The user's account name.
    password: The user's account password.

Attributes:
    domain_name (str): See args.
    username (str): See args.
    password (str): See args.

.. _MS-CSSP 2.2.1.2.1 TSPasswordCreds:
    https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-cssp/9664994d-0784-4659-b85b-83b8d54c2336
domain_nameusernamepasswordr   Nc                 (    Xl         X l        X0l        g r'   )r   r   r   )r)   r   r   r   s       r   r*   TSPasswordCreds.__init__+  s    &  r   c                    / n[        U R                  U R                  U R                  /5       HJ  u  p#UR	                  S5      nUR                  [        [        R                  SU[        U5      5      5        ML     [        U5      $ )z+Packs the TSPasswordCreds as a byte string.r   T)	enumerater   r   r   encoderT   r   r   r-   r   r	   r)   rU   r   rY   b_values        r   r/   TSPasswordCreds.pack0  sm    #T%5%5t}}dmm$TUJCll;/GOOIh&?&?sLbcjLklm V "(++r   r1   c                     [        U 5      n[        USSS5      =(       d    Sn[        USSS5      =(       d    Sn[        USSS5      =(       d    Sn[        X#U5      $ )	z&Unpacks the TSPasswordCreds TLV value.r   rl   
domainName rO   userNamerP   r   )r!   r   rl   )r1   credsr   r   r   s        r   r5   TSPasswordCreds.unpack9  s`      ''q2C\RXVX$UA/@*MSQS$UA/@*MSQS{h??r   )r   r   r   )r7   r8   r9   r:   r;   strr*   r<   r/   r=   r>   r?   r   r5   r@   rA   r   r   rl   rl     si    4!C !3 !# !$ !
,e , @v||Iu$45 @:K @ @r   rl   c                       \ rS rSrSr  SS\SSS\R                  \   S\R                  \   S	S4
S
 jjrS	\	4S jr
\S\R                  \\	4   S	S 4S j5       rSrg)rm   iE  a  CredSSP TSSmartCardCreds structure.

The TSSmartCardCreds structure contains the user's smart card credentials that are delegated to the server.

The ASN.1 definition for the TSSmartCardCreds structure is defined in `MS-CSSP 2.2.1.2.2 TSSmartCardCreds`_::

    TSSmartCardCreds ::= SEQUENCE {
            pin         [0] OCTET STRING,
            cspData     [1] TSCspDataDetail,
            userHint    [2] OCTET STRING OPTIONAL,
            domainHint  [3] OCTET STRING OPTIONAL
    }

Args:
    pin: THe user's smart card PIN.
    csp_data: Info about the cryptographic service provider (CSP).
    user_hint: The user's account hint.
    domain_hint: The user's domain name to which the user's account belongs.

Attributes:
    pin (str): See args.
    csp_data (TSCspDataDetail): See args.
    user_hint (Optional[str]): See args.
    domain_hint (Optional[str]): See args.

.. _MS-CSSP 2.2.1.2.2 TSSmartCardCreds:
    https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-cssp/4251d165-cf01-4513-a5d8-39ee4a98b7a4
Npincsp_dataTSCspDataDetail	user_hintdomain_hintr   c                 4    Xl         X l        X0l        X@l        g r'   )r   r   r   r   )r)   r   r   r   r   s        r   r*   TSSmartCardCreds.__init__c  s      "&r   c                    [        [        R                  SS[        U R                  R                  S5      5      5      [        [        R                  SSU R                  R                  5       5      /nSU R                  4SU R                  44 HS  u  p#U(       d  M  UR                  S5      nUR                  [        [        R                  SU[        U5      5      5        MU     [        U5      $ )z,Packs the TSSmartCardCreds as a byte string.Tr   r   rO   rP   rQ   )r   r   r-   r   r   r   r   r/   r   r   rT   r	   r   s        r   r/   TSSmartCardCreds.packo  s     h//q:PQUQYQYQ`Q`alQm:noh//q$--:L:L:NO
 t~~.D4D4D0EFJCu,,{3	(*C*CT3PfgnPo pq G
 "(++r   r1   c                     [        U 5      n[        USSS5      =(       d    Sn[        USSS[        R                  5      n[        USSSS	S
9n[        USSSS	S
9n[        X#XE5      $ )z'Unpacks the TSSmartCardCreds TLV value.r   rm   r   r   rO   cspDatarP   userHintNr   rQ   
domainHint)r!   r   r   r   r5   rm   )r1   r   r   r   r   r   s         r   r5   TSSmartCardCreds.unpack|  sr      'q*<eDJ%eQ0BIOeOef%eQ0BJX\]	'q2Dl\`ayFFr   )r   r   r   r   )NN)r7   r8   r9   r:   r;   r   r>   rf   r*   r<   r/   r=   r?   r   r5   r@   rA   r   r   rm   rm   E  s    B +/,0
'
' $
' ??3'	
'
 __S)
' 

',e , 	Gv||Iu$45 	G:L 	G 	Gr   rm   c                       \ rS rSrSr    SS\S\R                  \   S\R                  \   S\R                  \   S\R                  \   S	S4S
 jjr	S	\
4S jr\S\R                  \\
4   S	S 4S j5       rSrg)r   i  aw  CredSSP TSCspDataDetail structure.

The TSCspDataDetail structure contains CSP information used during smart card logon.

The ASN.1 definition for the TSCspDataDetail structure is defined in `MS-CSSP 2.2.1.2.2.1 TSCspDataDetail`_::

    TSCspDataDetail ::= SEQUENCE {
            keySpec       [0] INTEGER,
            cardName      [1] OCTET STRING OPTIONAL,
            readerName    [2] OCTET STRING OPTIONAL,
            containerName [3] OCTET STRING OPTIONAL,
            cspName       [4] OCTET STRING OPTIONAL
    }

Args:
    key_spec: The specification of the user's smart card.
    card_name: The name of the smart card.
    reader_name: The name of the smart card reader.
    container_name: The name of the certificate container.
    csp_name: The name of the CSP.

Attributes:
    key_spec (int): See args.
    card_name (Optional[str]): See args.
    reader_name (Optional[str]): See args.
    container_name (Optional[str]): See args.
    csp_name (Optional[str]): See args.

.. _MS-CSSP 2.2.1.2.2.1 TSCspDataDetail:
    https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-cssp/34ee27b3-5791-43bb-9201-076054b58123
Nkey_spec	card_namereader_namecontainer_namecsp_namer   c                 @    Xl         X l        X0l        X@l        XPl        g r'   )r   r   r   r   r   )r)   r   r   r   r   r   s         r   r*   TSCspDataDetail.__init__  s     !"&, r   c                    [        [        R                  SS[        U R                  5      5      /nSU R
                  4SU R                  4SU R                  4SU R                  4/nU HS  u  p4U(       d  M  UR                  S5      nUR                  [        [        R                  SU[        U5      5      5        MU     [        U5      $ )z+Packs the TSCspDataDetail as a byte string.Tr   rO   rP   rQ   rR   r   )r   r   r-   r   r   r   r   r   r   r   rT   r   r	   )r)   rU   rW   r   rY   r   s         r   r/   TSCspDataDetail.pack  s     h//q:KDMM:Z[

   !##$	
	 $JCu,,{3	(*C*CT3PfgnPo pq $
 "(++r   r1   c                     [        U 5      n[        USSS[        5      n[        USSSSS9n[        USSS	SS9n[        US
SSSS9n[        USSSSS9n[	        X#XEU5      $ )z&Unpacks the TSCspDataDetail TLV value.r   r   keySpecrO   cardNameNr   rP   
readerNamerQ   containerNamerR   cspName)r!   r   r   r   r   )r1   r   r   r   r   r   r   s          r   r5   TSCspDataDetail.unpack  s     #6*%h3DiQde%h3DjZ^_	'!5F^bc*8Q8I?dhi$Xq2CYX\]xKQYZZr   )r   r   r   r   r   )NNNN)r7   r8   r9   r:   r;   re   r>   rf   r   r*   r<   r/   r=   r?   r   r5   r@   rA   r   r   r   r     s    F +/,0/3)-!! ??3'! __S)	!
 ,! //#&! 
!,e ,& 
[v||Iu$45 
[:K 
[ 
[r   r   c            	           \ rS rSrSr SSSS\R                  \R                  S\R                  S   4      SS4S jjr	S\
4S	 jr\S
\R                  \\
4   SS 4S j5       rSrg)rn   i  a  CredSSP TSRemoteGuardCreds structure.

The TSRemoteGuardCreds structure contains a logon credential and supplemental credentials provided by security
packages. The format of the individual credentials depends on the packages that provided them.

The ASN.1 definition for the TSRemoteGuardCreds structure is defined in `MS-CSSP 2.2.1.2.3 TSRemoteGuardCreds`_::

    TSRemoteGuardCreds ::= SEQUENCE{
        logonCred           [0] TSRemoteGuardPackageCred,
        supplementalCreds   [1] SEQUENCE OF TSRemoteGuardPackageCred OPTIONAL,
    }

Args:
    logon_cred: The logon credential for the user.
    supplemental_creds: Optional supplemental credentials for other security packages.

Attributes:
    logon_cred (TSRemoteGuardPackageCred): See args.
    supplemental_creds (List[TSRemoteGuardPackageCred]): See args.

.. _MS-CSSP 2.2.1.2.3 TSRemoteGuardCreds:
    https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-cssp/7ef8229c-44ea-4c1b-867f-00369b882b38
N
logon_credTSRemoteGuardPackageCredsupplemental_credsr   c                 R    Xl         Ub  [        U[        5      (       d  U/nX l        g r'   )r   r    rL   r   )r)   r   r   s      r   r*   TSRemoteGuardCreds.__init__  s,     %)*=OQU2V2V"4!5"4r   c           
      `   [        [        R                  SSU R                  R	                  5       5      /nU R
                  b]  U R
                   Vs/ s H  o"R	                  5       PM     nnUR                  [        [        R                  SS[        U5      5      5        [        U5      $ s  snf )z.Packs the TSRemoteGuardCreds as a byte string.Tr   rO   )r   r   r-   r   r/   r   rT   r	   )r)   rU   credr   s       r   r/   TSRemoteGuardCreds.pack  s    h77q$//BVBVBXYZ"".:>:Q:Q!R:Q$))+:Q!ROOIh&?&?qJ\]oJpqr!(++ "Ss   B+r1   c                 8   [        U 5      n[        USSS[        R                  5      n[        USSS5      nU(       aQ  / nUR                  nU(       a;  UR                  [        R                  U5      5        [        U5      S   nU(       a  M;  OSn[        X$5      $ )z)Unpacks the TSRemoteGuardCreds TLV value.r   rn   	logonCredrO   supplementalCredsN)r!   r   r   r5   r1   rT   r
   rn   )r1   r   r   raw_supplemental_credsr   rc   s         r   r5   TSRemoteGuardCreds.unpack  s     v&'a1E{TlTsTst
!3D!=QSf!g!!#4;;O!"))*B*I*I/*Z["-o">q"A "/
 "&!*AAr   )r   r   r'   )r7   r8   r9   r:   r;   r>   rf   r?   rg   r*   r<   r/   r=   r   r5   r@   rA   r   r   rn   rn     s    : 5.5 #OOLL3V[[A[5\\]
5 
5,e , Bv||Iu$45 B:N B Br   rn   c                   v    \ rS rSrSrS\S\SS4S jrS\4S jr\	S	\
R                  \\4   SS 4S
 j5       rSrg)r   i  a&  CredSSP TSRemoteGuardPackageCred structure.

The TSRemoteGuardPackageCred structure contains credentials for a specific security package.

The ASN.1 definition for the TSRemoteGuardPackageCred structure is defined in
`MS-CSSP 2.2.1.2.3.1 TSRemoteGuardPackageCred`_::

    TSRemoteGuardPackageCred ::= SEQUENCE{
        packageName [0] OCTET STRING,
        credBuffer  [1] OCTET STRING,
    }

Args:
    package_name: The name of the packages for which these credentials are intended.
    cred_buffer: The credentials in a format specified by the CredSSP server.

Attributes:
    package_name (str): See args.
    cred_buffer (bytes): See args.

.. _MS-CSSP 2.2.1.2.3.1 TSRemoteGuardPackageCred:
    https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-cssp/173eee44-1a2c-463f-b909-c15db01e68d7
package_namecred_bufferr   Nc                     Xl         X l        g r'   )r   r   )r)   r   r   s      r   r*   !TSRemoteGuardPackageCred.__init__5  s    (&r   c                     U R                   R                  S5      n[        [        [        R
                  SS[        U5      5      [        [        R
                  SS[        U R                  5      5      /5      $ )z4Packs the TSRemoteGuardPackageCred as a byte string.r   Tr   rO   )r   r   r	   r   r   r-   r   r   )r)   b_package_names     r   r/   TSRemoteGuardPackageCred.pack9  sf    **11+>!(33T1>TUc>de(33T1>TUYUeUe>fg
 	
r   r1   c                     [        U 5      n[        USSS5      =(       d    Sn[        USSS[        5      n[	        X#5      $ )z/Unpacks the TSRemoteGuardPackageCred TLV value.r   r   packageNamer   rO   
credBuffer)r!   r   r   r   r   )r1   package_credr   r   s       r   r5   TSRemoteGuardPackageCred.unpackC  sJ     'v.(q:TVcdjhj(!7G_
 (BBr   )r   r   )r7   r8   r9   r:   r;   r   r<   r*   r/   r=   r>   r?   r   r5   r@   rA   r   r   r   r     sb    0'S 'u ' '
e 
 Cv||Iu$45 C:T C Cr   r   )r>   spnego._asn1r   r   r   r   r   r   r	   r
   r   r   r   Dictre   r   rf   r   r?   r<   r!   r#   rC   ri   rl   rm   r   rn   r   rA   r   r   <module>r      s      )kk#y.))	) ) 	)
 ooc") __S)$-&,,y%'78 -V[[i=X -'$ '$Ti
 i
XH* H*V2@ 2@jAG AGHM[ M[`@B @BF0C 0Cr   